From 8bda492113df0896be14d1451407373cb929cf1d Mon Sep 17 00:00:00 2001
From: Stephen Hurd <deuce@synchro.net>
Date: Thu, 10 Feb 2022 18:01:42 -0500
Subject: [PATCH] With the CMakeLists.txt files in the main repo, we don't need
 to maintain anything here except the config file.

We just jelly it into anyone who uses the library, British style.
---
 CMakeLists.txt           |    53 +-
 ciolib/CMakeLists.txt    |   129 -
 ciolib/CVS/Entries       |     3 -
 ciolib/CVS/Repository    |     1 -
 ciolib/CVS/Root          |     1 -
 ciolib/CVS/Template      |     0
 ciolib/OverhaulNotes.txt |   113 -
 ciolib/SDLMain.h         |    11 -
 ciolib/SDLMain.m         |   387 -
 ciolib/SDL_win32_main.c  |   146 -
 ciolib/allfonts.c        | 23825 -------------------------------------
 ciolib/ansi_cio.c        |  1036 --
 ciolib/ansi_cio.h        |    77 -
 ciolib/bitmap_con.c      |  1785 ---
 ciolib/bitmap_con.h      |    62 -
 ciolib/ciolib.c          |  1942 ---
 ciolib/ciolib.h          |   707 --
 ciolib/ciolib.rc         |     5 -
 ciolib/conv2vid.pl       |   130 -
 ciolib/cterm.c           |  5609 ---------
 ciolib/cterm.h           |   292 -
 ciolib/cterm.txt         |  1283 --
 ciolib/curs_cio.c        |  1354 ---
 ciolib/curs_cio.h        |    80 -
 ciolib/curs_fix.h        |   292 -
 ciolib/hqx.c             |   414 -
 ciolib/hqx.h             |    11 -
 ciolib/keys.h            |     2 -
 ciolib/makefont.pl       |    48 -
 ciolib/mouse.c           |   612 -
 ciolib/mouse.h           |     2 -
 ciolib/pasteboard.h      |     9 -
 ciolib/pasteboard.m      |    34 -
 ciolib/petscii.c         |   218 -
 ciolib/scale.c           |   893 --
 ciolib/scale.h           |    21 -
 ciolib/sdl_con.c         |  1300 --
 ciolib/sdl_con.h         |    52 -
 ciolib/sdlfuncs.c        |   316 -
 ciolib/sdlfuncs.h        |    76 -
 ciolib/syncicon64.c      |   695 --
 ciolib/syncicon64.h      |     8 -
 ciolib/syncicon64.ico    |   Bin 16958 -> 0 bytes
 ciolib/utf8_codepages.c  |  1929 ---
 ciolib/utf8_codepages.h  |    61 -
 ciolib/vidmodes.c        |   390 -
 ciolib/vidmodes.h        |   142 -
 ciolib/win32cio.c        |   934 --
 ciolib/win32cio.h        |    68 -
 ciolib/x_cio.c           |   558 -
 ciolib/x_cio.h           |    84 -
 ciolib/x_events.c        |  1364 ---
 ciolib/x_events.h        |   128 -
 ciolib/xbr.c             |   299 -
 ciolib/xbr.h             |     4 -
 comio/CMakeLists.txt     |    25 -
 comio/comio.c            |    72 -
 comio/comio.h            |   142 -
 comio/comio_nix.c        |   413 -
 comio/comio_win32.c      |   228 -
 encode/CMakeLists.txt    |    27 -
 encode/README.md         |     6 -
 encode/base64.c          |   174 -
 encode/base64.h          |    62 -
 encode/hex.c             |    59 -
 encode/hex.h             |    38 -
 encode/lzh.c             |   781 --
 encode/lzh.h             |    55 -
 encode/utf8.c            |   524 -
 encode/utf8.h            |    90 -
 encode/uucode.c          |   248 -
 encode/uucode.h          |    49 -
 encode/yenc.c            |   203 -
 encode/yenc.h            |    49 -
 hash/CMakeLists.txt      |    22 -
 hash/README.md           |     5 -
 hash/crc16.c             |    81 -
 hash/crc16.h             |    42 -
 hash/crc32.c             |    89 -
 hash/crc32.h             |    44 -
 hash/md5.c               |   304 -
 hash/md5.h               |    75 -
 hash/sha1.c              |   311 -
 hash/sha1.h              |    57 -
 uifc/CMakeLists.txt      |    21 -
 uifc/filepick.c          |   721 --
 uifc/filepick.h          |    30 -
 uifc/uifc.h              |   535 -
 uifc/uifc32.c            |  3077 -----
 uifc/uifctest.c          |   187 -
 uifc/uifcx.c             |   524 -
 xpdev/CMakeLists.txt     |   189 -
 xpdev/Makefile           |    53 -
 xpdev/SDLMain.h          |    11 -
 xpdev/SDLMain.m          |   387 -
 xpdev/SDL_win32_main.c   |   144 -
 xpdev/conwrap.c          |   161 -
 xpdev/conwrap.h          |    55 -
 xpdev/cp437defs.h        |   178 -
 xpdev/dat_file.c         |   290 -
 xpdev/dat_file.h         |    82 -
 xpdev/datewrap.c         |   213 -
 xpdev/datewrap.h         |    99 -
 xpdev/dirwrap.c          |  1231 --
 xpdev/dirwrap.h          |   246 -
 xpdev/eventwrap.h        |    43 -
 xpdev/filewrap.c         |   427 -
 xpdev/filewrap.h         |   181 -
 xpdev/gen_defs.h         |   574 -
 xpdev/genpack.pl         |   254 -
 xpdev/genwrap.c          |   886 --
 xpdev/genwrap.h          |   399 -
 xpdev/haproxy.h          |    40 -
 xpdev/ini_file.c         |  2476 ----
 xpdev/ini_file.h         |   293 -
 xpdev/ini_file.txt       |   213 -
 xpdev/link_list.c        |   963 --
 xpdev/link_list.h        |   205 -
 xpdev/msg_queue.c        |   234 -
 xpdev/msg_queue.h        |    76 -
 xpdev/multisock.c        |   642 -
 xpdev/multisock.h        |    55 -
 xpdev/netwrap.c          |   145 -
 xpdev/netwrap.h          |    43 -
 xpdev/petdefs.h          |   103 -
 xpdev/sdlfuncs.c         |   111 -
 xpdev/sdlfuncs.h         |    40 -
 xpdev/semfile.c          |   146 -
 xpdev/semfile.h          |    47 -
 xpdev/semwrap.c          |   125 -
 xpdev/semwrap.h          |    92 -
 xpdev/sockwrap.c         |   844 --
 xpdev/sockwrap.h         |   308 -
 xpdev/str_list.c         |   876 --
 xpdev/str_list.h         |   177 -
 xpdev/strwrap.c          |    77 -
 xpdev/strwrap.h          |    34 -
 xpdev/threadwrap.c       |   304 -
 xpdev/threadwrap.h       |   278 -
 xpdev/tutorial.doc       |   Bin 183296 -> 0 bytes
 xpdev/tutorial.ppt       |   Bin 84992 -> 0 bytes
 xpdev/unicode.c          |   744 --
 xpdev/unicode.h          |    55 -
 xpdev/unicode_defs.h     |   750 --
 xpdev/wrapdll.h          |    35 -
 xpdev/wraptest.c         |   418 -
 xpdev/xp_dl.c            |    76 -
 xpdev/xp_dl.h            |    39 -
 xpdev/xp_syslog.h        |    61 -
 xpdev/xpbeep.c           |  1235 --
 xpdev/xpbeep.h           |    51 -
 xpdev/xpdatetime.c       |   457 -
 xpdev/xpdatetime.h       |   146 -
 xpdev/xpendian.h         |    85 -
 xpdev/xpevent.c          |   221 -
 xpdev/xpevent.h          |    83 -
 xpdev/xpmap.c            |   158 -
 xpdev/xpmap.h            |    61 -
 xpdev/xpprintf.c         |  1483 ---
 xpdev/xpprintf.h         |    74 -
 xpdev/xpsem.c            |   295 -
 xpdev/xpsem.h            |   121 -
 xpdev/xptime.c           |    98 -
 163 files changed, 47 insertions(+), 81114 deletions(-)
 delete mode 100644 ciolib/CMakeLists.txt
 delete mode 100644 ciolib/CVS/Entries
 delete mode 100644 ciolib/CVS/Repository
 delete mode 100644 ciolib/CVS/Root
 delete mode 100644 ciolib/CVS/Template
 delete mode 100644 ciolib/OverhaulNotes.txt
 delete mode 100644 ciolib/SDLMain.h
 delete mode 100644 ciolib/SDLMain.m
 delete mode 100644 ciolib/SDL_win32_main.c
 delete mode 100644 ciolib/allfonts.c
 delete mode 100644 ciolib/ansi_cio.c
 delete mode 100644 ciolib/ansi_cio.h
 delete mode 100644 ciolib/bitmap_con.c
 delete mode 100644 ciolib/bitmap_con.h
 delete mode 100644 ciolib/ciolib.c
 delete mode 100644 ciolib/ciolib.h
 delete mode 100644 ciolib/ciolib.rc
 delete mode 100755 ciolib/conv2vid.pl
 delete mode 100644 ciolib/cterm.c
 delete mode 100644 ciolib/cterm.h
 delete mode 100644 ciolib/cterm.txt
 delete mode 100644 ciolib/curs_cio.c
 delete mode 100644 ciolib/curs_cio.h
 delete mode 100644 ciolib/curs_fix.h
 delete mode 100644 ciolib/hqx.c
 delete mode 100644 ciolib/hqx.h
 delete mode 100644 ciolib/keys.h
 delete mode 100755 ciolib/makefont.pl
 delete mode 100644 ciolib/mouse.c
 delete mode 100644 ciolib/mouse.h
 delete mode 100644 ciolib/pasteboard.h
 delete mode 100644 ciolib/pasteboard.m
 delete mode 100644 ciolib/petscii.c
 delete mode 100644 ciolib/scale.c
 delete mode 100644 ciolib/scale.h
 delete mode 100644 ciolib/sdl_con.c
 delete mode 100644 ciolib/sdl_con.h
 delete mode 100644 ciolib/sdlfuncs.c
 delete mode 100644 ciolib/sdlfuncs.h
 delete mode 100644 ciolib/syncicon64.c
 delete mode 100644 ciolib/syncicon64.h
 delete mode 100644 ciolib/syncicon64.ico
 delete mode 100644 ciolib/utf8_codepages.c
 delete mode 100644 ciolib/utf8_codepages.h
 delete mode 100644 ciolib/vidmodes.c
 delete mode 100644 ciolib/vidmodes.h
 delete mode 100644 ciolib/win32cio.c
 delete mode 100644 ciolib/win32cio.h
 delete mode 100644 ciolib/x_cio.c
 delete mode 100644 ciolib/x_cio.h
 delete mode 100644 ciolib/x_events.c
 delete mode 100644 ciolib/x_events.h
 delete mode 100644 ciolib/xbr.c
 delete mode 100644 ciolib/xbr.h
 delete mode 100644 comio/CMakeLists.txt
 delete mode 100644 comio/comio.c
 delete mode 100644 comio/comio.h
 delete mode 100644 comio/comio_nix.c
 delete mode 100644 comio/comio_win32.c
 delete mode 100644 encode/CMakeLists.txt
 delete mode 100644 encode/README.md
 delete mode 100644 encode/base64.c
 delete mode 100644 encode/base64.h
 delete mode 100644 encode/hex.c
 delete mode 100644 encode/hex.h
 delete mode 100644 encode/lzh.c
 delete mode 100644 encode/lzh.h
 delete mode 100644 encode/utf8.c
 delete mode 100644 encode/utf8.h
 delete mode 100644 encode/uucode.c
 delete mode 100644 encode/uucode.h
 delete mode 100644 encode/yenc.c
 delete mode 100644 encode/yenc.h
 delete mode 100644 hash/CMakeLists.txt
 delete mode 100644 hash/README.md
 delete mode 100644 hash/crc16.c
 delete mode 100644 hash/crc16.h
 delete mode 100644 hash/crc32.c
 delete mode 100644 hash/crc32.h
 delete mode 100644 hash/md5.c
 delete mode 100644 hash/md5.h
 delete mode 100644 hash/sha1.c
 delete mode 100644 hash/sha1.h
 delete mode 100644 uifc/CMakeLists.txt
 delete mode 100644 uifc/filepick.c
 delete mode 100644 uifc/filepick.h
 delete mode 100644 uifc/uifc.h
 delete mode 100644 uifc/uifc32.c
 delete mode 100644 uifc/uifctest.c
 delete mode 100644 uifc/uifcx.c
 delete mode 100644 xpdev/CMakeLists.txt
 delete mode 100644 xpdev/Makefile
 delete mode 100644 xpdev/SDLMain.h
 delete mode 100644 xpdev/SDLMain.m
 delete mode 100644 xpdev/SDL_win32_main.c
 delete mode 100644 xpdev/conwrap.c
 delete mode 100644 xpdev/conwrap.h
 delete mode 100644 xpdev/cp437defs.h
 delete mode 100644 xpdev/dat_file.c
 delete mode 100644 xpdev/dat_file.h
 delete mode 100644 xpdev/datewrap.c
 delete mode 100644 xpdev/datewrap.h
 delete mode 100644 xpdev/dirwrap.c
 delete mode 100644 xpdev/dirwrap.h
 delete mode 100644 xpdev/eventwrap.h
 delete mode 100644 xpdev/filewrap.c
 delete mode 100644 xpdev/filewrap.h
 delete mode 100644 xpdev/gen_defs.h
 delete mode 100755 xpdev/genpack.pl
 delete mode 100644 xpdev/genwrap.c
 delete mode 100644 xpdev/genwrap.h
 delete mode 100644 xpdev/haproxy.h
 delete mode 100644 xpdev/ini_file.c
 delete mode 100644 xpdev/ini_file.h
 delete mode 100644 xpdev/ini_file.txt
 delete mode 100644 xpdev/link_list.c
 delete mode 100644 xpdev/link_list.h
 delete mode 100644 xpdev/msg_queue.c
 delete mode 100644 xpdev/msg_queue.h
 delete mode 100644 xpdev/multisock.c
 delete mode 100644 xpdev/multisock.h
 delete mode 100644 xpdev/netwrap.c
 delete mode 100644 xpdev/netwrap.h
 delete mode 100644 xpdev/petdefs.h
 delete mode 100644 xpdev/sdlfuncs.c
 delete mode 100644 xpdev/sdlfuncs.h
 delete mode 100644 xpdev/semfile.c
 delete mode 100644 xpdev/semfile.h
 delete mode 100644 xpdev/semwrap.c
 delete mode 100644 xpdev/semwrap.h
 delete mode 100644 xpdev/sockwrap.c
 delete mode 100644 xpdev/sockwrap.h
 delete mode 100644 xpdev/str_list.c
 delete mode 100644 xpdev/str_list.h
 delete mode 100644 xpdev/strwrap.c
 delete mode 100644 xpdev/strwrap.h
 delete mode 100644 xpdev/threadwrap.c
 delete mode 100644 xpdev/threadwrap.h
 delete mode 100644 xpdev/tutorial.doc
 delete mode 100644 xpdev/tutorial.ppt
 delete mode 100644 xpdev/unicode.c
 delete mode 100644 xpdev/unicode.h
 delete mode 100644 xpdev/unicode_defs.h
 delete mode 100644 xpdev/wrapdll.h
 delete mode 100644 xpdev/wraptest.c
 delete mode 100644 xpdev/xp_dl.c
 delete mode 100644 xpdev/xp_dl.h
 delete mode 100644 xpdev/xp_syslog.h
 delete mode 100644 xpdev/xpbeep.c
 delete mode 100644 xpdev/xpbeep.h
 delete mode 100644 xpdev/xpdatetime.c
 delete mode 100644 xpdev/xpdatetime.h
 delete mode 100644 xpdev/xpendian.h
 delete mode 100644 xpdev/xpevent.c
 delete mode 100644 xpdev/xpevent.h
 delete mode 100644 xpdev/xpmap.c
 delete mode 100644 xpdev/xpmap.h
 delete mode 100644 xpdev/xpprintf.c
 delete mode 100644 xpdev/xpprintf.h
 delete mode 100644 xpdev/xpsem.c
 delete mode 100644 xpdev/xpsem.h
 delete mode 100644 xpdev/xptime.c

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b8ff999..b301feb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,52 @@
 cmake_minimum_required(VERSION 3.11)
 project (XPDevPlus CXX)
-add_subdirectory(ciolib)
-add_subdirectory(comio)
-add_subdirectory(encode)
-add_subdirectory(hash)
-add_subdirectory(uifc)
-add_subdirectory(xpdev)
+include("FetchContent")
+
+include(ExternalProject)
+
+add_compile_options(-include xpdevplus.h)
+
+FetchContent_Declare(
+	CONIO
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/conio
+	SOURCE_SUBDIR src/conio
+)
+FetchContent_MakeAvailable(CONIO)
+
+FetchContent_Declare(
+	COMIO
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/comio
+	SOURCE_SUBDIR src/comio
+)
+FetchContent_MakeAvailable(COMIO)
+
+FetchContent_Declare(
+	Encode
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/encode
+	SOURCE_SUBDIR src/encode
+)
+FetchContent_MakeAvailable(Encode)
+
+FetchContent_Declare(
+	Hash
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/hash
+	SOURCE_SUBDIR src/hash
+)
+FetchContent_MakeAvailable(Hash)
+
+FetchContent_Declare(
+	UIFC
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/uifc
+	SOURCE_SUBDIR src/uifc
+)
+FetchContent_MakeAvailable(UIFC)
+
+FetchContent_Declare(
+	XPDev
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/xpdev
+	SOURCE_SUBDIR src/xpdev
+)
+FetchContent_MakeAvailable(XPDev)
 
 enable_language(C)
 set(SOURCE
diff --git a/ciolib/CMakeLists.txt b/ciolib/CMakeLists.txt
deleted file mode 100644
index bfd25ed..0000000
--- a/ciolib/CMakeLists.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-project (ConIOLib C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (CheckFunctionExists)
-find_package(X11)
-# So on BSD, this causes the find to fail.  However, it's required for Linux
-# This is because on BSD, ncursesw.h does not exist, but libraries use
-# ncurses.h
-set(CURSES_NEED_WIDE TRUE)
-find_package(Threads REQUIRED)
-if(NOT WIN32)
-	find_package(Curses)
-	find_package(PkgConfig)
-	pkg_check_modules(SDL2 sdl2)
-endif()
-
-set(SOURCE
-	allfonts.c
-	ansi_cio.c
-	ciolib.c
-	ciolib.rc
-	cterm.c
-	mouse.c
-	syncicon64.c
-	utf8_codepages.c
-	vidmodes.c
-	xbr.c
-)
-
-set(HEADER
-	ciolib.h
-	cterm.h
-	keys.h
-	mouse.h
-	utf8_codepages.h
-	vidmodes.h
-)
-
-if(WIN32)
-	list(APPEND SOURCE win32cio.c ciolib.rc)
-endif()
-
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-	if(CURSES_FOUND)
-		list(APPEND SOURCE curs_cio.c)
-		set(USE_CURSES_ANYWAY TRUE)
-	else()
-		if(${CMAKE_SYSTEM_NAME} MATCHES "(Free|Open|Net)BSD")
-			list(APPEND SOURCE curs_cio.c)
-			set(USE_CURSES_ANYWAY TRUE)
-		else()
-			message(FATAL_ERROR "ncursesw not found")
-		endif()
-	endif()
-endif()
-
-if(X11_FOUND)
-	list(APPEND SOURCE x_events.c x_cio.c)
-	set(NEED_BITMAP TRUE)
-	set(NEED_DLOPEN TRUE)
-	set(NEED_SCALE TRUE)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	list(APPEND SOURCE sdl_con.c)
-	list(APPEND SOURCE sdlfuncs.c)
-	set(NEED_SCALE TRUE)
-	if(WIN32)
-		list(APPEND SOURCE SDL_win32_main.c)
-	endif()
-	if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		list(APPEND SOURCE SDLMain.m)
-	endif()
-	set(NEED_BITMAP TRUE)
-	set(NEED_DLOPEN TRUE)
-endif()
-
-if(NEED_BITMAP)
-	list(APPEND SOURCE bitmap_con.c)
-endif()
-
-if(NEED_SCALE)
-	list(APPEND SOURCE scale.c)
-endif()
-
-add_library(ciolib OBJECT ${SOURCE})
-target_include_directories(ciolib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-if(CURSES_FOUND)
-	if(${CMAKE_SYSTEM_NAME} MATCHES "(Free|Open|Net)BSD")
-		list(APPEND SOURCE curs_cio.c)
-		set(USE_CURSES_ANYWAY TRUE)
-	endif()
-endif()
-
-if(X11_FOUND)
-	target_include_directories(ciolib PRIVATE ${X11_INCLUDE_DIR})
-else()
-	target_compile_definitions(ciolib PRIVATE NO_X)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	target_include_directories(ciolib PUBLIC ${SDL2_INCLUDE_DIRS})
-	set(WITH_SDL TRUE PARENT_SCOPE)
-endif()
-
-if(NOT WIN32)
-	target_link_libraries(ciolib pthread)
-endif()
-
-if(USE_CURSES_ANYWAY)
-	if(CURSES_FOUND)
-		if (CURSES_HAVE_NCURSES_NCURSES_H)
-			target_compile_definitions(ciolib PRIVATE DEBIAN_HATES_YOU)
-		elseif(CURSES_HAVE_NCURSES_H)
-			target_compile_definitions(ciolib PRIVATE N_CURSES_LIB)
-		endif()
-		target_link_libraries(ciolib ${NCURSES_LIBRARIES})
-	else()
-		target_link_libraries(ciolib ${CURSES_NCURSES_LIBRARY})
-		target_link_libraries(ciolib ${CURSES_TINFO_LIBRARY_NAME})
-	endif()
-endif()
-
-CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) 
-if(HAVE_VASPRINTF)
-	target_compile_definitions(ciolib PRIVATE HAVE_VASPRINTF)
-endif()
-target_link_libraries(ciolib hash encode xpdev)
diff --git a/ciolib/CVS/Entries b/ciolib/CVS/Entries
deleted file mode 100644
index 1cdbe41..0000000
--- a/ciolib/CVS/Entries
+++ /dev/null
@@ -1,3 +0,0 @@
-/conio.dsp/1.15/Thu Jun  1 21:57:02 2006//
-/conio_sdl.dsp/1.1/Thu Oct 11 06:30:16 2007//
-D
diff --git a/ciolib/CVS/Repository b/ciolib/CVS/Repository
deleted file mode 100644
index 88f933e..0000000
--- a/ciolib/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-src/conio
diff --git a/ciolib/CVS/Root b/ciolib/CVS/Root
deleted file mode 100644
index 008bd82..0000000
--- a/ciolib/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-:pserver:deuce@cvs.synchro.net:/cvsroot/sbbs
diff --git a/ciolib/CVS/Template b/ciolib/CVS/Template
deleted file mode 100644
index e69de29..0000000
diff --git a/ciolib/OverhaulNotes.txt b/ciolib/OverhaulNotes.txt
deleted file mode 100644
index 2822c71..0000000
--- a/ciolib/OverhaulNotes.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-1)  NO GLOBALS (ESCDELAY etc will be in the struct with accessors)
-2)  An init function that returns a struct with a bunch of function pointers in
-    it.
-3)  UIFC will need to have the ability for the ciolib struct to be passed to
-    it.
-4)  Will support multiple independent windows.
-5)  There will be a compatability library for JUST conio stuff.
-6)  Any advanced features not in the conio API will not be present.
-7)  Unicode (UTF-8) support... likely X11 first, followed by Curses, SDL and
-    Win32.
-8)  ANSI mode may never get proper unicode support... or at least not until
-    everything else works.
-9)  Unicode support will support GR access of the C1 set.  Most importantly,
-    this means CSI (\x9b).  This is actually somewhat silly since it will take
-    two bytes regardless, but if UCS-2 or something gets added in the future,
-    it may make a difference, and there's no reason to show control codes.
-10) Greatly expanded attribute sets, and in UTF-8 mode there will be no
-    hackiness.  The great bright/bold debate will rage on though... possibly a
-    new set/reset mode will be added to control it.
-11) Double-height/Double-width/Double-size modes.  As is tradition, all the
-    cells covered by the glyph must be the same character and attributes.  This
-    opens a whole can of worms regarding how further updates work etc.  I'll
-    strive to keep it sane and compatible, which may be impossible.
-12) A Unicode cell will potentially have multiple codepoints "in" it.
-13) We need a way to specify the initial mode.
-
-Some sort of state checkpoint thing... you "save" the checkpoint, and send that
-ID back and you get the same state returned.
-
-Stack and state save thing
-
-For CONIOng:
-Layers:
-0  - Solid fixed background (doesn't scoll)
-1  - Text area background (scrolls, text area)
-2  - Text area background bitmap (scrolls, text area)
-3  - Text area background pixel (scrolls, text area)
-4  - Bitmap background (doesn't scroll)
-5  - Pixel background (doesn't scroll)
-6  - Text area foreground (scrolls, text area)
-7  - Text area foreground bitmap (scrolls, text area)
-8  - Text area foreground pixel (scrolls, text area)
-9  - Bitmap foreground (doesn't scroll)
-10 - Pixel foreground layer (doesn't scroll)
-
-Layer Attributes:
-Layer 0:  "colour"
-Layer 1:  <none>
-Layer 2:  <none>
-Layer 3:  "hidden"
-Layer 4:  <none>
-Layer 5:  "hidden"
-Layer 6:  <none>
-Layer 7:  <none>
-Layer 8:  "hidden"
-Layer 9:  <none>
-Layer 10: "hidden"
-
-A text area can be defined as having a given width and height with the
-top-left corner positioned at any pixel location.  Text areas use a fixed
-width font, and have multiple planes... text background, background bitmap,
-background pixels, text foreground, foreground bitmap, foreground pixels
-It will have the following attributes:
-Fonts
-Codepage
-Tab stops
-Cursor position
-Auto-wrap
-Blink enabled
-Cursor vidible
-Palette definition
-Foreground visible
-Foreground bitmaps visible
-Foreground pixels visible
-Background visible
-Background bitmaps visible
-Background pixels visible
-Z-index
-"Current" cell attributes (see below)
-
-Each character cell will have the following attributes:
-Codepoints (array)
-Foreground colour
-Background colour
-Font
-Flags
-- Fast Blink
-- Slow Blink
-- Bold
-- Italic
-- Negative
-- Concealed
-- Underline
-- Overstrike
-- Double underline
-- Double overstrike
-- Double-wide
-- Double-high
-- Superscript
-- Subscript
-
-Bitmap layers contain zero or more bitmaps (likely WebP, maybe others)
-which have a stacking order in the layer. Attributes:
-position
-hidden
-paused (not animated)
-Z-index
-
-Pixel layers are simply an array of pixels that may be directly
-manipulated.  No attributes are planned.
-
-For the bitmap and pixel layers associated with a text area, they will
-scroll with the text in that area.
diff --git a/ciolib/SDLMain.h b/ciolib/SDLMain.h
deleted file mode 100644
index 4683df5..0000000
--- a/ciolib/SDLMain.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#import <Cocoa/Cocoa.h>
-
-@interface SDLMain : NSObject
-@end
diff --git a/ciolib/SDLMain.m b/ciolib/SDLMain.m
deleted file mode 100644
index f9c6394..0000000
--- a/ciolib/SDLMain.m
+++ /dev/null
@@ -1,387 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#include "SDL.h"
-#include "SDLMain.h"
-#include <sys/param.h> /* for MAXPATHLEN */
-#include <unistd.h>
-
-/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
- but the method still is there and works. To avoid warnings, we declare
- it ourselves here. */
-@interface NSApplication(SDL_Missing_Methods)
-- (void)setAppleMenu:(NSMenu *)menu;
-@end
-
-/* Use this flag to determine whether we use SDLMain.nib or not */
-#define		SDL_USE_NIB_FILE	0
-
-/* Use this flag to determine whether we use CPS (docking) or not */
-#define		SDL_USE_CPS		1
-#ifdef SDL_USE_CPS
-/* Portions of CPS.h */
-typedef struct CPSProcessSerNum
-{
-	UInt32		lo;
-	UInt32		hi;
-} CPSProcessSerNum;
-
-extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
-extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
-extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
-
-#endif /* SDL_USE_CPS */
-
-static int    gArgc;
-static char  **gArgv;
-static BOOL   gFinderLaunch;
-static BOOL   gCalledAppMainline = FALSE;
-
-static NSString *getApplicationName(void)
-{
-    const NSDictionary *dict;
-    NSString *appName = 0;
-
-    /* Determine the application name */
-    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
-    if (dict)
-        appName = [dict objectForKey: @"CFBundleName"];
-    
-    if (![appName length])
-        appName = [[NSProcessInfo processInfo] processName];
-
-    return appName;
-}
-
-#if SDL_USE_NIB_FILE
-/* A helper category for NSString */
-@interface NSString (ReplaceSubString)
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
-@end
-#endif
-
-@interface NSApplication (SDLApplication)
-@end
-
-@implementation NSApplication (SDLApplication)
-/* Invoked from the Quit menu item */
-- (void)terminate:(id)sender
-{
-    /* Post a SDL_QUIT event */
-    SDL_Event event;
-    event.type = SDL_QUIT;
-    SDL_PushEvent(&event);
-}
-@end
-
-/* The main class of the application, the application's delegate */
-@implementation SDLMain
-
-/* Set the working directory to the .app's parent directory */
-- (void) setupWorkingDirectory:(BOOL)shouldChdir
-{
-    if (shouldChdir)
-    {
-        char parentdir[MAXPATHLEN];
-        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
-        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
-        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
-            chdir(parentdir);   /* chdir to the binary app's parent */
-        }
-        CFRelease(url);
-        CFRelease(url2);
-    }
-}
-
-#if SDL_USE_NIB_FILE
-
-/* Fix menu to contain the real app name instead of "SDL App" */
-- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
-{
-    NSRange aRange;
-    NSEnumerator *enumerator;
-    NSMenuItem *menuItem;
-
-    aRange = [[aMenu title] rangeOfString:@"SDL App"];
-    if (aRange.length != 0)
-        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
-
-    enumerator = [[aMenu itemArray] objectEnumerator];
-    while ((menuItem = [enumerator nextObject]))
-    {
-        aRange = [[menuItem title] rangeOfString:@"SDL App"];
-        if (aRange.length != 0)
-            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
-        if ([menuItem hasSubmenu])
-            [self fixMenu:[menuItem submenu] withAppName:appName];
-    }
-}
-
-#else
-
-static void setApplicationMenu(void)
-{
-    /* warning: this code is very odd */
-    NSMenu *appleMenu;
-    NSMenuItem *menuItem;
-    NSString *title;
-    NSString *appName;
-    
-    appName = getApplicationName();
-    appleMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    /* Add menu items */
-    title = [@"About " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Hide " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""];
-
-    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@""];
-    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
-
-    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Quit " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@""];
-
-    
-    /* Put menu into the menubar */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
-    [menuItem setSubmenu:appleMenu];
-    [[NSApp mainMenu] addItem:menuItem];
-
-    /* Tell the application object that this is now the application menu */
-    [NSApp setAppleMenu:appleMenu];
-
-    /* Finally give up our references to the objects */
-    [appleMenu release];
-    [menuItem release];
-}
-
-/* Create a window menu */
-static void setupWindowMenu(void)
-{
-    NSMenu      *windowMenu;
-    NSMenuItem  *windowMenuItem;
-    NSMenuItem  *menuItem;
-
-    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-    
-    /* "Minimize" item */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@""];
-    [windowMenu addItem:menuItem];
-    [menuItem release];
-    
-    /* Put menu into the menubar */
-    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
-    [windowMenuItem setSubmenu:windowMenu];
-    [[NSApp mainMenu] addItem:windowMenuItem];
-    
-    /* Tell the application object that this is now the window menu */
-    [NSApp setWindowsMenu:windowMenu];
-
-    /* Finally give up our references to the objects */
-    [windowMenu release];
-    [windowMenuItem release];
-}
-
-/* Replacement for NSApplicationMain */
-static void CustomApplicationMain (int argc, char **argv)
-{
-    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
-    SDLMain				*sdlMain;
-
-    /* If there's no Window Server (ie: remote headless), go in dry. */
-    if (_CGSDefaultConnection() == NULL) {
-        XPDEV_main(argc, argv, environ);
-        return;
-    }
-
-    /* Ensure the application object is initialised */
-    [NSApplication sharedApplication];
-    
-#ifdef SDL_USE_CPS
-    {
-        CPSProcessSerNum PSN;
-        /* Tell the dock about us */
-        if (!CPSGetCurrentProcess(&PSN))
-            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
-                if (!CPSSetFrontProcess(&PSN))
-                    [NSApplication sharedApplication];
-    }
-#endif /* SDL_USE_CPS */
-
-    /* Set up the menubar */
-    [NSApp setMainMenu:[[NSMenu alloc] init]];
-    setApplicationMenu();
-    setupWindowMenu();
-
-    /* Create SDLMain and make it the app delegate */
-    sdlMain = [[SDLMain alloc] init];
-    [NSApp setDelegate:sdlMain];
-    
-    /* Start the main event loop */
-    [NSApp run];
-    
-    [sdlMain release];
-    [pool release];
-}
-
-#endif
-
-
-/*
- * Catch document open requests...this lets us notice files when the app
- *  was launched by double-clicking a document, or when a document was
- *  dragged/dropped on the app's icon. You need to have a
- *  CFBundleDocumentsType section in your Info.plist to get this message,
- *  apparently.
- *
- * Files are added to gArgv, so to the app, they'll look like command line
- *  arguments. Previously, apps launched from the finder had nothing but
- *  an argv[0].
- *
- * This message may be received multiple times to open several docs on launch.
- *
- * This message is ignored once the app's mainline has been called.
- */
-- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
-{
-    const char *temparg;
-    size_t arglen;
-    char *arg;
-    char **newargv;
-
-    if (!gFinderLaunch)  /* MacOS is passing command line args. */
-        return FALSE;
-
-    if (gCalledAppMainline)  /* app has started, ignore this document. */
-        return FALSE;
-
-    temparg = [filename UTF8String];
-    arglen = SDL_strlen(temparg) + 1;
-    arg = (char *) SDL_malloc(arglen);
-    if (arg == NULL)
-        return FALSE;
-
-    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
-    if (newargv == NULL)
-    {
-        SDL_free(arg);
-        return FALSE;
-    }
-    gArgv = newargv;
-
-    SDL_strlcpy(arg, temparg, arglen);
-    gArgv[gArgc++] = arg;
-    gArgv[gArgc] = NULL;
-    return TRUE;
-}
-
-extern char **environ;
-/* Called when the internal event loop has just started running */
-- (void) applicationDidFinishLaunching: (NSNotification *) note
-{
-    int status;
-
-    /* Set the working directory to the .app's parent directory */
-    [self setupWorkingDirectory:gFinderLaunch];
-
-#if SDL_USE_NIB_FILE
-    /* Set the main menu to contain the real app name instead of "SDL App" */
-    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
-#endif
-
-    /* Hand off to main application code */
-    gCalledAppMainline = TRUE;
-    status = SDL_main_env (gArgc, gArgv, environ);
-
-    /* We're done, thank you for playing */
-    exit(status);
-}
-@end
-
-
-@implementation NSString (ReplaceSubString)
-
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
-{
-    unsigned int bufferSize;
-    unsigned int selfLen = [self length];
-    unsigned int aStringLen = [aString length];
-    unichar *buffer;
-    NSRange localRange;
-    NSString *result;
-
-    bufferSize = selfLen + aStringLen - aRange.length;
-    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
-    
-    /* Get first part into buffer */
-    localRange.location = 0;
-    localRange.length = aRange.location;
-    [self getCharacters:buffer range:localRange];
-    
-    /* Get middle part into buffer */
-    localRange.location = 0;
-    localRange.length = aStringLen;
-    [aString getCharacters:(buffer+aRange.location) range:localRange];
-     
-    /* Get last part into buffer */
-    localRange.location = aRange.location + aRange.length;
-    localRange.length = selfLen - localRange.location;
-    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
-    
-    /* Build output string */
-    result = [NSString stringWithCharacters:buffer length:bufferSize];
-    
-    NSDeallocateMemoryPages(buffer, bufferSize);
-    
-    return result;
-}
-
-@end
-
-
-
-#ifdef main
-#  undef main
-#endif
-
-
-/* Main entry point to executable - should *not* be SDL_main! */
-int main (int argc, char **argv)
-{
-    /* Copy the arguments into a global variable */
-    /* This is passed if we are launched by double-clicking */
-    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
-        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
-        gArgv[0] = argv[0];
-        gArgv[1] = NULL;
-        gArgc = 1;
-        gFinderLaunch = YES;
-    } else {
-        int i;
-        gArgc = argc;
-        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
-        for (i = 0; i <= argc; i++)
-            gArgv[i] = argv[i];
-        gFinderLaunch = NO;
-    }
-
-#if SDL_USE_NIB_FILE
-    NSApplicationMain (argc, argv);
-#else
-    CustomApplicationMain (argc, argv);
-#endif
-    return 0;
-}
-
diff --git a/ciolib/SDL_win32_main.c b/ciolib/SDL_win32_main.c
deleted file mode 100644
index 96f87f2..0000000
--- a/ciolib/SDL_win32_main.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-    SDL_main.c, placed in the public domain by Sam Lantinga  4/13/98
-
-    The WinMain function -- calls your program's main() function
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-#include <windows.h>
-#include <malloc.h>			/* For _alloca() */
-
-#define DIR_SEPERATOR TEXT("/")
-#include <direct.h>
-
-#include "ciolib.h"			/* ciolib_appname */
-
-/* Parse a command line buffer into arguments */
-static int ParseCommandLine(char *cmdline, char **argv)
-{
-	char *bufp;
-	int argc;
-
-	argc = 0;
-	for ( bufp = cmdline; *bufp; ) {
-		/* Skip leading whitespace */
-		while ( isspace(*bufp) ) {
-			++bufp;
-		}
-		/* Skip over argument */
-		if ( *bufp == '"' ) {
-			++bufp;
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && (*bufp != '"') ) {
-				++bufp;
-			}
-		} else {
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && ! isspace(*bufp) ) {
-				++bufp;
-			}
-		}
-		if ( *bufp ) {
-			if ( argv ) {
-				*bufp = '\0';
-			}
-			++bufp;
-		}
-	}
-	if ( argv ) {
-		argv[argc] = NULL;
-	}
-	return(argc);
-}
-
-extern int CIOLIB_main(int argc, char **argv);
-
-/* This is where execution begins [console apps] */
-static int console_main(int argc, char *argv[], char **env)
-{
-	int n;
-	char *bufp, *appname;
-
-	/* Get the class name from argv[0] */
-	appname = argv[0];
-	if ( (bufp=strrchr(argv[0], '\\')) != NULL ) {
-		appname = bufp+1;
-	} else
-	if ( (bufp=strrchr(argv[0], '/')) != NULL ) {
-		appname = bufp+1;
-	}
-
-	if ( (bufp=strrchr(appname, '.')) == NULL )
-		n = strlen(appname);
-	else
-		n = (bufp-appname);
-
-	bufp = (char *)alloca(n+1);
-	if ( bufp == NULL ) {
-		return 1;
-	}
-	strncpy(bufp, appname, n);
-	bufp[n] = '\0';
-	ciolib_appname = bufp;
-
-	/* Run the application main() code */
-	n=CIOLIB_main(argc, argv);
-
-	/* Exit cleanly, calling atexit() functions */
-	exit(n);
-
-	/* Hush little compiler, don't you cry... */
-	return(n);
-}
-
-/* This is where execution begins [windowed apps] */
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-{
-	HINSTANCE handle;
-	char **argv;
-	int argc;
-	char *cmdline;
-	char *bufp;
-
-	/* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
-	   keep them open.  This is a hack.. hopefully it will be fixed 
-	   someday.  DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
-	 */
-	handle = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( handle != NULL ) {
-		FreeLibrary(handle);
-	}
-
-	/* Grab the command line (use alloca() on Windows) */
-	bufp = GetCommandLine();
-	cmdline = (char *)alloca(strlen(bufp)+1);
-	if ( cmdline == NULL ) {
-		return 1;
-	}
-	strcpy(cmdline, bufp);
-
-	/* Parse it into argv and argc */
-	argc = ParseCommandLine(cmdline, NULL);
-	argv = (char **)alloca((argc+1)*(sizeof *argv));
-	if ( argv == NULL ) {
-		return 1;
-	}
-	ParseCommandLine(cmdline, argv);
-
-	/* Run the main program (after a little SDL initialization) */
-	return(console_main(argc, argv, _environ));
-}
diff --git a/ciolib/allfonts.c b/ciolib/allfonts.c
deleted file mode 100644
index f2d6a54..0000000
--- a/ciolib/allfonts.c
+++ /dev/null
@@ -1,23825 +0,0 @@
-#include <stdio.h>		/* NULL */
-
-#include "ciolib.h"
-
-#ifdef NO_FONTS
-CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
-	{NULL, NULL, NULL, "Codepage 437 English", CIOLIB_CP437},
-	{NULL, NULL, NULL, "Codepage 1251 Cyrillic, (swiss)", CIOLIB_CP1251},
-	{NULL, NULL, NULL, "Russian koi8-r", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-2 Central European", CIOLIB_ISO_8859_2},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic wide (VGA 9bit mapped)", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP866M},
-	{NULL, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_ISO_8859_9},
-	{NULL, NULL, NULL, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_HAIK8},
-	{NULL, NULL, NULL, "ISO-8859-8 Hebrew", CIOLIB_ISO_8859_8},
-	{NULL, NULL, NULL, "Ukrainian font koi8-u", CIOLIB_KOI8_U},
-	{NULL, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_ISO_8859_15},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic (VGA 9bit mapped)", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "Russian koi8-r (b)", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic wide", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "ISO-8859-5 Cyrillic", CIOLIB_ISO_8859_5},
-	{NULL, NULL, NULL, "ARMSCII-8 Character set", CIOLIB_ARMSCII8},
-	{NULL, NULL, NULL, "ISO-8859-15 West European", CIOLIB_ISO_8859_15},
-	{NULL, NULL, NULL, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP850},
-	{NULL, NULL, NULL, "Codepage 850 Multilingual Latin I", CIOLIB_CP850},
-	{NULL, NULL, NULL, "Codepage 865 Norwegian, (thin)", CIOLIB_CP865},
-	{NULL, NULL, NULL, "Codepage 1251 Cyrillic", CIOLIB_CP1251},
-	{NULL, NULL, NULL, "ISO-8859-7 Greek", CIOLIB_ISO_8859_7},
-	{NULL, NULL, NULL, "Russian koi8-r (c)", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "ISO-8859-1 West European", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Codepage 866 Russian", CIOLIB_CP866M2},
-	{NULL, NULL, NULL, "Codepage 437 English, (thin)", CIOLIB_CP437},
-	{NULL, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP866M2},
-	{NULL, NULL, NULL, "Codepage 865 Norwegian", CIOLIB_CP865},
-	{NULL, NULL, NULL, "Ukrainian font cp866u", CIOLIB_CP866U},
-	{NULL, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP1131},
-	{NULL, NULL, NULL, "Commodore 64 (UPPER)", CIOLIB_PETSCIIU},
-	{NULL, NULL, NULL, "Commodore 64 (Lower)", CIOLIB_PETSCIIL},
-	{NULL, NULL, NULL, "Commodore 128 (UPPER)", CIOLIB_PETSCIIU},
-	{NULL, NULL, NULL, "Commodore 128 (Lower)", CIOLIB_PETSCIIL},
-	{NULL, NULL, NULL, "Atari", CIOLIB_ATASCII},
-	{NULL, NULL, NULL, "P0T NOoDLE (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "mO'sOul (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL , "MicroKnight Plus (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Topaz Plus (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "MicroKnight (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Topaz (Amiga)", CIOLIB_ISO_8859_1}
-};
-#else
-CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
-	 {"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\x76\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x18\x3c\x66\x60\x60\x60\x66\x3c\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\x18\x18\xd8\x70\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x9e\x3e\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xd8\xdc\x76\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\x6c\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\xdb\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x60\x30\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\xd8\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x66\x3c\x0c\x06\x3c\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\x76\x36\x7e\xd8\xd8\x6e\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\xc6\x38\x6c\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x18\x3c\x66\x60\x60\x66\x3c\x18\x18\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xc6\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\x18\xd8\x70\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc6\xcc\xd8\x30\x60\xdc\x86\x0c\x18\x3e\x00"
-		"\x00\xc0\xc0\xc6\xcc\xd8\x30\x66\xce\x9e\x3e\x06\x06\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xdc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0\xc0\x40\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x7c\x60\x60\xc0\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\xee\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\xd8\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x78\xcc\xc0\xcc\x78\x18\x0c\x78"
-		"\x00\xcc\x00\xcc\xcc\xcc\x7e\x00"
-		"\x1c\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x7e\xc3\x3c\x06\x3e\x66\x3f\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\xe0\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x7e\x00"
-		"\x00\x00\x78\xc0\xc0\x78\x0c\x38"
-		"\x7e\xc3\x3c\x66\x7e\x60\x3c\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\xe0\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x70\x30\x30\x30\x78\x00"
-		"\x7c\xc6\x38\x18\x18\x18\x3c\x00"
-		"\xe0\x00\x70\x30\x30\x30\x78\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x30\x30\x00\x78\xcc\xfc\xcc\x00"
-		"\x1c\x00\xfc\x60\x78\x60\xfc\x00"
-		"\x00\x00\x7f\x0c\x7f\xcc\x7f\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x78\xcc\x00\x78\xcc\xcc\x78\x00"
-		"\x00\xcc\x00\x78\xcc\xcc\x78\x00"
-		"\x00\xe0\x00\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xe0\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xcc\x00\xcc\xcc\x7c\x0c\xf8"
-		"\xc3\x18\x3c\x66\x66\x3c\x18\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x38\x6c\x64\xf0\x60\xe6\xfc\x00"
-		"\xcc\xcc\x78\xfc\x30\xfc\x30\x30"
-		"\xf8\xcc\xcc\xfa\xc6\xcf\xc6\xc7"
-		"\x0e\x1b\x18\x3c\x18\x18\xd8\x70"
-		"\x1c\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\x38\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\x1c\x00\x78\xcc\xcc\x78\x00"
-		"\x00\x1c\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xf8\x00\xf8\xcc\xcc\xcc\x00"
-		"\xfc\x00\xcc\xec\xfc\xdc\xcc\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\xc3\xc6\xcc\xde\x33\x66\xcc\x0f"
-		"\xc3\xc6\xcc\xdb\x37\x6f\xcf\x03"
-		"\x18\x18\x00\x18\x18\x18\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdb\x77\xdb\xee\xdb\x77\xdb\xee"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\xc8\xdc\x76\x00"
-		"\x00\x78\xcc\xf8\xcc\xf8\xc0\xc0"
-		"\x00\xfc\xcc\xc0\xc0\xc0\xc0\x00"
-		"\x00\xfe\x6c\x6c\x6c\x6c\x6c\x00"
-		"\xfc\xcc\x60\x30\x60\xcc\xfc\x00"
-		"\x00\x00\x7e\xd8\xd8\xd8\x70\x00"
-		"\x00\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x76\xdc\x18\x18\x18\x18\x00"
-		"\xfc\x30\x78\xcc\xcc\x78\x30\xfc"
-		"\x38\x6c\xc6\xfe\xc6\x6c\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x6c\xee\x00"
-		"\x1c\x30\x18\x7c\xcc\xcc\x78\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x00\x00"
-		"\x06\x0c\x7e\xdb\xdb\x7e\x60\xc0"
-		"\x38\x60\xc0\xf8\xc0\x60\x38\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x30\x30\xfc\x30\x30\x00\xfc\x00"
-		"\x60\x30\x18\x30\x60\x00\xfc\x00"
-		"\x18\x30\x60\x30\x18\x00\xfc\x00"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x30\x30\x00\xfc\x00\x30\x30\x00"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xec\x6c\x3c\x1c"
-		"\x78\x6c\x6c\x6c\x6c\x00\x00\x00"
-		"\x70\x18\x30\x60\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 437 English", CIOLIB_CP437}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x81\xe7\xa5\x99\x81\x99\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x7e\xff\x99\xdb\xe7\xff\xe7\x7e\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x10\xd6\xfe\xd6\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\xfe\xfe\x54\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x30\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x20\x30\x38\x3c\x36\x36\x30\x70\xf0\xf0\x60\x00\x00\x00\x00"
-		"\x00\x00\x3e\x22\x3e\x22\x22\x22\x22\x26\x6e\xe4\x40\x00\x00\x00"
-		"\x00\x00\x00\x10\x92\x54\x28\xc6\x28\x54\x92\x10\x00\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x78\x7c\x7e\x7c\x78\x70\x60\x40\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x1e\x3e\x7e\x3e\x1e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\xff\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x06\xff\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xff\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x7e\x7e\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x7e\x7e\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x10\x7c\xd6\xd0\xd0\x70\x38\x1c\x16\x16\xd6\x7c\x10\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x70\xd6\xdc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\xff\x3c\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xd6\xd6\xd6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x60\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x0c\xcc\xcc\xcc\xcc\xfe\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\x0c\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x1c\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x30\x00\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xcc\xf8\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xce\xc6\xc6\xc6\x66\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xf6\xde\x7c\x0c\x06\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xd8\xcc\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xfe\x06\x0c\x0c\x18\x18\x30\x60\x60\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x00\x70\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x66\x60\x60\xf0\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x00\xc0\xc0\xc0\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xfe\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xfe\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x0c\x18\x30\x60\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x30\x60\x30\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0c\x06\x0c\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\xfc\x60\x60\x60\x7e\x63\x63\x63\x63\x67\x6c\x00\x00\x00"
-		"\x18\x30\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x18\x30\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x66\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x7e\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x1e\x32\x30\x7e\x30\x7e\x30\x30\x32\x1e\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x18\x30\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x18\x30\x00\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x66\x66\x0c\x18\x00"
-		"\x00\x00\x0c\x18\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf1\x5b\x55\x51\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x58\xd8\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x30\x18\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x18\x30\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x44\x38\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x66\x66\x66\x66\x3c\x66\x66\x00\x00\x00"
-		"\x06\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3e\x63\x5d\x51\x51\x5d\x63\x3e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xfc\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x5d\x55\x59\x55\x63\x3e\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc8\xc8\xea\xed\xdd\xda\xc8\xcf\xc8\xc8\xc8\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf8\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\xc3\x66\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\x54\x7c\x38\x38\x38\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x38\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\xf0\xb0\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xf6\xde\xde\xde\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3e\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\x66\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\xff\xc3\x66\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\x7c\x38\x38\x38\x7c\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\xb0\x30\x3c\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfa\xce\xce\xfa\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x60\x60\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xd6\xd6\xf6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-	, NULL, NULL, "Codepage 1251 Cyrillic, (swiss)", CIOLIB_CP1251}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-	, "Russian koi8-r", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x78\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x18\x30\x1e\x00"
-		"\x00\xc6\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf0\x64\x6c\x78\x70\xe0\xe0\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x18\x0c\x78\x00"
-		"\x36\x1c\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x18\x18\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x60\x3c\x00"
-		"\x00\x00\x38\x1a\x1e\x1c\x18\x38\x78\x58\x18\x3c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x18\x0c\x78\x00"
-		"\x6c\x38\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x0c\x18\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\xc6\x7c\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xf6\x6c\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00"
-		"\x6c\x38\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x60\x78\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x18\x30\x1e\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x1c\x36\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x6c\x38\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x6c\x38\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x38\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x36\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x18\x0c\x78\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe6\x6c\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x0c\x78\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x30\x60\x3c\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x6c\x38\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x7e\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x18\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xd6\xd6\xd6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\xc6\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf0\x64\x6c\x78\x70\xe0\xe2\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\x70\x1c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0e\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x70\x1c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x18\x70\x00"
-		"\x36\x1c\x00\x7e\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x0c\x18\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x30\x1c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x1c\x00"
-		"\x00\x00\x38\x1a\x1e\x1c\x18\x38\x78\x58\x3c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x18\x70\x00"
-		"\x6c\x38\x00\x10\x30\x30\xfc\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\xfc\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x0c\x18\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\x7c\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xf6\x6c\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00"
-		"\x6c\x38\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x30\x1c\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x6c\x38\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1c\x36\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x6c\x38\x00\xf8\x6c\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x6c\x38\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfc\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x38\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x36\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x0c\x38\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xc6\x7c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe6\x6c\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x18\x70\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x30\x1c\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x6c\x38\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x7e\x0c\x3c\x6c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x6c\xd8\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xc6\xd6\xc6\xc6\x7c\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x1c\x30\x66\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x1c\x30\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x0c\x18\x30\x60\x30\x18\x0c\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x18\x3c\x66\x66\x7e\x66\x66\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x3c\x66\x66\x66\x6e\x3c\x0e\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x6c\x38\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x36\x30\x78\x30\x30\x78\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x6e\x18\x0e"
-		"\xc6\x7c\x00\x00\x00\x00\x00\x00"
-		"\xf0\x68\x78\xf0\xe2\x66\xfe\x00"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\xfb\x6e\x60\x60\x62\x66\xfe\x00"
-		"\x0c\x18\x7c\xc2\x38\x86\x7c\x00"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc2\x38\x86\x7c\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x38"
-		"\x36\x1c\x7e\x5a\x18\x18\x3c\x00"
-		"\x0c\x18\xfe\x86\x18\x62\xfe\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x6c\x38\xfe\x86\x18\x62\xfe\x00"
-		"\x18\x00\xfe\x86\x18\x62\xfe\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x1c"
-		"\x00\x00\x00\x00\x00\x00\x30\x1c"
-		"\x38\x1a\x1e\x3c\x78\x18\x3c\x00"
-		"\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\xfb\x6e\x60\x60\x60\x60\xf0\x00"
-		"\x0c\x18\x3c\x40\x38\x04\x78\x00"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x0c\x38"
-		"\x6c\x38\x3c\x40\x38\x04\x78\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x38"
-		"\x6c\x38\x30\x7c\x30\x34\x18\x00"
-		"\x0c\x18\x00\x7c\x18\x30\x7c\x00"
-		"\x36\x6c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\x18\x30\x7c\x00"
-		"\x00\x18\x00\x7c\x18\x30\x7c\x00"
-		"\x0c\x18\xfc\xc6\xfc\xcc\xc6\x00"
-		"\x0c\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x1c\x36\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x3c\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x18\x3c\x66\x7e\x66\x66\x00"
-		"\xe6\x6c\x60\x60\x62\x66\xfe\x00"
-		"\x0c\x18\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x38"
-		"\x6c\x38\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x0c\x18\xfe\x60\x78\x60\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x1c"
-		"\xc6\x00\xfe\x60\x78\x60\xfe\x00"
-		"\x6c\x38\xfe\x60\x78\x60\xfe\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x1c\x36\x3c\x18\x18\x18\x3c\x00"
-		"\x6c\x38\xfc\x66\x66\x66\xfc\x00"
-		"\xf8\x6c\x66\xf6\x66\x6c\xf8\x00"
-		"\x0c\x18\xe6\xf6\xde\xce\xc6\x00"
-		"\x6c\x38\xe6\xf6\xde\xce\xc6\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x6c\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x36\x6c\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x6c\x38\xfc\xc6\xfc\xcc\xc6\x00"
-		"\x38\x6c\xf6\xc6\xc6\xc6\x7c\x00"
-		"\x0c\x18\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x36\x6c\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0c\x7e\x66\x66\x3c\x18\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x0e"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\x0c\x18\xdc\x76\x66\x60\xf0\x00"
-		"\x0c\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x38\x6c\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x7c\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x73\x36\x30\x30\x30\x30\x78\x00"
-		"\x0c\x18\x00\x3c\x60\x60\x3c\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x38"
-		"\x36\x1c\x00\x3c\x60\x60\x3c\x00"
-		"\x0c\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x1c"
-		"\x66\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x36\x1c\x3c\x66\x7e\x60\x3c\x00"
-		"\x0c\x18\x38\x18\x18\x18\x3c\x00"
-		"\x1c\x36\x38\x18\x18\x18\x3c\x00"
-		"\x6c\x38\x0c\x0c\x7c\xcc\x76\x00"
-		"\x0c\x3e\x0c\x7c\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\x66\x66\x66\x66\x00"
-		"\x6c\x38\x7c\x66\x66\x66\x66\x00"
-		"\x0c\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x1c\x36\x00\x3c\x66\x66\x3c\x00"
-		"\x36\x6c\x00\x3c\x66\x66\x3c\x00"
-		"\x66\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x6c\x38\xdc\x76\x66\x60\xf0\x00"
-		"\x30\xcc\x30\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x6c\xd8\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x66\x66\x66\x3e\x06\x7c"
-		"\x10\x30\x7c\x30\x30\x34\x18\x0e"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-2 Central European", CIOLIB_ISO_8859_2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\x1b\xdb\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00"
-		"\x00\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00"
-		"\x00\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x00\x00"
-		"\x00\x00\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xe3\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0f"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\x66\x66\x3c\x18\x18\x30\x30\xe0"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x20\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x00\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x0e\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x18\x0f"
-		"\x66\x24\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x18\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x0e\x18\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\xf3\xf3\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7e\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x06\x3c"
-		"\x3c\x66\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x76\xdc\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x66\x66\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x01\x3d\x66\xc7\xcb\xcb\xdb\xdb\xdb\xd3\xd3\x66\xbc\x80\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x19\x0e"
-		"\x18\x30\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xfe\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xdc\xc6\xc3\xc3\xc3\xc3\xc6\xcc\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xce\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x18\xf0"
-		"\x00\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x0e\x3c"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x3c\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x7e\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1b\x1e\x3c\x78\xd8\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x38\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x18\xf0"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x30\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\x06\x1c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x1b\x1b\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x30\x1c"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x30\x1e"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0e\x06\x7f\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x18\xf0"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xd6\xf6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x60\x3c"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "ISO-8859-4 Baltic wide (VGA 9bit mapped)", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x10\xfe\x66\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xe8\xd0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x36\x24\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x6c\x76\x66\x66\x66\x66\xe6\x06\x0c\x30\x00"
-		"\x00\x00\x0c\x08\x00\x3c\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00"
-		"\x00\x00\x24\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x02\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x07\x88\xcb\xab\xa8\xab\x9b\x88\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x60\x7c\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00\x00"
-		"\x00\x60\xf8\x60\x60\x7c\x76\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00"
-		"\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x6c\x6c\x6c\x6e\x69\x69\x69\x69\xce\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xfe\xc9\xc9\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x36\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xfe\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x4c\x4c\x4e\x49\x49\xce\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xfe\xc2\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x62\xc0\xf8\xc0\x62\x3c\x00\x00\x00\x00"
-		"\x02\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x18\x10\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP866M}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x06\x3c\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xce\x9b\x06\x0c\x1f\x00\x00"
-		"\x00\xf0\x30\x72\x36\xec\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x30\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x42\x3c\x00\x3c\x66\xc2\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x44\x38\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_ISO_8859_9}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00\x00"
-		"\x00\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00\x00"
-		"\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00\x00"
-		"\x00\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x70\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00\x00"
-		"\x00\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00"
-		"\x00\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00"
-		"\x00\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0\x00"
-		"\x00\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0\x00"
-		"\x00\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x00"
-		"\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00"
-		"\x00\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00\x00"
-		"\x00\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00\x00"
-		"\x00\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70\x00"
-		"\x00\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00"
-		"\x00\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e\x00"
-		"\x00\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03\x00"
-		"\x00\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10\x00"
-		"\x00\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\xfe"
-		"\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00"
-		"\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00"
-		"\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00"
-		"\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00"
-		"\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc"
-		"\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00"
-		"\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c"
-		"\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00"
-		"\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00"
-		"\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00"
-		"\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c"
-		"\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe"
-		"\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0"
-		"\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e"
-		"\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0"
-		"\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00"
-		"\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f"
-		"\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00"
-		"\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00"
-		"\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70"
-		"\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00"
-		"\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e"
-		"\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03"
-		"\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00"
-		"\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10"
-		"\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x12\xca\x2c\x79\x9e\x34\x53\x48"
-		"\xc0\xc0\xc0\xd8\xd8\xd8\x76\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x00\x6c\x36\x1b\x36\x6c\x00\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x30\x00\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x70\x3f\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\x00\x00"
-		"\x01\x0e\x70\x80\x00\x00\x00\x00"
-		"\x1c\x30\x40\x00\x00\x00\x00\x00"
-		"\x1e\x35\x26\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6f\x3b\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xf8\xc0\x00"
-		"\x00\x00\x78\xcc\xc0\xc0\xf0\xc0"
-		"\x7c\xc6\xc6\xc6\xc6\x7f\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x7e\x0c"
-		"\x7c\xc6\xc6\xc6\xc6\x07\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0e\x0c"
-		"\xc0\xc0\xfe\xc0\xc6\xc6\x7c\x00"
-		"\xc0\xc0\xfc\xc0\xcc\xcc\x78\x00"
-		"\x3e\x63\x36\x1c\xb8\xfe\x83\x00"
-		"\x00\x00\x78\xcc\xcc\x7c\x0c\x0e"
-		"\xc0\xc0\xfc\xc0\xc0\xfe\x03\x00"
-		"\x00\xc0\xc0\xf8\xc0\xc0\xf8\x0c"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xfe\x00"
-		"\x00\x00\x78\xcc\xcc\xc0\xc0\xfc"
-		"\x7c\xc6\xdf\xd6\xde\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xcf\xd6\xdc\xc0"
-		"\x06\x06\x7f\xc6\xc6\xc6\x7c\x00"
-		"\x00\x0c\x0c\x7e\xcc\xcc\x78\x00"
-		"\xc0\xfc\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xf8\xcc\xcc\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xf8"
-		"\xc0\xc0\xf3\xdb\xdb\xce\xc0\x00"
-		"\x00\xc0\xc0\xc0\xf3\xdb\xce\xc0"
-		"\xe7\x3c\x66\xc3\xc3\x66\x3c\x00"
-		"\xc0\x37\x0c\x66\xc3\xc6\x7c\x00"
-		"\xc0\xc0\xc6\xc6\x7e\x06\x06\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\x7c\x0c"
-		"\xfc\xfe\x06\xfc\xfe\x06\x06\x00"
-		"\xc0\xc0\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\xc6\x0c\x68\x9a\x66\x00"
-		"\x00\x10\x30\x78\xcc\xcc\x7a\x00"
-		"\x7c\xc6\xc6\xc6\xc6\x06\x07\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0c\x0e"
-		"\x0f\xf0\x6c\x66\xc3\xc3\xff\x00"
-		"\x1c\xe0\x30\xc8\xcc\xcc\xfc\x00"
-		"\xc7\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0e\x0c\x0c\xcc\xcc\xcc\x78\x00"
-		"\x38\x7e\x06\xf8\x06\x7e\x38\x00"
-		"\x00\x38\x7e\x06\xfc\x06\x7e\x38"
-		"\xe0\x60\x60\x63\x63\x63\x3e\x00"
-		"\xe0\x60\x66\x66\x66\x66\x3c\x00"
-		"\xe0\x7e\x1e\x30\x60\x33\x1e\x00"
-		"\x00\x78\xcc\x0c\x30\x60\xc0\xfc"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\x06\xcc\x70\x18\x0c\x00"
-		"\x00\x30\x60\x30\x18\x30\x62\x3c"
-		"\x7e\xdb\xdb\xdb\x1b\x03\x03\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\x6f\x03"
-		"\x3c\x66\x66\x1c\xb8\xfe\x83\x00"
-		"\x00\x3c\x66\x66\x66\x1c\x70\xfe"
-		"\x7c\xc6\xc6\xc6\xc7\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xce\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x06\x06\xc6\xc6\x7e\x06\x07\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xfc\x0c\x0e"
-		"\x7e\xe7\x30\x18\x0c\xe7\x7e\x00"
-		"\x00\x00\xd6\xdb\xdb\xdb\x6b\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xc0\xc0"
-		"\x7c\xc6\x7c\xfc\x03\x83\x7e\x00"
-		"\x00\x00\x78\xcc\x78\x0c\xcc\x78"
-		"\xc0\xc0\xc0\xf0\xc0\xc0\xc0\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xe0\x00"
-		"\x18\x7e\xdb\xdb\xdb\x7e\x18\x00"
-		"\x18\x18\xde\xdb\xdb\xdb\x7b\x18"
-		"\x3e\x63\x63\x7e\x60\xff\x60\x00"
-		"\x00\x3c\x66\x66\x7c\x60\xfc\x60"
-		"\x3c\x66\xc3\xc3\xc3\x66\x3c\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x18"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_HAIK8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x06\x3c\x06\x06\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\xe0\x30\x62\x36\xec\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x66\x76\xdc\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x0c\x0c\x0c\x0c\x0c\x0c\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x1c\x36\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x70\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x30\x30\x30\x18\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xd6\xd6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x70\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x0c\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x06\x06\x06\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xfc\x06\x06\x06\x06\x0c\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x76\x66\xc6\xc6\xc6\xc6\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x1c\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x66\x66\x66\x2c\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x4c\xcc\xcc\xec\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x00\xfc\x46\xc6\xc6\xe6\x06\x06\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x6c\x78\x60\x60\x60\x60\x60\x70\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x34\x18\x0c\x06\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x66\x64\x6c\x6e\x60\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xf6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\x66\x66\x66\x66\xe6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\x63\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x0c\x0c\x3e\x63\x61\x60\x3e\x03\x43\x63\x3e\x0c\x0c\x00"
-		"\x00\x00\x00\x00\x61\x63\x06\x0c\x18\x33\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x18\x0c\x06\x06\x06\x06\x06\x0c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x6b\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7f\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x3c\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6c\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x61\x60\x60\x60\x61\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x31\x34\x3c\x34\x31\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x31\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x61\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x31\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x63\x63\x6b\x6f\x3e\x07\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x6b\x6b\x7f\x36\x36\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x3c\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x46\x0c\x18\x30\x61\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x38\x1c\x0e\x07\x03\x01\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3c\x36\x33\x33\x33\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x1e\x36\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x33\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x08\x18\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x63\x3f\x03\x06\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00"
-		"\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x9a\xa2\xa2\xa2\x9a\x44\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\xba\xaa\xb2\xaa\xaa\x44\x38\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x33\x33\x33\x33\x33\x3e\x30\x60\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f\x00"
-		"\x00\xe0\x30\x63\x36\xec\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\x00\x00\x63\x63\x33\x3b\x6e\x66\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x7c\x06\x06\x06\x06\x06\x06\x7f\x00\x00\x00"
-		"\x00\x00\x00\x1c\x06\x06\x06\x06\x1e\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x7f\x06\x06\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x18\x18\x18\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x63\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x66\x6b\x6b\x63\x63\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x06\x06\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x06\x06\x06\x06\x06\x06\x07\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x03\x03\x06\x7c\x00\x00\x00"
-		"\x00\x60\x60\x7e\x03\x03\x03\x06\x0c\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\x63\x63\x63\x63\x63\x63\x7f\x00\x00\x00"
-		"\x00\x00\x00\x6e\x7b\x33\x63\x63\x63\x63\x6f\x00\x00\x00"
-		"\x00\x00\x00\x1c\x06\x06\x0c\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x1c\x06\x06\x06\x06\x06\x06\x3e\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x63\x63\x63\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x33\x33\x33\x33\x33\x1b\x0e\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\x26\x66\x76\x06\x06\x06\x06\x06\x07\x00"
-		"\x00\x00\x00\x7e\x23\x63\x73\x03\x03\x03\x7f\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x6c\x78\x60\x60\x60\x70\x00"
-		"\x00\x00\x00\x63\x63\x33\x1e\x0c\x06\x03\x7f\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x33\x36\x36\x37\x30\x30\x30\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x03\x03\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x6b\x6b\x6b\x6b\x6b\x7b\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x33\x33\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x1c\x30\x66\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x1c\x30\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x0c\x18\x30\x60\x30\x18\x0c\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x30\x18\x0c\x06\x0c\x18\x30\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x18\x3c\x66\x66\x7e\x66\x66\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x70\x38\x0e\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x36\x30\x78\x30\x30\x78\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x38\x6c\x64\xf0\x60\xe6\xfc\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x66\x66\x3c\x7e\x18\x7e\x18\x18"
-		"\x18\x18\x18\x00\x00\x18\x18\x18"
-		"\x3e\x63\x3c\x66\x66\x3c\xc6\x7c"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\x00\x00\x7e\x06\x06\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x78\x0c\x38\x0c\x78\x00\x00\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\x38"
-		"\x18\x38\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\xc3\xc6\xcc\xda\x36\x6e\xdf\x06"
-		"\xc3\xc6\xcc\xde\x33\x66\xcc\x0f"
-		"\xe1\x32\xe4\x3a\xf6\x2a\x5f\x86"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\x00\xc6\x66\x76\xdc\xcc\xc6\x00"
-		"\x00\xf8\x0c\x0c\x0c\x0c\xfe\x00"
-		"\x00\x38\x0c\x0c\x1c\x34\xe6\x00"
-		"\x00\xfe\x0c\x0c\x0c\x0c\x0c\x00"
-		"\x00\xfc\x06\x06\xc6\xc6\xc6\x00"
-		"\x00\x70\x18\x18\x18\x18\x18\x00"
-		"\x00\x3c\x18\x18\x0c\x18\x30\x00"
-		"\x00\xfc\x66\xc6\xc6\xc6\xc6\x00"
-		"\x00\xcc\xd6\xd6\xc6\xcc\x78\x00"
-		"\x00\x38\x0c\x0c\x18\x00\x00\x00"
-		"\x00\xfc\x06\x06\x0c\x0c\x0c\x0e"
-		"\x00\xfc\x06\x06\x06\x06\xfc\x00"
-		"\xc0\xfc\x06\x06\x0c\x18\x18\x00"
-		"\x00\xfc\x66\xc6\xc6\xc6\xfe\x00"
-		"\x00\xdc\x76\x66\xc6\xc6\xde\x00"
-		"\x00\x38\x0c\x18\x18\x18\x18\x1c"
-		"\x00\x38\x0c\x0c\x0c\x0c\x7c\x00"
-		"\x00\xfc\x66\xc6\xc6\xcc\x78\x00"
-		"\x00\x66\x66\x66\x66\x36\xfc\x00"
-		"\x00\xf8\x4c\xcc\xec\x0c\x0c\x0e"
-		"\x00\xfc\x46\xc6\xe6\x06\xfe\x00"
-		"\x00\x66\x66\x66\x7c\x60\x60\x70"
-		"\x00\x66\x36\x1c\x0c\x06\x7e\x00"
-		"\x00\xfc\x06\x66\x6c\x6e\x60\x60"
-		"\x00\xfc\x06\x06\x06\x06\x06\x00"
-		"\x00\xd6\xd6\xd6\xf6\xc6\x7c\x00"
-		"\x00\xfc\x66\x66\x66\xe6\xe6\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-8 Hebrew", CIOLIB_ISO_8859_8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x06\x7e\x60\x60\x60\x60\x00"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x06\x7e\x60\x60\x60\x60\x60\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-	, "Ukrainian font koi8-u", CIOLIB_KOI8_U}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x7e\x24\x24\x24\x7e\x24\x24\x24\x00\x00\x00"
-		"\x00\x00\x08\x3f\x48\x48\x48\x3e\x09\x09\x09\x7e\x08\x00\x00\x00"
-		"\x00\x00\x00\x30\x49\x32\x04\x08\x10\x26\x49\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x24\x24\x18\x25\x22\x22\x22\x1d\x00\x00\x00\x00"
-		"\x00\x18\x08\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x10\x08\x04\x04\x04\x04\x04\x04\x08\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\x7e\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x08\x7f\x08\x08\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x08\x10\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x42\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x1c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x06\x0a\x12\x22\x42\x7f\x02\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x40\x40\x40\x7c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x04\x08\x08\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x3c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x3e\x02\x02\x02\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x08\x08\x10\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x20\x10\x08\x04\x02\x04\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x00\x1c\x22\x49\x55\x55\x56\x4c\x20\x1e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x7c\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\x42\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x40\x40\x40\x4e\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x42\x44\x48\x50\x60\x60\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x40\x40\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x63\x55\x49\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x42\x62\x52\x52\x4a\x4a\x46\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x4a\x3c\x04\x02\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x3c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7f\x08\x08\x08\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x22\x22\x14\x14\x08\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x41\x49\x55\x63\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x22\x14\x08\x08\x14\x22\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x00\x00\x08\x14\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x18\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x02\x3e\x42\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x7e\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x08\x08\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x0e\x02\x02\x02\x02\x02\x02\x02\x42\x3c\x00"
-		"\x00\x00\x40\x40\x40\x42\x44\x48\x70\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x70\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x49\x49\x49\x49\x49\x49\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\x40\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x02\x00"
-		"\x00\x00\x00\x00\x00\x5c\x62\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x49\x49\x49\x49\x49\x49\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x24\x18\x24\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x0c\x10\x10\x10\x10\x20\x10\x10\x10\x10\x0c\x00\x00\x00\x00"
-		"\x00\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x30\x08\x08\x08\x08\x04\x08\x08\x08\x08\x30\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3c\x4a\x48\x48\x4a\x3c\x08\x08\x00\x00\x00"
-		"\x00\x00\x1c\x22\x22\x20\x78\x20\x20\x20\x21\x7e\x00\x00\x00\x00"
-		"\x00\x00\x1e\x21\x20\x7e\x20\x7e\x20\x21\x1e\x00\x00\x00\x00\x00"
-		"\x00\x00\x41\x22\x14\x08\x08\x3e\x08\x3e\x08\x08\x00\x00\x00\x00"
-		"\x24\x18\x00\x3c\x42\x40\x40\x3c\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x20\x3c\x42\x42\x42\x3c\x04\x42\x3c\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x41\x5d\x51\x51\x5d\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x09\x12\x24\x48\x90\x48\x24\x12\x09\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x02\x02\x02\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x3e\x41\x5d\x55\x5d\x59\x55\x55\x41\x3e\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x24\x24\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x08\x3e\x08\x08\x00\x3e\x00\x00\x00\x00"
-		"\x00\x00\x30\x48\x10\x20\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x30\x08\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x24\x18\x00\x7e\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7e\x41\x40\x40\x80\x00"
-		"\x00\x00\x3e\x4a\x4a\x4a\x3a\x0a\x0a\x0a\x0a\x0a\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x10\x70\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x18\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x90\x48\x24\x12\x09\x12\x24\x48\x90\x00\x00\x00\x00"
-		"\x00\x00\x7f\x88\x88\x88\x8e\x88\x88\x88\x88\x7f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x91\x91\x9f\x90\x91\x6e\x00\x00\x00\x00"
-		"\x14\x14\x00\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\x00\x10\x10\x10\x20\x40\x40\x42\x3c\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x18\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3f\x48\x48\x48\x7e\x48\x48\x48\x48\x4f\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x04\x02\x3c\x00"
-		"\x18\x06\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x06\x18\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x0c\x12\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x14\x14\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x18\x06\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x06\x18\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x08\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x14\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\xf2\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x19\x26\x00\x41\x61\x51\x49\x45\x43\x41\x41\x00\x00\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x19\x26\x44\x4a\x4a\x52\x52\x22\x64\x98\x00\x00\x00\x00"
-		"\x30\x0c\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x04\x08\x10\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x20\x20\x20\x3e\x21\x21\x21\x31\x2e\x20\x20\x20\x20\x00\x00"
-		"\x00\x00\x1e\x21\x21\x21\x3e\x21\x21\x21\x31\x2e\x20\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x1c\x22\x1c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x09\x09\x3e\x48\x48\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x08\x04\x78\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x14\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x22\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x30\x4c\x04\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\xff\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1d\x22\x45\x49\x51\x22\x5c\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x20\x20\x20\x3e\x21\x21\x21\x21\x31\x2e\x20\x20\x20\x00\x00"
-		"\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-	, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_ISO_8859_15}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x18\x18\x7e\xdb\xd8\x58\x38\x1c\x1e\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\x00\x00\xe2\xa6\xec\x18\x18\x30\x60\x6e\xca\x8e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x18\x30\x60\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x18\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\x60\x60\x30\x18\x0c\x0c\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x36\x30\xfc\x30\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e\x00"
-		"\x66\x3c\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x18\x30\x40\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e\x00"
-		"\x6c\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\x66\x60\x60\x78\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x3c\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x0c\x78\x00"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x02\x06\x7c\xce\xde\xd6\xd6\xd6\xd6\xf6\xe6\x7c\xc0\x80\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x60\x3c\x00"
-		"\x0c\x18\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xf6\x18\xf0\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7c\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x0c\x78\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x18\xf0\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1c\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x30\x1e\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x18\xf0\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x60\x3c\x00"
-		"\x00\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xd8\x78\x1c\x1e\x9b\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x1c\x18\x30\x70\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x30\x30\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x18\x18\x0c\x06\x06\x00\x00"
-		"\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x36\x30\x30\xfc\x30\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0"
-		"\x00\x00\x00\x00\x00\xfe\x86\x0c\x18\x30\x62\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x0e\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e"
-		"\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x18\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\x18\x3c\x66\x00\x00\x00\x00"
-		"\x02\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x80"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1c"
-		"\x0c\x18\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00"
-		"\x00\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x0c\x78"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\xce\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\x7c\x00\x00"
-		"\x7c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00"
-		"\x66\x3c\x00\xfe\xc6\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x0e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x30\xe0"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x18\xf0"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x3c\x60\x38\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\x06\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x18\x1e"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x0c\x78"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\x7c\xce\xd6\xd6\xd6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x30\x1e"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x18\x18\x00\x18"
-		"\x00\xee\x66\xcc\x00\x00\x00\x00"
-		"\x00\x6c\xfe\x6c\x6c\x6c\xfe\x6c"
-		"\x18\x7e\xdb\xd8\x7e\x1b\xdb\x7e"
-		"\x00\x00\xc6\xcc\x18\x30\x66\xc6"
-		"\x00\x38\x6c\x3a\x7e\xcc\xcc\x76"
-		"\x00\x38\x18\x70\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x30\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x0c\x0c\x18\x30"
-		"\x00\x00\x6c\x38\xfe\x38\x6c\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x70"
-		"\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18"
-		"\x00\x06\x0c\x18\x18\x30\x60\xc0"
-		"\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c"
-		"\x00\x18\x78\x18\x18\x18\x18\x7e"
-		"\x00\x7c\xc6\x8c\x38\x60\xc2\xfe"
-		"\x00\x7c\xc6\x06\x3c\x06\xc6\x7c"
-		"\x00\x1c\x3c\x6c\xcc\xfe\x0c\x1e"
-		"\x00\xfe\xc0\xfc\x06\x06\xc6\x7c"
-		"\x00\x7c\xc6\xc0\xfc\xc6\xc6\x7c"
-		"\x00\xfe\xc6\x06\x0c\x18\x30\x30"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x70"
-		"\x00\x00\x18\x30\x60\x30\x18\x00"
-		"\x00\x00\x00\xfe\x00\xfe\x00\x00"
-		"\x00\x00\x30\x18\x0c\x18\x30\x00"
-		"\x00\x7c\xc6\xcc\x18\x18\x00\x18"
-		"\x00\x7c\xc6\xc6\xde\xdc\xc0\x7e"
-		"\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x00\xfc\x66\x66\x7c\x66\x66\xfc"
-		"\x00\x3c\x66\xc2\xc0\xc2\x66\x3c"
-		"\x00\xf8\x6c\x66\x66\x66\x6c\xf8"
-		"\x00\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x00\xfe\x66\x60\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc0\xce\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6"
-		"\x00\x3c\x18\x18\x18\x18\x18\x3c"
-		"\x00\x3c\x18\x18\x18\xd8\xd8\x70"
-		"\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6"
-		"\x00\xf0\x60\x60\x60\x62\x66\xfe"
-		"\x00\xc6\xc6\xee\xfe\xd6\xc6\xc6"
-		"\x00\xc6\xe6\xf6\xde\xce\xc6\xc6"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xfc\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc6\xd6\xd6\x7c\x06"
-		"\x00\xfc\x66\x66\x7c\x78\x66\xe6"
-		"\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c"
-		"\x00\xff\xdb\x99\x18\x18\x18\x3c"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xc6\x6c\x38\x10"
-		"\x00\xc6\xc6\xd6\xd6\xfe\xee\x6c"
-		"\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6"
-		"\x00\x66\x66\x66\x3c\x18\x18\x3c"
-		"\x00\xfe\xc6\x8c\x38\x62\xc6\xfe"
-		"\x00\x7c\x60\x60\x60\x60\x60\x7c"
-		"\x00\xc0\x60\x30\x30\x18\x0c\x06"
-		"\x00\x7c\x0c\x0c\x0c\x0c\x0c\x7c"
-		"\x00\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x30\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xe0\x60\x7c\x66\x66\x66\xfc"
-		"\x00\x00\x00\x78\xcc\xc0\xcc\x78"
-		"\x00\x0e\x0c\x7c\xcc\xcc\xcc\x7e"
-		"\x00\x00\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x1c\x36\x30\xfc\x30\x30\x78"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xe0\x60\x7c\x66\x66\xe6"
-		"\x18\x18\x00\x38\x18\x18\x18\x3c"
-		"\x0c\x0c\x00\x1c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x66\x6c\x78\x6c\xe6"
-		"\x00\x38\x18\x18\x18\x18\x18\x3c"
-		"\x00\x00\x00\xec\xfe\xd6\xd6\xc6"
-		"\x00\x00\x00\xdc\x66\x66\x66\x66"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0e\x0e"
-		"\x00\x00\x00\xdc\x66\x60\x60\xf0"
-		"\x00\x00\x00\x7c\xc0\x7c\x06\xfc"
-		"\x00\x30\x30\xfc\x30\x30\x36\x1c"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x00\x00\xc6\xc6\x6c\x38\x10"
-		"\x00\x00\x00\xc6\xd6\xd6\xfe\x6c"
-		"\x00\x00\x00\xc6\x6c\x38\x6c\xc6"
-		"\x00\x00\x00\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x0e\x18\x18\x70\x18\x18\x0e"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x70\x18\x18\x0e\x18\x18\x70"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x00\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x0c\x18\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x7c\x82\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x7c\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x38\x6c\x38\x6c\xc6\xfe\xc6\xc6"
-		"\x00\x3e\x78\xd8\xfe\xd8\xd8\xde"
-		"\x78\x30\x30\x30\x30\x78\x30\x1c"
-		"\x6c\x38\x7c\xc6\xc0\xc0\xc6\x7c"
-		"\x0e\x18\xfe\x62\x78\x60\x66\xfe"
-		"\xfe\x66\x60\x78\x60\x66\xfe\x1c"
-		"\x6c\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x18\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x0c\x18\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x42\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x00\x3c\x18\x18\x18\x18\x3c"
-		"\x00\xf8\x6c\x66\xf6\xf6\x6c\xf8"
-		"\xc6\xe6\xf6\xde\xce\xc6\x0c\x38"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\xcc\xf8\xd8\xcc\xc6\x0c\x38"
-		"\x7c\x82\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x03\x7e\xce\xde\xd6\xf6\xe6\xfc"
-		"\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1e"
-		"\x1c\x30\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\x7c"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0"
-		"\x00\x00\x00\x00\x00\x00\xc6\xfe"
-		"\x38\x6c\xc6\xfe\xc6\xce\x18\x0e"
-		"\x00\x00\x00\xe6\x6c\x78\x6c\xe6"
-		"\xfc\x66\x7e\x6c\x66\xe6\x18\x70"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\x76\xdc\x38\x18\x18\x18\x18\x3c"
-		"\xf0\x60\x60\x62\x66\xfe\x18\x70"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc0\x7c\x06\xc6\x7c"
-		"\x7c\x00\xfe\x60\x7c\x60\x66\xfe"
-		"\x3c\x66\xc0\xce\x66\x3e\x18\x70"
-		"\x00\xff\x99\x1e\x3c\x78\x18\x3c"
-		"\x00\x00\x00\x00\x00\x3c\x00\x00"
-		"\x6c\x38\xfe\x8c\x18\x32\x66\xfe"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x0f"
-		"\x00\x00\x00\x00\x00\x00\x10\x1c"
-		"\x00\x00\xdc\x76\x66\xf0\x30\xe0"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x18\x18\x3c"
-		"\x38\x18\x18\x18\x18\x3c\x18\x70"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x04\x1c"
-		"\x00\x6c\x38\x7c\xc0\x7c\x06\xfc"
-		"\x00\x7c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x38\x60\x30\x7e\xcc\x7c\x0c\xf8"
-		"\x00\x30\x30\xfc\x30\x38\x76\x1c"
-		"\x00\xdc\xfe\xf6\xc6\xc6\xc6\xdc"
-		"\x6c\x38\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x00\xdc\xfe\xf6\xc6\x06\x1c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x00\x78\x0c\x7c\xcc\x76"
-		"\x0c\x18\x20\x78\x0c\x7c\xcc\x76"
-		"\x00\x78\x84\x78\x0c\x7c\xcc\x76"
-		"\x6c\x38\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xcc\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\x38\x6c\x78\x0c\x7c\xcc\x76"
-		"\x00\x00\x00\x6e\x3b\x7e\xd8\x7e"
-		"\x18\x00\x38\x18\x18\x3c\x18\x0e"
-		"\x00\xcc\x78\x78\xcc\xc0\xcc\x78"
-		"\x0c\x18\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7a\x1e"
-		"\x00\x6c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x38\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x0c\x18\x20\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x42\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x00\x38\x18\x18\x18\x3c"
-		"\x00\x0c\x3e\x0c\x7c\xcc\xcc\x76"
-		"\x00\x00\xdc\xe6\xc6\xc6\x18\x70"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\xe0\x66\x6c\x78\x6c\xe6\x1c"
-		"\x7c\xc6\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x6c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x06\x7c\xce\xd6\xe6\x7c\xc0"
-		"\x00\x00\xcc\xcc\xcc\x7e\x30\x1c"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\x76"
-		"\x78\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x76\xdc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x78\x00\xcc\xcc\xcc\xcc\x76"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-4 Baltic (VGA 9bit mapped)", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00\x00"
-		"\x00\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00\x00"
-		"\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x03\x06\x0c\x18\x30\x70\x30\x18\x0c\x06\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x67\x3d\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\xf7\x00\x00\x00"
-		"\x00\x7e\xc3\xc3\xc0\xc0\x7e\x03\x03\x03\xc3\xc3\x7e\x00\x00\x00"
-		"\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x0f"
-		"\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x0c\x18\x70"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10"
-		"\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18"
-		"\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x7c\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x42\x7e\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xf8\x70\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x60\x88\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x3c\x42\x99\xa1\xa1\x99\x42\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xce\xdb\xdb\xfb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x02\x06\x3c\x60\x60\x7c\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x36\x66\x66\x66\xff\xc3\xc3\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c"
-		"\x00\x00\x00\x00\x00\x00\x7e\x32\x32\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x38\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xcc\xcc\xfc\x6c\xcc\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\x54\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\x66\x66\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\x60\x60\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xf6\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x06\x0c\x06\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3e\x67\x03\x1f\x03\x67\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x03\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xb0\x30\x3e\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x00\xce\xdb\xdb\xdb\xfb\xdb\xdb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x66\x66\xff\xc3\x81\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\xdb\x7e\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x38\x38\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x66\x66\x66\x3e\x3e\x66\x66\x66\xe7\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xd6\xd6\x54\x54\x7c\x7c\x54\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xc3\xc3\xc3\xc3\xf3\xdb\xdb\xdb\xdb\xf3\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00\x00\x00"
-		"\x00\x00\x00\x78\xcc\x06\x26\x3e\x26\x06\x06\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03\x03\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\xf8\xb0\x30\x30\x3c\x36\x36\x36\x36\x7c\x00\x00\x00"
-	, NULL, NULL, "Russian koi8-r (b)", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\x1b\xdb\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00"
-		"\x00\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00"
-		"\x00\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x00\x00"
-		"\x00\x00\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xe3\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0f"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\x66\x66\x3c\x18\x18\x30\x30\xe0"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xce\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x18\xf0"
-		"\x00\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x0e\x3c"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x3c\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x7e\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1b\x1e\x3c\x78\xd8\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x38\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x18\xf0"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x30\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\x06\x1c\x00"
-		"\x00\x7c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x20\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x00\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x0e\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x18\x0f"
-		"\x66\x24\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x18\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x0e\x18\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\xf3\xf3\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7e\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x06\x3c"
-		"\x3c\x66\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x76\xdc\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x66\x66\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x01\x3d\x66\xc7\xcb\xcb\xdb\xdb\xdb\xd3\xd3\x66\xbc\x80\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x19\x0e"
-		"\x18\x30\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xfe\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xdc\xc6\xc3\xc3\xc3\xc3\xc6\xcc\xc0\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x1b\x1b\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x30\x1c"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x30\x1e"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0e\x06\x7f\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x18\xf0"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xd6\xf6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x60\x3c"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "ISO-8859-4 Baltic wide", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xf8\x60\x60\x60\x7c\x66\x66\x66\x66\x6c\x00\x00\x00\x00"
-		"\x18\x30\x00\x7e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\xfc\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x18\x30\x00\xc6\xcc\xd8\xf0\xf8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x88\x8a\xcd\xea\xb8\x98\x8b\x88\x8b\x88\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x0c\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\x7c\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x04\x04\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x18\x38\x78\xde\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\xc4\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x28\x10\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xf8\x60\x60\x60\x7c\x66\x66\x66\x6c\x00\x00\x00"
-		"\x18\x30\x00\x7e\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\xfc\x30\x30\x30\x3c\x36\x36\x36\x36\x00\x00\x00"
-		"\x18\x30\x00\xcc\xd8\xf0\xf0\xd8\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\x00\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x88\x8a\xcd\xea\xb8\x98\x8b\x88\x8b\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x0c\x00\x00"
-		"\x00\x00\x18\x30\x00\x7c\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x04\x04\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x30\x30\xfc\x30\x3c\x36\x36\x36\x36\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x28\x10\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\xf8\x60\x60\x7c\x66\x66\x6c\x00"
-		"\x18\x7e\x60\x60\x60\x60\x60\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x38\x78\xd8\xde\xdb\xdb\xde\x00"
-		"\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00"
-		"\xfc\x30\x30\x3c\x36\x36\x36\x00"
-		"\x18\xd6\xcc\xf8\xf8\xcc\xc6\x00"
-		"\x00\x00\x00\x78\x00\x00\x00\x00"
-		"\x18\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x8a\xcd\xea\xb8\x9b\x88\x8b\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x60\x60\xf8\x60\x7c\x66\x66\x0c"
-		"\x18\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x08\x00\x1c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\x38\x78\xde\xdb\xde\x00"
-		"\x00\x00\xd8\xd8\xfe\xdb\xde\x00"
-		"\x30\x30\xfc\x30\x3c\x36\x36\x00"
-		"\x18\x10\xcc\xd8\xf0\xd8\xcc\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x18\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xc6\xc6\xfe\x38\x38\x00"
-	, "ISO-8859-5 Cyrillic", CIOLIB_ISO_8859_5}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00\x00"
-		"\x00\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00\x00"
-		"\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00\x00"
-		"\x00\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x70\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00\x00"
-		"\x00\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00"
-		"\x00\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00"
-		"\x00\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0\x00"
-		"\x00\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0\x00"
-		"\x00\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x00"
-		"\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00"
-		"\x00\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00\x00"
-		"\x00\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00\x00"
-		"\x00\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70\x00"
-		"\x00\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00"
-		"\x00\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e\x00"
-		"\x00\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03\x00"
-		"\x00\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10\x00"
-		"\x00\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\xfe"
-		"\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00"
-		"\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00"
-		"\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00"
-		"\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00"
-		"\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc"
-		"\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00"
-		"\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c"
-		"\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00"
-		"\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00"
-		"\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00"
-		"\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c"
-		"\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe"
-		"\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0"
-		"\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e"
-		"\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0"
-		"\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00"
-		"\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f"
-		"\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00"
-		"\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00"
-		"\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70"
-		"\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00"
-		"\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e"
-		"\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03"
-		"\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00"
-		"\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10"
-		"\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x12\xca\x2c\x79\x9e\x34\x53\x48"
-		"\xc0\xc0\xc0\xd8\xd8\xd8\x76\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x00\x6c\x36\x1b\x36\x6c\x00\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x30\x00\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x70\x3f\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\x00\x00"
-		"\x01\x0e\x70\x80\x00\x00\x00\x00"
-		"\x1c\x30\x40\x00\x00\x00\x00\x00"
-		"\x1e\x35\x26\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6f\x3b\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xf8\xc0\x00"
-		"\x00\x00\x78\xcc\xc0\xc0\xf0\xc0"
-		"\x7c\xc6\xc6\xc6\xc6\x7f\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x7e\x0c"
-		"\x7c\xc6\xc6\xc6\xc6\x07\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0e\x0c"
-		"\xc0\xc0\xfe\xc0\xc6\xc6\x7c\x00"
-		"\xc0\xc0\xfc\xc0\xcc\xcc\x78\x00"
-		"\x3e\x63\x36\x1c\xb8\xfe\x83\x00"
-		"\x00\x00\x78\xcc\xcc\x7c\x0c\x0e"
-		"\xc0\xc0\xfc\xc0\xc0\xfe\x03\x00"
-		"\x00\xc0\xc0\xf8\xc0\xc0\xf8\x0c"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xfe\x00"
-		"\x00\x00\x78\xcc\xcc\xc0\xc0\xfc"
-		"\x7c\xc6\xdf\xd6\xde\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xcf\xd6\xdc\xc0"
-		"\x06\x06\x7f\xc6\xc6\xc6\x7c\x00"
-		"\x00\x0c\x0c\x7e\xcc\xcc\x78\x00"
-		"\xc0\xfc\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xf8\xcc\xcc\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xf8"
-		"\xc0\xc0\xf3\xdb\xdb\xce\xc0\x00"
-		"\x00\xc0\xc0\xc0\xf3\xdb\xce\xc0"
-		"\xe7\x3c\x66\xc3\xc3\x66\x3c\x00"
-		"\xc0\x37\x0c\x66\xc3\xc6\x7c\x00"
-		"\xc0\xc0\xc6\xc6\x7e\x06\x06\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\x7c\x0c"
-		"\xfc\xfe\x06\xfc\xfe\x06\x06\x00"
-		"\xc0\xc0\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\xc6\x0c\x68\x9a\x66\x00"
-		"\x00\x10\x30\x78\xcc\xcc\x7a\x00"
-		"\x7c\xc6\xc6\xc6\xc6\x06\x07\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0c\x0e"
-		"\x0f\xf0\x6c\x66\xc3\xc3\xff\x00"
-		"\x1c\xe0\x30\xc8\xcc\xcc\xfc\x00"
-		"\xc7\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0e\x0c\x0c\xcc\xcc\xcc\x78\x00"
-		"\x38\x7e\x06\xf8\x06\x7e\x38\x00"
-		"\x00\x38\x7e\x06\xfc\x06\x7e\x38"
-		"\xe0\x60\x60\x63\x63\x63\x3e\x00"
-		"\xe0\x60\x66\x66\x66\x66\x3c\x00"
-		"\xe0\x7e\x1e\x30\x60\x33\x1e\x00"
-		"\x00\x78\xcc\x0c\x30\x60\xc0\xfc"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\x06\xcc\x70\x18\x0c\x00"
-		"\x00\x30\x60\x30\x18\x30\x62\x3c"
-		"\x7e\xdb\xdb\xdb\x1b\x03\x03\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\x6f\x03"
-		"\x3c\x66\x66\x1c\xb8\xfe\x83\x00"
-		"\x00\x3c\x66\x66\x66\x1c\x70\xfe"
-		"\x7c\xc6\xc6\xc6\xc7\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xce\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x06\x06\xc6\xc6\x7e\x06\x07\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xfc\x0c\x0e"
-		"\x7e\xe7\x30\x18\x0c\xe7\x7e\x00"
-		"\x00\x00\xd6\xdb\xdb\xdb\x6b\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xc0\xc0"
-		"\x7c\xc6\x7c\xfc\x03\x83\x7e\x00"
-		"\x00\x00\x78\xcc\x78\x0c\xcc\x78"
-		"\xc0\xc0\xc0\xf0\xc0\xc0\xc0\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xe0\x00"
-		"\x18\x7e\xdb\xdb\xdb\x7e\x18\x00"
-		"\x18\x18\xde\xdb\xdb\xdb\x7b\x18"
-		"\x3e\x63\x63\x7e\x60\xff\x60\x00"
-		"\x00\x3c\x66\x66\x7c\x60\xfc\x60"
-		"\x3c\x66\xc3\xc3\xc3\x66\x3c\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x18"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ARMSCII-8 Character set", CIOLIB_ARMSCII8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x1e\x31\x60\x60\xfe\x60\xfc\x60\x31\x1e\x00\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x6c\x38\x10\x00\x7c\xc6\x60\x30\x18\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x38\x10\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x10\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x38\x10\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\xcc\xcc\xcc\xce\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\xdb\xdb\xde\xd8\xdc\x67\x00\x00\x00\x00"
-		"\x00\xc3\x00\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x6c\x66\x66\x66\xf6\x66\x66\x6c\x78\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xf0\x60\x7c\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x38\x6c\x0c\x3c\x6c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x08\x08\x3e\x63\x60\x60\x3e\x03\x03\x63\x3e\x08\x08\x00"
-		"\x00\x00\x00\x61\x63\x06\x0c\x18\x30\x63\x43\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\x7e\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x67\x6f\x7b\x73\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7e\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6e\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x6b\x3e\x1c\x06\x03\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x36\x1c\x36\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x06\x0c\x18\x30\x60\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x30\x18\x0c\x06\x03\x01\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3e\x33\x33\x33\x33\x6e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x30\x7c\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\x78\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x08\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3e\x63\x60\x60\x63\x3e\x08\x08\x00"
-		"\x00\x00\x1c\x36\x30\x30\x7c\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x1e\x31\x60\xfe\x60\xfc\x60\x33\x1e\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x7e\x18\x7e\x18\x00\x00\x00"
-		"\x1c\x08\x00\x3e\x63\x30\x1c\x06\x63\x3e\x00\x00\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x36\x1c\x08\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x51\x51\x5d\x41\x3e\x00\x00\x00"
-		"\x00\x38\x04\x3c\x44\x3c\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x55\x59\x55\x41\x3e\x00\x00\x00"
-		"\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00"
-		"\x00\x38\x6c\x18\x30\x64\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x0c\x38\x0c\x6c\x38\x00\x00\x00\x00\x00\x00\x00"
-		"\x1c\x08\x00\x7f\x66\x0c\x18\x30\x63\x7f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x1c\x08\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00\x00"
-		"\x00\x30\x70\x30\x30\x30\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x1f\x36\x66\x66\x67\x66\x66\x36\x1f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x36\x6b\x6b\x6e\x68\x37\x00\x00\x00\x00"
-		"\x66\x00\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30\x63\x63\x3e\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x3b\x6e\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x63\x63\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x1c\x36\x1c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x00\x1f\x36\x66\x66\x67\x7e\x66\x66\x67\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x0c\x06\x1c"
-		"\x60\x30\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x06\x0c\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x08\x1c\x36\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x00\x63\x63\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x60\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x06\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x36\x33\x33\x7b\x33\x33\x36\x3c\x00\x00\x00"
-		"\x3b\x6e\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x63\x63\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x63\x36\x1c\x08\x1c\x36\x63\x00\x00\x00\x00"
-		"\x00\x03\x1e\x36\x67\x6f\x6b\x7b\x73\x36\x3c\x60\x00\x00"
-		"\x60\x30\x18\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x03\x06\x0c\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x08\x1c\x36\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x63\x63\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x06\x0c\x18\x00\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x78\x30\x3e\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x66\x6c\x67\x63\x6b\x6e\x60\x60\x00"
-		"\x00\x60\x30\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x1c\x36\x1c\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x0b\x3b\x6e\x68\x37\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x0c\x06\x1c"
-		"\x00\x30\x18\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x03\x06\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x1c\x36\x06\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x03\x3e\x67\x6f\x7b\x73\x3e\x60\x00\x00"
-		"\x00\x60\x30\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x78\x30\x3e\x33\x33\x33\x33\x3e\x30\x78\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x3e\x06\x66\x3c\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x00\x30\x30\x78\x78\x30\x00"
-		"\x00\x00\x10\x7c\xc0\xc0\x7c\x10"
-		"\x00\x38\x60\x60\xf0\x60\xfc\x00"
-		"\x0e\x19\x30\x7e\x30\x19\x0e\x00"
-		"\x00\xcc\xcc\x78\x30\xfc\x30\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x00\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x00\x00"
-		"\x7c\x82\xba\xa2\xba\x82\x7c\x00"
-		"\x1c\x06\x1e\x22\x1f\x3f\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xfe\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xb2\xaa\x82\x7c\x00"
-		"\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x1c\x36\x06\x18\x3e\x00\x00\x00"
-		"\x1e\x02\x0e\x02\x1e\x00\x00\x00"
-		"\x30\xfc\x98\x30\x64\xfc\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\xc0"
-		"\x7e\xca\xca\x7e\x0a\x0a\x0a\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x30\xfc\x98\x30\x64\xfc\x00\x00"
-		"\x06\x0e\x06\x06\x06\x00\x00\x00"
-		"\x0e\x11\x11\x11\x0e\x1f\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x58\xd8\xdc\xd8\x58\x3e\x00\x00"
-		"\x00\x6c\xd2\xde\xd0\x6e\x00\x00"
-		"\x00\xcc\xcc\x78\x30\x78\x00\x00"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x18\x0c\x30\x78\xcc\xfc\xcc\x00"
-		"\x60\xc0\x30\x78\xcc\xfc\xcc\x00"
-		"\x78\x84\x30\x78\xcc\xfc\xcc\x00"
-		"\x66\x98\x30\x78\xcc\xfc\xcc\x00"
-		"\xcc\x00\x30\x78\xcc\xfc\xcc\x00"
-		"\x30\x48\x30\x78\xcc\xfc\xcc\x00"
-		"\x3e\x78\x98\x9c\xf8\x98\x9e\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x1c\x30"
-		"\x30\x18\xfe\x62\x78\x62\xfe\x00"
-		"\x18\x30\xfe\x62\x78\x62\xfe\x00"
-		"\x38\x44\xfe\x62\x78\x62\xfe\x00"
-		"\x66\x00\xfe\x62\x78\x62\xfe\x00"
-		"\x60\x30\x78\x30\x30\x30\x78\x00"
-		"\x18\x30\x78\x30\x30\x30\x78\x00"
-		"\x78\x84\x78\x30\x30\x30\x78\x00"
-		"\xcc\x00\x78\x30\x30\x30\x78\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x66\x98\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x44\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x66\x98\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x06\x7c\xce\x9a\xb2\xe6\x78\xc0"
-		"\x60\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x78\x84\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\x78\x30\x78\x00"
-		"\x60\x78\x6c\x78\x60\x60\x60\x00"
-		"\x78\xcc\xc4\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x78\x84\x78\x0c\x7c\xcc\x76\x00"
-		"\x66\x98\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x48\x38\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\xec\x32\x7e\xb0\x6e\x00"
-		"\x00\x00\x3c\x66\xc0\x66\x1c\x30"
-		"\x30\x18\x78\xcc\xfc\xc0\x78\x00"
-		"\x18\x30\x78\xcc\xfc\xc0\x78\x00"
-		"\x78\x84\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x60\x30\x00\x70\x30\x30\x78\x00"
-		"\x18\x30\x00\x70\x30\x30\x78\x00"
-		"\x70\x88\x00\x70\x30\x30\x78\x00"
-		"\xcc\x00\x00\x70\x30\x30\x78\x00"
-		"\x6c\x38\x6c\x0c\x6c\xcc\x78\x00"
-		"\x66\x98\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x60\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x38\x44\x00\x7c\xc6\xc6\x7c\x00"
-		"\x66\x98\x00\x7c\xc6\xc6\x7c\x00"
-		"\xc6\x00\x00\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x00\x06\x7c\xde\xf6\x7c\xc0"
-		"\x60\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x78\x6c\x66\x6c\x78\xe0\x00"
-		"\xcc\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-	, "ISO-8859-15 West European", CIOLIB_ISO_8859_15}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x86\x8a\x92\xa2\xc2\x7c\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x02\x3c\x4c\x8a\x92\x92\xa2\xa2\xc2\xc4\xb8\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xb2\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x88\x44\x22\x44\x88\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x08\x10\x20\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x7c\x82\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x20\x10\x08\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x38\x44\x40\x40\x40\x48\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x28\x10\x7c\x10\x7c\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x76\xdc\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x76\xdc\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x82\x7c\x82\x82\x82\x82\x7c\x82\x00\x00\x00\x00"
-		"\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\xf2\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x7c\x82\x00\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x44\x00\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x20\x10\x08\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x08\x08\x08\x08\x08\x18\x00\x00\x00\x00"
-		"\x08\x10\x20\x3c\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x38\x44\x00\x38\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x44\x00\x38\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x20\x10\x08\x3c\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x08\x10\x20\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x7c\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x10\x08\x04\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\xe0\x40\x7c\x42\x42\x42\x42\x7c\x40\xe0\x00\x00\x00\x00"
-		"\x04\x08\x10\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x7c\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x20\x10\x08\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x04\x08\x10\x82\x82\x82\x44\x38\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xe0\x31\x62\x34\xe8\x10\x2c\x54\xa4\xef\x04\x04\x00\x00"
-		"\x00\x00\x7e\x8a\x8a\x8a\x7a\x0a\x0a\x0a\x0a\x0a\x00\x00\x00\x00"
-		"\x00\x7c\x82\x40\x38\x44\x82\x82\x44\x38\x04\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x02\x3c\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x08\x08\x08\x08\x08\x18\x00\x00\x00\x00"
-		"\x00\x7c\x02\x3c\x02\x02\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x00\x02\x7c\x8a\x82\xa2\x7c\x80"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x3a\x44\x8a\x92\xa2\x44\xb8\x00"
-		"\x00\x42\x24\x18\x18\x24\x42\x00"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x44\x22\x11\x22\x44\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x0c\x10\x44\x82\xfe\x82\x82\x00"
-		"\x7e\x10\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x10\x10\x7c\x80\x80\x7c\x10\x10"
-		"\x82\x44\x38\x7c\x10\x7c\x10\x10"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x64\x98\x3c\x02\x3e\x42\x3d\x00"
-		"\x64\x98\x38\x44\x82\xfe\x82\x82"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x00\x82\x7c\x82\x82\x7c\x82\x00"
-		"\x20\x7e\x04\x7c\x84\x84\x78\x00"
-		"\xf8\x44\x42\xf2\x42\x44\xf8\x00"
-		"\x78\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x44\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x60\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x18\x08\x08\x08\x1c\x00"
-		"\x08\x10\x38\x10\x10\x10\x38\x00"
-		"\x38\x44\x38\x10\x10\x10\x38\x00"
-		"\x28\x00\x38\x10\x10\x10\x38\x00"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x10\x10\x10\x00\x00\x10\x10\x10"
-		"\x10\x08\x38\x10\x10\x10\x38\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x0c\x18\x24\x42\x42\x24\x18\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x3c\x18\x24\x42\x42\x24\x18\x00"
-		"\x30\x18\x24\x42\x42\x24\x18\x00"
-		"\x64\x98\x78\x84\x84\x84\x78\x00"
-		"\x64\x98\x18\x24\x42\x42\x24\x18"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\xc0\x40\x78\x44\x44\x78\x40\xe0"
-		"\xe0\x40\x78\x44\x78\x40\xe0\x00"
-		"\x04\x08\x84\x84\x84\x84\x78\x00"
-		"\x78\x00\x84\x84\x84\x84\x78\x00"
-		"\x20\x80\x84\x84\x84\x84\x78\x00"
-		"\x04\x08\x84\x84\x84\x7c\x04\xf8"
-		"\x04\x08\x42\x24\x10\x10\x38\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x08\x10\x20\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\xe1\x12\xe4\x1a\xf6\x2a\x5f\x82"
-		"\x3e\x4a\x4a\x3a\x0a\x0a\x0a\x00"
-		"\x3e\x41\x3c\x42\x42\x3c\x82\x7c"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\x38"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x44\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x08\x18\x08\x08\x1c\x00\x00\x00"
-		"\x78\x04\x38\x04\x78\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP850}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x70\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x36\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xb2\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x60\xc0\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x7c\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x06\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7c\xc6\xc0\xc0\xc6\x7c\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x38\x6c\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x7c\x60\xf0\x00\x00\x00\x00"
-		"\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\xe0\x30\x62\x36\xec\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x06\x3c\x06\x06\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00"
-		"\x00\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0e\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x7c\x38\x7c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x78"
-		"\x00\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\x36\x76\xdc\xd8\x6e\x00\x00"
-		"\x00\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00"
-		"\x00\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00"
-		"\x00\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x44\xba\xaa\xb2\xaa\xaa\x44\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x1a\x36\x6e\xda\x3f\x06\x06"
-		"\x00\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x30\x60\xc0\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x18\x0c\x06\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x38\x44\x9a\xa2\xa2\xa2\x9a\x44\x38\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7c\xc6\xc0\xc0\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x76\xdc\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x00\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x38\x6c\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x30\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x18\x18\x18\x18\x00"
-		"\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x7c\x60\xf0\x00\x00"
-		"\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\x00\xe0\x30\x63\x36\xec\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\xd6\x10\x38"
-		"\x10\x38\x7c\xfe\xfe\x7c\x10\x38"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x38\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x0c\x18\x30\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x7e\x5a\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x7c\x66\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x7c\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xd6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x7c\x82\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\x7e\xc0\xc0\x7e\x0c\x38"
-		"\x7c\x82\x7c\xc6\xfe\xc0\x7c\x00"
-		"\xc6\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x30\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x66\x00\x38\x18\x18\x18\x3c\x00"
-		"\x7c\x82\x38\x18\x18\x18\x3c\x00"
-		"\x30\x18\x00\x38\x18\x18\x3c\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x38\x6c\x7c\xc6\xfe\xc6\xc6\x00"
-		"\x18\x30\xfe\xc0\xf8\xc0\xfe\x00"
-		"\x00\x00\x7e\x12\xfe\x90\xfe\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x7c\x82\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x78\x84\x00\xcc\xcc\xcc\x76\x00"
-		"\x60\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\xc6\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\xc6\x38\x6c\xc6\xc6\x6c\x38\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x38\x6c\x64\xf0\x60\x66\xfc\x00"
-		"\x3a\x6c\xce\xd6\xe6\x6c\xb8\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x0e\x1b\x18\x3c\x18\xd8\x70\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x0c\x18\x00\x38\x18\x18\x3c\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\x76\xdc\x00\xdc\x66\x66\x66\x00"
-		"\x76\xdc\x00\xe6\xf6\xde\xce\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x18\x00\x18\x18\x30\x63\x3e\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\x00\x00\x00\xfe\x06\x06\x00\x00"
-		"\x63\xe6\x6c\x7e\x33\x66\xcc\x0f"
-		"\x63\xe6\x6c\x7a\x36\x6a\xdf\x06"
-		"\x18\x00\x18\x18\x3c\x3c\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x30\x60\x38\x6c\xc6\xfe\xc6\x00"
-		"\x7c\x82\x38\x6c\xc6\xfe\xc6\x00"
-		"\x18\x0c\x38\x6c\xc6\xfe\xc6\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x66\x66\x3c\x7e\x18\x7e\x18\x18"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x76\xdc\x7c\x06\x7e\xc6\x7e\x00"
-		"\x76\xdc\x38\x6c\xc6\xfe\xc6\x00"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x30\x7e\x0c\x7c\xcc\xcc\x78\x00"
-		"\xf8\x6c\x66\xf6\x66\x6c\xf8\x00"
-		"\x7c\x82\xfe\xc0\xfc\xc0\xfe\x00"
-		"\xc6\x00\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x30\x18\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x00\x00\x38\x18\x18\x18\x3c\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x3c\x42\x3c\x18\x18\x18\x3c\x00"
-		"\x66\x00\x3c\x18\x18\x18\x3c\x00"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x18\x18\x18\x00\x00\x18\x18\x18"
-		"\x30\x18\x3c\x18\x18\x18\x3c\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x60\x38\x6c\xc6\x6c\x38\x00"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\x7c\x82\x38\x6c\xc6\x6c\x38\x00"
-		"\x0c\x06\x38\x6c\xc6\x6c\x38\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x76\xdc\x38\x6c\xc6\x6c\x38\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\xe0\x60\x7c\x66\x66\x7c\x60\xf0"
-		"\xf0\x60\x7c\x66\x7c\x60\xf0\x00"
-		"\x18\x30\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x7c\x82\x00\xc6\xc6\xc6\x7c\x00"
-		"\x60\x30\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x0c\x18\x66\x66\x3c\x18\x3c\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\xe1\x32\xe4\x3a\xf6\x2a\x5f\x86"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\x38"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x18\x38\x18\x18\x3c\x00\x00\x00"
-		"\x78\x0c\x38\x0c\x78\x00\x00\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 850 Multilingual Latin I", CIOLIB_CP850}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x82\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x86\x8a\x92\xa2\xc2\x7c\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x02\x3c\x4c\x8a\x92\x92\xa2\xa2\xc2\xc4\xb8\x00\x00\x00\x00"
-		"\x00\xf8\x84\x84\xf8\x84\x84\x9e\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x82\x7c\x82\x82\x82\x82\x7c\x82\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x62\x94\x98\x88\x98\x94\x62\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x80\x80\x80\x80\x80\x80\x80\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x44\x44\x44\x44\x44\x44\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\x82\x40\x20\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x88\x88\x88\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x72\xd4\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x10\x38\x44\x44\x44\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x82\x82\xfe\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x44\x28\x28\x28\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x10\x08\x04\x3e\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x99\x99\x99\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x7e\x89\x91\xa1\x7e\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x1c\x20\x40\x40\x78\x40\x40\x40\x20\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x08\x04\x02\x04\x08\x10\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x10\x20\x40\x20\x10\x08\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x11\x11\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x08\x08\x08\x08\x08\xe8\x28\x28\x28\x18\x00\x00\x00\x00"
-		"\x00\xd8\x64\x44\x44\x44\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x00\x02\x7c\x8a\x82\xa2\x7c\x80"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x3a\x44\x8a\x92\xa2\x44\xb8\x00"
-		"\xf8\x84\x84\xf8\x82\x87\x82\x83"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x82\x7c\x82\x82\x7c\x82\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x62\x94\x88\x94\x62\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x00\xfc\x84\x80\x80\x80\x80\x00"
-		"\x00\xfe\x28\x28\x28\x28\x28\x00"
-		"\xfc\x84\x40\x20\x40\x84\xfc\x00"
-		"\x00\x00\x7e\x88\x88\x88\x70\x00"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\x00\x76\x88\x08\x08\x08\x08\x00"
-		"\xf8\x20\x70\x88\x88\x70\x20\xf8"
-		"\x38\x44\x82\xfe\x82\x44\x38\x00"
-		"\x38\x44\x82\x82\x28\x28\x6c\x00"
-		"\x1c\x10\x08\x7c\x84\x84\x78\x00"
-		"\x00\x00\x7c\x92\x92\x7c\x00\x00"
-		"\x02\x04\x7e\x89\x91\x7e\x40\x80"
-		"\x38\x40\x80\xf8\x80\x40\x38\x00"
-		"\x78\x84\x84\x84\x84\x84\x84\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x40\x20\x10\x20\x40\x00\xfc\x00"
-		"\x10\x20\x40\x20\x10\x00\xfc\x00"
-		"\x0e\x11\x11\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x88\x88\x70"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x64\x98\x00\x64\x98\x00\x00"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x07\x04\x04\x04\x64\x24\x1c\x0c"
-		"\x58\x44\x44\x44\x44\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 865 Norwegian, (thin)", CIOLIB_CP865}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf8\xf8\x60\x60\x7c\x7e\x66\x66\x6e\x6c\x00\x00\x00\x00"
-		"\x18\x10\x7e\x7e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x60\x60\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\x7c\x7c\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x66\x66\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\xfe\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\xfe\x18\x18\xfe\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xf8\xc0\xc0\xf8\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x86\x8c\x18\x30\x6a\xca\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xc0\xc0\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xd9\xdb\xde\x00\x00\x00\x00"
-		"\x18\x10\xc2\xc6\xcc\xd8\xf0\xf8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xfc\x30\x30\x3c\x3e\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x60\xf8\x60\x7c\x7e\x66\x66\x66\x0c\x0c\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\xc0\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf1\x5b\x55\x51\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\x78\xde\xd9\xd9\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\x60\x30\x30\x60\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xd9\xd9\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\xc4\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xfc\x30\x3c\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x5a\x3c\x66\x66\x3c\x5a\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x7e\x7e\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x30\x40\x40\x30\x48\x48\x30\x08\x08\x30\x00\x00\x00\x00"
-		"\x6c\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf0\xf0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x33\x66\xcc\xcc\x66\x33\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\x02\x02\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x92\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x28\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7e\x7e\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xe8\xe8\xe8\x68\x28\x28\x28\x28\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8a\xcd\xea\xb8\x9b\x88\x8b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\x66\x33\x33\x66\xcc\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf8\xf8\x60\x60\x7c\x7e\x66\x6e\x6c\x00\x00\x00"
-		"\x18\x10\x7e\x7e\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x60\x60\x60\xc0\x00\x00"
-		"\x00\x00\x00\x18\x10\x7c\x7c\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x66\x66\x66\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x18\x18\xfe\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\xfe\x18\x18\x18\xfe\x18\x18\x00\x00\x00"
-		"\x00\x00\x3c\x62\x60\xfe\xc0\xfe\x60\x62\x3c\x00\x00\x00"
-		"\x00\x00\x00\x86\x8c\x18\x30\x6a\xca\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xc0\xc0\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xd9\xdb\xde\x00\x00\x00"
-		"\x18\x10\xc6\xcc\xd8\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xfc\x30\x30\x3c\x3e\x36\x36\x36\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x7e\x66\x66\x66\x0e\x0c\x00"
-		"\x00\x00\x00\xc0\xc0\xc0\x60\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc0\x60\x60\x60\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf1\x5b\x55\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\xd8\xde\xd9\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\xc0\x60\x30\x30\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xfe\xd9\xd9\xde\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xfc\x30\x3c\x36\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x5a\x3c\x66\x66\x3c\x5a\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x7e\x7e\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x30\x40\x40\x30\x48\x48\x30\x08\x08\x30\x00\x00"
-		"\x6c\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfc\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xf0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x33\x66\xcc\xcc\x66\x33\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x92\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x28\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7e\x7e\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x7c\xe8\xe8\xe8\x68\x28\x28\x28\x28\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x8a\xcd\xea\xb8\x9b\x88\x8b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\x66\x33\x33\x66\xcc\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xfc\xfc\x30\x3c\x36\x33\x36\x00"
-		"\x10\x7e\x60\x60\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x60\x30\x30"
-		"\x00\x00\x10\x7e\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\xcc\x66\x66"
-		"\x00\x00\x00\x00\x00\xdb\xdb\x00"
-		"\x00\x18\xfe\x18\x18\x18\x18\x00"
-		"\x00\x18\xfe\x18\x18\xfe\x18\x00"
-		"\x3c\x62\xf8\xc0\xf8\x62\x3c\x00"
-		"\x00\x86\x8c\x18\x30\x6a\xca\x00"
-		"\x38\x78\xd8\xde\xdb\xdb\xde\x00"
-		"\x00\x30\x60\xc0\xc0\x60\x30\x00"
-		"\xd8\xd8\xd8\xfe\xd9\xd9\xde\x00"
-		"\x18\xd6\xcc\xf8\xf8\xcc\xc6\x00"
-		"\xfc\xfc\x30\x3c\x36\x36\x36\x00"
-		"\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x60\xf8\x60\x7c\x7e\x66\x66\x0c"
-		"\xc0\xc0\x60\x00\x00\x00\x00\x00"
-		"\xc0\x60\x60\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x66\x00\x00\x00\x00\x00"
-		"\xcc\x66\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf1\x5b\x55\x51\x00\x00\x00\x00"
-		"\x00\x00\x38\x78\xde\xd9\xde\x00"
-		"\x00\xc0\x60\x30\x30\x60\xc0\x00"
-		"\x00\x00\xd8\xd8\xfe\xd9\xde\x00"
-		"\x18\x10\xcc\xd8\xf0\xd8\xcc\x00"
-		"\x00\x00\xfc\x30\x3c\x36\x36\x00"
-		"\x00\x00\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6b\x63\x63\x3f\x03\x63\x3e\x00"
-		"\x00\x10\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x5a\x3c\x66\x66\x3c\x5a\x00"
-		"\x06\x7e\x7e\x60\x60\x60\x60\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x30\x40\x30\x48\x30\x08\x30\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x7c\x82\x9a\xa2\x9a\x82\x7c\x00"
-		"\x3c\x62\xc0\xf8\xc0\x62\x3c\x00"
-		"\x00\x33\x66\xcc\xcc\x66\x33\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x02\x00"
-		"\x00\x00\x00\x00\xf8\xf8\x00\x00"
-		"\x7c\x92\xaa\xb2\xaa\x82\x7c\x00"
-		"\x66\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x10\x28\x28\x10\x00\x00\x00"
-		"\x00\x00\x18\x7e\x18\x00\x7e\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x00\x06\x7e\x60\x60\x60\x00"
-		"\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0"
-		"\x7c\xe8\xe8\x68\x28\x28\x28\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x6c\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x8a\xcd\xea\xb8\x9b\x88\x8b\x00"
-		"\x00\x00\x3e\x60\x7c\x60\x3e\x00"
-		"\x00\xcc\x66\x33\x33\x66\xcc\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x00\x66\x00\x18\x18\x18\x18\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-	, "Codepage 1251 Cyrillic", CIOLIB_CP1251}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x60\x60\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x06\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xec\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x66\xc3\x99\xa1\xa1\x99\xc3\x66\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x03\x03\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x1e\x06\x66\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\x90\xb8\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xbf\xb1\x30\x30\x3e\x30\x30\x31\x31\x3f\x00\x00\x00\x00"
-		"\x00\x00\xb3\xb3\x33\x33\x3f\x33\x33\x33\x33\x00\x00\x00\x00\x00"
-		"\x00\x00\xbc\x98\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x9e\xb3\x33\x33\x33\x33\x33\x33\x1e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x1e\x00"
-		"\x00\x00\xb3\xb3\x33\x33\x1e\x0c\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\x9e\xb3\x21\x21\x21\x21\x21\x33\x12\x33\x00\x00\x00\x00"
-		"\x0c\x08\x00\x66\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\x62\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x00\x00\x7c\x00\x00\x00\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\x60\x30\x18\x18\x30\x60\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\x99\x99\x99\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x18\xdb\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\x66\x24\xe7\x00\x00\x00\x00"
-		"\x00\xc3\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\xc3\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7b\xce\xcc\xcc\xcc\xcc\x7b\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\xdc\x66\x66\x66\x66\x66\x66\x06\x06\x06\x00"
-		"\x00\x00\x38\x10\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x18\xc3\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xce\xcc\xcc\xcc\xcc\x7b\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\x42\x66\x3c\x00\x00"
-		"\x00\x7c\x60\x30\x18\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x0c\x18\x30\x60\xc0\xc0\xc0\xc0\x78\x0c\x0c\x78\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x06\x06\x06\x00"
-		"\x00\x00\x3e\x63\x63\x63\x7f\x63\x63\x63\x63\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x0c\x0c\x0c\x36\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7f\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x82\xc6\xc6\x6c\x6c\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x60\xc0\x78\x30\x60\xc0\xc0\xc0\x7c\x06\x06\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\x7c\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\xc0\xc0\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x5c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x00\x00\x00\x00\x66\xc3\xc3\xc3\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\x00\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\xc3\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x66\xc3\xc3\xc3\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\xc2\xc6\x1c\x38\x60\xc6\x86\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x06\x0c\x18\x30\x30\x18\x0c\x06\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x7c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x60\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8"
-		"\x00\x00\x00\x00\x00\x00\xfe\x8c\x38\x70\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x60\x60\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x06\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xec\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x7c\xc6\x60\x38\x6c\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x66\xc3\x99\xa1\xa1\x99\xc3\x66\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x1e\x06\x66\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x90\xb8\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xbf\xb1\x30\x30\x3e\x30\x31\x31\x3f\x00\x00"
-		"\x00\x00\x00\xb3\xb3\x33\x33\x3f\x33\x33\x33\x33\x00\x00"
-		"\x00\x00\x00\xbc\x98\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x9e\xb3\x33\x33\x33\x33\x33\x33\x1e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e"
-		"\x00\x00\x00\xb3\xb3\x33\x33\x1e\x0c\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\x9e\xb3\x21\x21\x21\x21\x33\x12\x33\x00\x00"
-		"\x00\x0c\x08\x00\x66\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\xfe\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfe\x82\x00\x00\x7c\x00\x00\x82\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\x60\x30\x18\x30\x60\xc0\xfe\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x3c\x18\x7e\x99\x99\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x7c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x18\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x66\x24\xe7\x00\x00"
-		"\x00\x00\xc3\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\xc3\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x7b\xce\xcc\xcc\xcc\x7b\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\xdc\x66\x66\x66\x66\x66\x06\x06"
-		"\x00\x00\x00\x38\x10\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\xc3\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xce\xcc\xcc\xcc\x7b\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\xc0\xc0"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\x42\x66\x3c"
-		"\x00\x00\x7c\x60\x30\x18\x78\xcc\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00"
-		"\x00\xfc\x0c\x18\x30\x60\xc0\xc0\xc0\xc0\x78\x0c\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x06\x06"
-		"\x00\x00\x00\x3e\x63\x63\x63\x7f\x63\x63\x63\x3e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x0c\x0c\x0c\x36\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7f\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x82\xc6\xc6\x6c\x6c\x38\x00\x00"
-		"\x00\xfc\x60\xc0\x78\x30\x60\xc0\xc0\xc0\x7c\x06\x06\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x7c\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x3e\x63\xc0\x60\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7f\xcc\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x5c\xd6\xd6\xd6\xd6\x7c\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\x66\xc3\xc3\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\xc3\x00\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\xc3\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x66\xc3\xc3\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x3c\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x06\x0c\x18\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xc6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x40\x30\x00\x00\x00\x00\x00"
-		"\x0c\x02\x0c\x00\x00\x00\x00\x00"
-		"\x3c\x66\x60\xf8\x60\x66\xfe\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x44\xba\xa2\xba\x44\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xcc\x66\x33\x00"
-		"\x00\x00\x00\xff\x03\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x30\x30\xfc\x30\x30\x00\xfc\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x70\x08\x30\x08\x70\x00\x00\x00"
-		"\x08\x10\x00\x00\x00\x00\x00\x00"
-		"\x08\xd3\x00\x00\x00\x00\x00\x00"
-		"\x5c\xb6\x63\x7f\x63\x63\x63\x00"
-		"\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x5f\x90\x10\x1e\x10\x10\x1f\x00"
-		"\xb3\xb3\x33\x3f\x33\x33\x33\x00"
-		"\x5e\x8c\x0c\x0c\x0c\x0c\x1e\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x5c\xb6\x63\x63\x63\x36\x1c\x00"
-		"\x40\xc0\x4c\x52\x04\x08\x1e\x00"
-		"\xb3\xb3\x33\x1e\x0c\x0c\x1e\x00"
-		"\x5c\xb6\x63\x63\x36\x14\x77\x00"
-		"\x08\xd3\x00\x30\x30\x30\x3c\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00"
-		"\x10\x38\x6c\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc0\xc0\xfc\xc0\xc0\xfe\x00"
-		"\xfe\x06\x0c\x18\x30\x60\xfe\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xfe\xc6\xc6\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x7e\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x10\x38\x6c\xc6\xc6\xc6\xc6\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\xfe\xc6\x00\x38\x00\xc6\xfe\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xff\x66\x66\x66\x66\x66\x66\x00"
-		"\xfc\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xfe\xc0\x60\x30\x60\xc0\xfe\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x10\x7c\xd6\xd6\x7c\x10\x38\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x10\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x28\xee\x00"
-		"\xc3\x3c\x18\x18\x18\x18\x3c\x00"
-		"\x66\x00\x66\x66\x3c\x18\x3c\x00"
-		"\x08\x10\x76\xcc\xcc\xcc\x76\x00"
-		"\x08\x10\x7e\xc0\x7c\xc0\x7e\x00"
-		"\x08\x10\xbc\x66\x66\x66\x66\x06"
-		"\x08\x10\x30\x30\x30\x30\x3c\x00"
-		"\x08\xd3\x00\xe6\x66\x66\x3c\x00"
-		"\x00\x00\x7a\xcc\xcc\xcc\x7a\x00"
-		"\x78\xcc\xd8\xfc\xc6\xc6\xfc\x80"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x7c"
-		"\x7e\x30\x18\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x7e\xc0\x7c\xc0\x7e\x00"
-		"\x7e\x06\x1c\x30\x60\x3e\x02\x1c"
-		"\x00\x00\xbc\x66\x66\x66\x66\x06"
-		"\x7c\xc6\xe6\x3e\x86\xc6\x7c\x00"
-		"\x00\x00\x30\x30\x30\x30\x1c\x00"
-		"\x00\x00\xc6\xdc\xf0\xdc\xc6\x00"
-		"\x7c\xc6\x06\x1e\x36\x66\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xdd\xc0"
-		"\x00\x00\x82\xc6\xc6\x6c\x38\x00"
-		"\x7e\x18\x30\x3c\x60\x3e\x02\x1c"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xff\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xfc\xc0\xc0"
-		"\x00\x00\x7e\xc0\xc0\x7c\x06\x1c"
-		"\x00\x00\x7e\xd8\xcc\xcc\x78\x00"
-		"\x00\x00\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xe6\x66\x66\x66\x3c\x00"
-		"\x00\x00\x1c\x56\xd6\xd6\x7c\x10"
-		"\x00\x00\xc2\x6c\x38\x6c\x86\x00"
-		"\x00\x00\x10\xd6\xd6\xd6\x7c\x10"
-		"\x00\x00\x44\xd6\xd6\xd6\x6c\x00"
-		"\xcc\x00\x30\x30\x30\x30\x3c\x00"
-		"\x66\x00\xe6\x66\x66\x66\x3c\x00"
-		"\x08\x10\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x08\x10\xe6\x66\x66\x66\x3c\x00"
-		"\x08\x10\x44\xd6\xd6\xd6\x6c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-7 Greek", CIOLIB_ISO_8859_7}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x6c\x76\x66\x66\x66\x66\xe6\x06\x0c\x30\x00"
-		"\x00\x00\x18\x10\x00\xfe\xc2\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x62\xc0\xf8\xc0\x62\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x36\x24\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x0c\x08\x00\x3c\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00"
-		"\x00\x00\x00\x00\x00\x3c\x4c\x4c\x4e\x49\x49\xce\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xfe\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x60\x7c\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x07\x88\xcb\xab\xa8\xab\x9b\x88\x00\x00\x00\x00"
-		"\x00\x60\xf8\x60\x60\x7c\x76\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x18\x10\xfe\x66\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xe8\xd0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x36\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00\x00"
-		"\x00\x00\x7c\x6c\x6c\x6c\x6e\x69\x69\x69\x69\xce\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xfe\xc9\xc9\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x18\x10\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x02\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, NULL, NULL, "Russian koi8-r (c)", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x18\x18\x7e\xdb\xd8\x58\x38\x1c\x1e\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\x00\x00\xe2\xa6\xec\x18\x18\x30\x60\x6e\xca\x8e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x18\x30\x60\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x18\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\x60\x60\x30\x18\x0c\x0c\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x36\x30\xfc\x30\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xf6\x18\xf0\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7c\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x0c\x78\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x18\xf0\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\x06\x1c\x00\x00\x00"
-		"\x00\x7c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e\x00"
-		"\x66\x3c\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x18\x30\x40\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e\x00"
-		"\x6c\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\x66\x60\x60\x78\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x3c\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x0c\x78\x00"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x02\x06\x7c\xce\xde\xd6\xd6\xd6\xd6\xf6\xe6\x7c\xc0\x80\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x60\x3c\x00"
-		"\x0c\x18\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1c\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x30\x1e\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x18\xf0\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x60\x3c\x00"
-		"\x00\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xd8\x78\x1c\x1e\x9b\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x1c\x18\x30\x70\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x30\x30\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x18\x18\x0c\x06\x06\x00\x00"
-		"\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x36\x30\x30\xfc\x30\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0"
-		"\x00\x00\x00\x00\x00\xfe\x86\x0c\x18\x30\x62\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00"
-		"\x00\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x0c\x78"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\xce\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\x7c\x00\x00"
-		"\x7c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00"
-		"\x66\x3c\x00\xfe\xc6\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x0e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x30\xe0"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x18\xf0"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x3c\x60\x38\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\x06\x1c\x00\x00"
-		"\x7c\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x0e\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e"
-		"\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x18\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\x18\x3c\x66\x00\x00\x00\x00"
-		"\x02\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x80"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1c"
-		"\x0c\x18\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x18\x1e"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x0c\x78"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\x7c\xce\xd6\xd6\xd6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x30\x1e"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x18\x18\x00\x18"
-		"\x00\xee\x66\xcc\x00\x00\x00\x00"
-		"\x00\x6c\xfe\x6c\x6c\x6c\xfe\x6c"
-		"\x18\x7e\xdb\xd8\x7e\x1b\xdb\x7e"
-		"\x00\x00\xc6\xcc\x18\x30\x66\xc6"
-		"\x00\x38\x6c\x3a\x7e\xcc\xcc\x76"
-		"\x00\x38\x18\x70\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x30\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x0c\x0c\x18\x30"
-		"\x00\x00\x6c\x38\xfe\x38\x6c\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x70"
-		"\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18"
-		"\x00\x06\x0c\x18\x18\x30\x60\xc0"
-		"\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c"
-		"\x00\x18\x78\x18\x18\x18\x18\x7e"
-		"\x00\x7c\xc6\x8c\x38\x60\xc2\xfe"
-		"\x00\x7c\xc6\x06\x3c\x06\xc6\x7c"
-		"\x00\x1c\x3c\x6c\xcc\xfe\x0c\x1e"
-		"\x00\xfe\xc0\xfc\x06\x06\xc6\x7c"
-		"\x00\x7c\xc6\xc0\xfc\xc6\xc6\x7c"
-		"\x00\xfe\xc6\x06\x0c\x18\x30\x30"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x70"
-		"\x00\x00\x18\x30\x60\x30\x18\x00"
-		"\x00\x00\x00\xfe\x00\xfe\x00\x00"
-		"\x00\x00\x30\x18\x0c\x18\x30\x00"
-		"\x00\x7c\xc6\xcc\x18\x18\x00\x18"
-		"\x00\x7c\xc6\xc6\xde\xdc\xc0\x7e"
-		"\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x00\xfc\x66\x66\x7c\x66\x66\xfc"
-		"\x00\x3c\x66\xc2\xc0\xc2\x66\x3c"
-		"\x00\xf8\x6c\x66\x66\x66\x6c\xf8"
-		"\x00\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x00\xfe\x66\x60\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc0\xce\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6"
-		"\x00\x3c\x18\x18\x18\x18\x18\x3c"
-		"\x00\x3c\x18\x18\x18\xd8\xd8\x70"
-		"\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6"
-		"\x00\xf0\x60\x60\x60\x62\x66\xfe"
-		"\x00\xc6\xc6\xee\xfe\xd6\xc6\xc6"
-		"\x00\xc6\xe6\xf6\xde\xce\xc6\xc6"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xfc\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc6\xd6\xd6\x7c\x06"
-		"\x00\xfc\x66\x66\x7c\x78\x66\xe6"
-		"\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c"
-		"\x00\xff\xdb\x99\x18\x18\x18\x3c"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xc6\x6c\x38\x10"
-		"\x00\xc6\xc6\xd6\xd6\xfe\xee\x6c"
-		"\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6"
-		"\x00\x66\x66\x66\x3c\x18\x18\x3c"
-		"\x00\xfe\xc6\x8c\x38\x62\xc6\xfe"
-		"\x00\x7c\x60\x60\x60\x60\x60\x7c"
-		"\x00\xc0\x60\x30\x30\x18\x0c\x06"
-		"\x00\x7c\x0c\x0c\x0c\x0c\x0c\x7c"
-		"\x00\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x30\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xe0\x60\x7c\x66\x66\x66\xfc"
-		"\x00\x00\x00\x78\xcc\xc0\xcc\x78"
-		"\x00\x0e\x0c\x7c\xcc\xcc\xcc\x7e"
-		"\x00\x00\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x1c\x36\x30\xfc\x30\x30\x78"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xe0\x60\x7c\x66\x66\xe6"
-		"\x18\x18\x00\x38\x18\x18\x18\x3c"
-		"\x0c\x0c\x00\x1c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x66\x6c\x78\x6c\xe6"
-		"\x00\x38\x18\x18\x18\x18\x18\x3c"
-		"\x00\x00\x00\xec\xfe\xd6\xd6\xc6"
-		"\x00\x00\x00\xdc\x66\x66\x66\x66"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0e\x0e"
-		"\x00\x00\x00\xdc\x66\x60\x60\xf0"
-		"\x00\x00\x00\x7c\xc0\x7c\x06\xfc"
-		"\x00\x30\x30\xfc\x30\x30\x36\x1c"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x00\x00\xc6\xc6\x6c\x38\x10"
-		"\x00\x00\x00\xc6\xd6\xd6\xfe\x6c"
-		"\x00\x00\x00\xc6\x6c\x38\x6c\xc6"
-		"\x00\x00\x00\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x0e\x18\x18\x70\x18\x18\x0e"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x70\x18\x18\x0e\x18\x18\x70"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xfe"
-		"\x38\x6c\xc6\xfe\xc6\xce\x18\x0e"
-		"\x00\x00\x00\xe6\x6c\x78\x6c\xe6"
-		"\xfc\x66\x7e\x6c\x66\xe6\x18\x70"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\x76\xdc\x38\x18\x18\x18\x18\x3c"
-		"\xf0\x60\x60\x62\x66\xfe\x18\x70"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc0\x7c\x06\xc6\x7c"
-		"\x7c\x00\xfe\x60\x7c\x60\x66\xfe"
-		"\x3c\x66\xc0\xce\x66\x3e\x18\x70"
-		"\x00\xff\x99\x1e\x3c\x78\x18\x3c"
-		"\x00\x00\x00\x00\x00\x3c\x00\x00"
-		"\x6c\x38\xfe\x8c\x18\x32\x66\xfe"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x0f"
-		"\x00\x00\x00\x00\x00\x00\x10\x1c"
-		"\x00\x00\xdc\x76\x66\xf0\x30\xe0"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x18\x18\x3c"
-		"\x38\x18\x18\x18\x18\x3c\x18\x70"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x04\x1c"
-		"\x00\x6c\x38\x7c\xc0\x7c\x06\xfc"
-		"\x00\x7c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x38\x60\x30\x7e\xcc\x7c\x0c\xf8"
-		"\x00\x30\x30\xfc\x30\x38\x76\x1c"
-		"\x00\xdc\xfe\xf6\xc6\xc6\xc6\xdc"
-		"\x6c\x38\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x00\xdc\xfe\xf6\xc6\x06\x1c"
-		"\x7c\x00\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x0c\x18\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x7c\x82\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x7c\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x38\x6c\x38\x6c\xc6\xfe\xc6\xc6"
-		"\x00\x3e\x78\xd8\xfe\xd8\xd8\xde"
-		"\x78\x30\x30\x30\x30\x78\x30\x1c"
-		"\x6c\x38\x7c\xc6\xc0\xc0\xc6\x7c"
-		"\x0e\x18\xfe\x62\x78\x60\x66\xfe"
-		"\xfe\x66\x60\x78\x60\x66\xfe\x1c"
-		"\x6c\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x18\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x0c\x18\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x42\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x00\x3c\x18\x18\x18\x18\x3c"
-		"\x00\xf8\x6c\x66\xf6\xf6\x6c\xf8"
-		"\xc6\xe6\xf6\xde\xce\xc6\x0c\x38"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\xcc\xf8\xd8\xcc\xc6\x0c\x38"
-		"\x7c\x82\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x03\x7e\xce\xde\xd6\xf6\xe6\xfc"
-		"\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1e"
-		"\x1c\x30\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\x7c"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0"
-		"\x00\x7c\x00\x78\x0c\x7c\xcc\x76"
-		"\x0c\x18\x20\x78\x0c\x7c\xcc\x76"
-		"\x00\x78\x84\x78\x0c\x7c\xcc\x76"
-		"\x6c\x38\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xcc\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\x38\x6c\x78\x0c\x7c\xcc\x76"
-		"\x00\x00\x00\x6e\x3b\x7e\xd8\x7e"
-		"\x18\x00\x38\x18\x18\x3c\x18\x0e"
-		"\x00\xcc\x78\x78\xcc\xc0\xcc\x78"
-		"\x0c\x18\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7a\x1e"
-		"\x00\x6c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x38\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x0c\x18\x20\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x42\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x00\x38\x18\x18\x18\x3c"
-		"\x00\x0c\x3e\x0c\x7c\xcc\xcc\x76"
-		"\x00\x00\xdc\xe6\xc6\xc6\x18\x70"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\xe0\x66\x6c\x78\x6c\xe6\x1c"
-		"\x7c\xc6\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x6c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x06\x7c\xce\xd6\xe6\x7c\xc0"
-		"\x00\x00\xcc\xcc\xcc\x7e\x30\x1c"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\x76"
-		"\x78\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x76\xdc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x78\x00\xcc\xcc\xcc\xcc\x76"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-4 Baltic", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x06\x3c\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xce\x9b\x06\x0c\x1f\x00\x00"
-		"\x00\xf0\x30\x72\x36\xec\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x6c\x66\x66\x66\xf6\x66\x66\x6c\x78\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xf0\x60\x7c\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x38\x6c\x0c\x3c\x6c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x08\x08\x3e\x63\x60\x60\x3e\x03\x03\x63\x3e\x08\x08\x00"
-		"\x00\x00\x00\x61\x63\x06\x0c\x18\x30\x63\x43\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\x7e\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x67\x6f\x7b\x73\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7e\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6e\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x6b\x3e\x1c\x06\x03\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x36\x1c\x36\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x06\x0c\x18\x30\x60\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x30\x18\x0c\x06\x03\x01\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3e\x33\x33\x33\x33\x6e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x30\x7c\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\x78\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x08\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3e\x63\x60\x60\x63\x3e\x08\x08\x00"
-		"\x00\x00\x1c\x36\x30\x30\x7c\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x00\x00\x42\x3c\x66\x66\x66\x3c\x42\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x7e\x18\x7e\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x00\x63\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x51\x51\x5d\x41\x3e\x00\x00\x00"
-		"\x00\x38\x04\x3c\x44\x3c\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x55\x59\x55\x41\x3e\x00\x00\x00"
-		"\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00"
-		"\x00\x38\x6c\x18\x30\x64\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x0c\x38\x0c\x6c\x38\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x0c\x06\x1c"
-		"\x00\x30\x70\x30\x30\x30\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x33\x67\xcf\x1f\x03\x03\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f\x00"
-		"\x00\xf0\x30\x63\xf6\x6c\x18\x33\x67\xcf\x1f\x03\x03\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30\x63\x63\x3e\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x3b\x6e\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x63\x63\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x1c\x36\x1c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x00\x1f\x36\x66\x66\x67\x7e\x66\x66\x67\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x0c\x06\x1c"
-		"\x60\x30\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x06\x0c\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x08\x1c\x36\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x00\x63\x63\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x60\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x06\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x36\x33\x33\x7b\x33\x33\x36\x3c\x00\x00\x00"
-		"\x3b\x6e\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x63\x63\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x63\x36\x1c\x08\x1c\x36\x63\x00\x00\x00\x00"
-		"\x00\x03\x1e\x36\x67\x6f\x6b\x7b\x73\x36\x3c\x60\x00\x00"
-		"\x60\x30\x18\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x03\x06\x0c\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x08\x1c\x36\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x63\x63\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x06\x0c\x18\x00\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x78\x30\x3e\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x66\x6c\x67\x63\x6b\x6e\x60\x60\x00"
-		"\x00\x60\x30\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x1c\x36\x1c\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x0b\x3b\x6e\x68\x37\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x0c\x06\x1c"
-		"\x00\x30\x18\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x03\x06\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x1c\x36\x06\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x03\x3e\x67\x6f\x7b\x73\x3e\x60\x00\x00"
-		"\x00\x60\x30\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x78\x30\x3e\x33\x33\x33\x33\x3e\x30\x78\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x3e\x06\x66\x3c\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x00\x30\x30\x78\x78\x30\x00"
-		"\x00\x00\x10\x7c\xc0\xc0\x7c\x10"
-		"\x00\x38\x60\x60\xf0\x60\xfc\x00"
-		"\x00\xc3\x3c\x66\x66\x3c\xc3\x00"
-		"\x00\xcc\xcc\x78\x30\xfc\x30\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\xc6\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xa2\xba\x82\x7c\x00"
-		"\x1c\x06\x1e\x22\x1f\x3f\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xfe\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xb2\xaa\x82\x7c\x00"
-		"\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x1c\x36\x06\x18\x3e\x00\x00\x00"
-		"\x1e\x02\x0e\x02\x1e\x00\x00\x00"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\xc0"
-		"\x7e\xca\xca\x7e\x0a\x0a\x0a\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x06\x0e\x06\x06\x06\x00\x00\x00"
-		"\x0e\x11\x11\x11\x0e\x1f\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x60\xe0\x66\x6c\x33\x67\x0f\x03"
-		"\x60\xe0\x66\x6c\x36\x6a\x04\x0e"
-		"\xf0\x20\x96\x6c\x33\x67\x0f\x03"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x18\x0c\x30\x78\xcc\xfc\xcc\x00"
-		"\x60\xc0\x30\x78\xcc\xfc\xcc\x00"
-		"\x78\x84\x30\x78\xcc\xfc\xcc\x00"
-		"\x66\x98\x30\x78\xcc\xfc\xcc\x00"
-		"\xcc\x00\x30\x78\xcc\xfc\xcc\x00"
-		"\x30\x48\x30\x78\xcc\xfc\xcc\x00"
-		"\x3e\x78\x98\x9c\xf8\x98\x9e\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x1c\x30"
-		"\x30\x18\xfe\x62\x78\x62\xfe\x00"
-		"\x18\x30\xfe\x62\x78\x62\xfe\x00"
-		"\x38\x44\xfe\x62\x78\x62\xfe\x00"
-		"\x66\x00\xfe\x62\x78\x62\xfe\x00"
-		"\x60\x30\x78\x30\x30\x30\x78\x00"
-		"\x18\x30\x78\x30\x30\x30\x78\x00"
-		"\x78\x84\x78\x30\x30\x30\x78\x00"
-		"\xcc\x00\x78\x30\x30\x30\x78\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x66\x98\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x44\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x66\x98\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x06\x7c\xce\x9a\xb2\xe6\x78\xc0"
-		"\x60\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x78\x84\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\x78\x30\x78\x00"
-		"\x60\x78\x6c\x78\x60\x60\x60\x00"
-		"\x78\xcc\xc4\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x78\x84\x78\x0c\x7c\xcc\x76\x00"
-		"\x66\x98\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x48\x38\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\xec\x32\x7e\xb0\x6e\x00"
-		"\x00\x00\x3c\x66\xc0\x66\x1c\x30"
-		"\x30\x18\x78\xcc\xfc\xc0\x78\x00"
-		"\x18\x30\x78\xcc\xfc\xc0\x78\x00"
-		"\x78\x84\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x60\x30\x00\x70\x30\x30\x78\x00"
-		"\x18\x30\x00\x70\x30\x30\x78\x00"
-		"\x70\x88\x00\x70\x30\x30\x78\x00"
-		"\xcc\x00\x00\x70\x30\x30\x78\x00"
-		"\x6c\x38\x6c\x0c\x6c\xcc\x78\x00"
-		"\x66\x98\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x60\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x38\x44\x00\x7c\xc6\xc6\x7c\x00"
-		"\x66\x98\x00\x7c\xc6\xc6\x7c\x00"
-		"\xc6\x00\x00\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x00\x06\x7c\xde\xf6\x7c\xc0"
-		"\x60\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x78\x6c\x66\x6c\x78\xe0\x00"
-		"\xcc\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-	, "ISO-8859-1 West European", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-	, "Codepage 866 Russian", CIOLIB_CP866M2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x82\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x38\x44\x40\x40\x40\x48\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x28\x10\x7c\x10\x7c\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\xf8\x84\x84\xf8\x84\x84\x9e\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x88\x44\x22\x44\x88\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x62\x94\x98\x88\x98\x94\x62\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x80\x80\x80\x80\x80\x80\x80\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x44\x44\x44\x44\x44\x44\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\x82\x40\x20\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x88\x88\x88\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x72\xd4\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x10\x38\x44\x44\x44\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x82\x82\xfe\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x44\x28\x28\x28\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x10\x08\x04\x3e\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x99\x99\x99\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x7e\x89\x91\xa1\x7e\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x1c\x20\x40\x40\x78\x40\x40\x40\x20\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x08\x04\x02\x04\x08\x10\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x10\x20\x40\x20\x10\x08\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x11\x11\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x88\x88\x70\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x08\x08\x08\x08\x08\xe8\x28\x28\x28\x18\x00\x00\x00\x00"
-		"\x00\xd8\x64\x44\x44\x44\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x10\x10\x7e\x80\x80\x7e\x10\x10"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x44\x28\x10\x7c\x10\x7c\x10\x10"
-		"\xf8\x84\x84\xf8\x82\x87\x82\x83"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x44\x22\x11\x22\x44\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x62\x94\x88\x94\x62\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x00\xfc\x84\x80\x80\x80\x80\x00"
-		"\x00\xfe\x28\x28\x28\x28\x28\x00"
-		"\xfc\x84\x40\x20\x40\x84\xfc\x00"
-		"\x00\x00\x7e\x88\x88\x88\x70\x00"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\x00\x76\x88\x08\x08\x08\x08\x00"
-		"\xf8\x20\x70\x88\x88\x70\x20\xf8"
-		"\x38\x44\x82\xfe\x82\x44\x38\x00"
-		"\x38\x44\x82\x82\x28\x28\x6c\x00"
-		"\x1c\x10\x08\x7c\x84\x84\x78\x00"
-		"\x00\x00\x7c\x92\x92\x7c\x00\x00"
-		"\x02\x04\x7e\x89\x91\x7e\x40\x80"
-		"\x38\x40\x80\xf8\x80\x40\x38\x00"
-		"\x78\x84\x84\x84\x84\x84\x84\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x40\x20\x10\x20\x40\x00\xfc\x00"
-		"\x10\x20\x40\x20\x10\x00\xfc\x00"
-		"\x0e\x11\x11\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x88\x88\x70"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x64\x98\x00\x64\x98\x00\x00"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x07\x04\x04\x04\x64\x24\x1c\x0c"
-		"\x58\x44\x44\x44\x44\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 437 English, (thin)", CIOLIB_CP437}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x66\xff\xff\xff\xff\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\xff\x7e\x7e\x3c\x3c\x18\x18\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x18\x66\xff\xff\x66\x18\x3c\x7e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\xff\xff\xff\x7e\x18\x3c\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x3f\x33\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x00\x7f\x63\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x18\x3c\x7e\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xff\x7e\x3c\x18\x00"
-		"\x00\x00\x00\x00\x00\x08\x0c\x0e\xff\x0e\x0c\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x30\x70\xff\x70\x30\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00\x00"
-		"\x00\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00\x00"
-		"\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x03\x06\x0c\x18\x30\x70\x30\x18\x0c\x06\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x67\x3d\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\xf7\x00\x00\x00"
-		"\x00\x7e\xc3\xc3\xc0\xc0\x7e\x03\x03\x03\xc3\xc3\x7e\x00\x00\x00"
-		"\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x0f"
-		"\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x0c\x18\x70"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x66\x66\xff\xc3\x81\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xd6\xd6\x54\x54\x7c\x7c\x54\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x38\x38\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\xdb\x7e\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03\x03\x00"
-		"\x00\x00\x00\xf8\xb0\x30\x30\x3c\x36\x36\x36\x36\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc3\xc3\xc3\xc3\xf3\xdb\xdb\xdb\xdb\xf3\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x78\xcc\x06\x26\x3e\x26\x06\x06\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\xce\xdb\xdb\xdb\xfb\xdb\xdb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x3f\x66\x66\x66\x3e\x3e\x66\x66\x66\xe7\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x02\x06\x3c\x60\x60\x7c\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\x66\x66\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x32\x32\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x36\x66\x66\x66\xff\xc3\xc3\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\x54\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x06\x0c\x06\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x38\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10"
-		"\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18"
-		"\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x03\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xb0\x30\x3e\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xf6\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\x60\x60\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3e\x67\x03\x1f\x03\x67\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xce\xdb\xdb\xfb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xcc\xcc\xfc\x6c\xcc\xce\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x7c\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xf8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x42\x99\xa1\xa1\x99\x42\x3c\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x60\x88\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x42\x7e\x00\x00\x00"
-	, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP866M2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x70\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x36\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xd8\xdc\x76\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x60\x30\x18\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x7e\x18\x3c\x66\x66\x66\x66\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\x6c\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\xdb\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x60\x30\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x6c\x36\x36\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00"
-		"\x00\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0e\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x7c\x38\x7c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x78"
-		"\x00\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\x36\x76\xdc\xd8\x6e\x00\x00"
-		"\x00\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00"
-		"\x00\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00"
-		"\x00\x00\xfc\x66\x66\x7c\x62\x66\x6f\x66\x66\xf3\x00\x00"
-		"\x00\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00"
-		"\x00\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x1a\x36\x6e\xda\x3f\x06\x06"
-		"\x00\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xdc\x76\x00\x00"
-		"\x00\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\x70\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\xee\x00\x00"
-		"\x00\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xdb\xdb\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00"
-		"\x00\x00\x00\x1e\x30\x60\x60\x7e\x60\x60\x30\x1e\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00"
-		"\x00\x6c\x36\x36\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\xd6\x10\x38"
-		"\x10\x38\x7c\xfe\xfe\x7c\x10\x38"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x38\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x0c\x18\x30\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x7e\x5a\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x7c\x66\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x7c\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xd6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x7c\x82\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\x7e\xc0\xc0\x7e\x0c\x38"
-		"\x7c\x82\x7c\xc6\xfe\xc0\x7c\x00"
-		"\xc6\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x30\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x66\x00\x38\x18\x18\x18\x3c\x00"
-		"\x7c\x82\x38\x18\x18\x18\x3c\x00"
-		"\x30\x18\x00\x38\x18\x18\x3c\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x38\x6c\x7c\xc6\xfe\xc6\xc6\x00"
-		"\x18\x30\xfe\xc0\xf8\xc0\xfe\x00"
-		"\x00\x00\x7e\x12\xfe\x90\xfe\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x7c\x82\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x78\x84\x00\xcc\xcc\xcc\x76\x00"
-		"\x60\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\xc6\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\xc6\x38\x6c\xc6\xc6\x6c\x38\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x38\x6c\x64\xf0\x60\x66\xfc\x00"
-		"\x3a\x6c\xce\xd6\xe6\x6c\xb8\x00"
-		"\xf8\xcc\xcc\xfa\xc6\xcf\xc6\xc7"
-		"\x0e\x1b\x18\x3c\x18\xd8\x70\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x0c\x18\x00\x38\x18\x18\x3c\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\x76\xdc\x00\xdc\x66\x66\x66\x00"
-		"\x76\xdc\x00\xe6\xf6\xde\xce\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x18\x00\x18\x18\x30\x63\x3e\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfe\x06\x06\x00\x00"
-		"\x63\xe6\x6c\x7e\x33\x66\xcc\x0f"
-		"\x63\xe6\x6c\x7a\x36\x6a\xdf\x06"
-		"\x18\x00\x18\x18\x3c\x3c\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\xc8\xdc\x76\x00"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\xfe\xc6\xc0\xc0\xc0\xc0\xc0\x00"
-		"\x00\x00\xfe\x6c\x6c\x6c\x6c\x00"
-		"\xfe\xc6\x60\x30\x60\xc6\xfe\x00"
-		"\x00\x00\x7e\xd8\xd8\xd8\x70\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\x00\x76\xdc\x18\x18\x18\x18\x00"
-		"\x7e\x18\x3c\x66\x66\x3c\x18\x7e"
-		"\x38\x6c\xc6\xfe\xc6\x6c\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x6c\xee\x00"
-		"\x0e\x18\x0c\x3e\x66\x66\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x00\x00"
-		"\x06\x0c\x7e\xdb\xdb\x7e\x60\xc0"
-		"\x1e\x30\x60\x7e\x60\x30\x1e\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\xfe\x00\xfe\x00\xfe\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x30\x18\x0c\x18\x30\x00\x7e\x00"
-		"\x0c\x18\x30\x18\x0c\x00\x7e\x00"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xec\x6c\x3c\x1c"
-		"\x6c\x36\x36\x36\x36\x00\x00\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 865 Norwegian", CIOLIB_CP865}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x06\x7e\x60\x60\x60\x60\x60\x00"
-		"\x00\x06\x7e\x60\x60\x60\x60\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-	, "Ukrainian font cp866u", CIOLIB_CP866U}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x7e\x24\x24\x24\x7e\x24\x24\x24\x00\x00\x00"
-		"\x00\x00\x08\x3f\x48\x48\x48\x3e\x09\x09\x09\x7e\x08\x00\x00\x00"
-		"\x00\x00\x00\x30\x49\x32\x04\x08\x10\x26\x49\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x24\x24\x18\x25\x22\x22\x22\x1d\x00\x00\x00\x00"
-		"\x00\x18\x08\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x10\x08\x04\x04\x04\x04\x04\x04\x08\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\x7e\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x08\x7f\x08\x08\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x08\x10\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x42\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x1c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x06\x0a\x12\x22\x42\x7f\x02\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x40\x40\x40\x7c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x04\x08\x08\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x3c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x3e\x02\x02\x02\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x08\x08\x10\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x20\x10\x08\x04\x02\x04\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x00\x1c\x22\x49\x55\x55\x56\x4c\x20\x1e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x7c\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\x42\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x40\x40\x40\x4e\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x42\x44\x48\x50\x60\x60\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x40\x40\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x63\x55\x49\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x42\x62\x52\x52\x4a\x4a\x46\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x4a\x3c\x04\x02\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x3c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7f\x08\x08\x08\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x22\x22\x14\x14\x08\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x41\x49\x55\x63\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x22\x14\x08\x08\x14\x22\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x00\x00\x08\x14\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x18\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x02\x3e\x42\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x7e\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x08\x08\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x0e\x02\x02\x02\x02\x02\x02\x02\x42\x3c\x00"
-		"\x00\x00\x40\x40\x40\x42\x44\x48\x70\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x70\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x49\x49\x49\x49\x49\x49\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\x40\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x02\x00"
-		"\x00\x00\x00\x00\x00\x5c\x62\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x49\x49\x49\x49\x49\x49\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x24\x18\x24\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x0c\x10\x10\x10\x10\x20\x10\x10\x10\x10\x0c\x00\x00\x00\x00"
-		"\x00\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x30\x08\x08\x08\x08\x04\x08\x08\x08\x08\x30\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3c\x4a\x48\x48\x4a\x3c\x08\x08\x00\x00\x00"
-		"\x00\x00\x1c\x22\x22\x20\x78\x20\x20\x20\x21\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x3e\x22\x22\x22\x3e\x41\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x41\x22\x14\x08\x08\x3e\x08\x3e\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x08\x08\x08\x08\x00\x00\x08\x08\x08\x08\x08\x00\x00\x00"
-		"\x00\x00\x3c\x42\x20\x3c\x42\x42\x42\x3c\x04\x42\x3c\x00\x00\x00"
-		"\x00\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x41\x5d\x51\x51\x5d\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x09\x12\x24\x48\x90\x48\x24\x12\x09\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x02\x02\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x5d\x55\x59\x55\x55\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x24\x24\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x08\x3e\x08\x08\x00\x3e\x00\x00\x00\x00"
-		"\x00\x00\x30\x48\x10\x20\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x30\x08\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x02\x04\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7e\x41\x40\x40\x80\x00"
-		"\x00\x00\x7c\x52\x52\x52\x5c\x50\x50\x50\x50\x50\x50\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x04\x08\x00"
-		"\x00\x00\x10\x30\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x18\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x90\x48\x24\x12\x09\x12\x24\x48\x90\x00\x00\x00\x00"
-		"\x00\x10\x30\x10\x11\x12\x04\x08\x11\x23\x45\x0f\x01\x01\x00\x00"
-		"\x00\x10\x30\x10\x11\x12\x04\x08\x10\x26\x49\x02\x04\x0f\x00\x00"
-		"\x00\x30\x48\x10\x09\x4a\x34\x08\x11\x23\x45\x0f\x01\x01\x00\x00"
-		"\x00\x00\x00\x10\x10\x00\x10\x10\x10\x20\x40\x40\x42\x3c\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x18\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3f\x48\x48\x48\x7e\x48\x48\x48\x48\x4f\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x04\x02\x3c\x00"
-		"\x18\x06\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x06\x18\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x0c\x12\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x14\x14\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x18\x06\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x06\x18\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x08\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x14\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\xf2\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x19\x26\x00\x41\x61\x51\x49\x45\x43\x41\x41\x00\x00\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x22\x14\x08\x14\x22\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x01\x1a\x24\x4a\x4a\x52\x52\x24\x58\x80\x00\x00\x00\x00"
-		"\x30\x0c\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x04\x08\x00\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x20\x20\x38\x24\x22\x22\x22\x24\x38\x20\x20\x20\x00\x00\x00"
-		"\x00\x00\x1e\x21\x21\x21\x3e\x21\x21\x21\x3e\x20\x20\x20\x00\x00"
-		"\x00\x10\x08\x04\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x1c\x22\x1c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x09\x09\x3e\x48\x48\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x08\x04\x78\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x14\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x22\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x1d\x02\x06\x0a\x02\x3e\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x08\x00\x3e\x00\x08\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1d\x22\x45\x49\x51\x22\x5c\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x20\x20\x38\x24\x24\x24\x28\x30\x20\x20\x20\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-	, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x81\xe7\xa5\x99\x81\x99\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x7e\xff\x99\xdb\xe7\xff\xe7\x7e\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x10\xd6\xfe\xd6\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\xfe\xfe\x54\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x30\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x20\x30\x38\x3c\x36\x36\x30\x70\xf0\xf0\x60\x00\x00\x00\x00"
-		"\x00\x00\x3e\x22\x3e\x22\x22\x22\x22\x26\x6e\xe4\x40\x00\x00\x00"
-		"\x00\x00\x00\x10\x92\x54\x28\xc6\x28\x54\x92\x10\x00\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x78\x7c\x7e\x7c\x78\x70\x60\x40\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x1e\x3e\x7e\x3e\x1e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\xff\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x06\xff\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xff\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x7e\x7e\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x7e\x7e\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x10\x7c\xd6\xd0\xd0\x70\x38\x1c\x16\x16\xd6\x7c\x10\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x70\xd6\xdc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\xff\x3c\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xd6\xd6\xd6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x60\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x0c\xcc\xcc\xcc\xcc\xfe\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\x0c\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x1c\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x30\x00\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xcc\xf8\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xce\xc6\xc6\xc6\x66\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xf6\xde\x7c\x0c\x06\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xd8\xcc\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xfe\x06\x0c\x0c\x18\x18\x30\x60\x60\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x00\x70\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x66\x60\x60\xf0\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x00\xc0\xc0\xc0\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xfe\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xfe\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x0c\x18\x30\x60\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x30\x60\x30\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0c\x06\x0c\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\xc3\x66\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\x54\x7c\x38\x38\x38\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x38\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\xf0\xb0\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xf2\xda\xda\xda\xda\xda\xf6\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3e\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\x66\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\xff\xc3\x66\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\x7c\x38\x38\x38\x7c\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11"
-		"\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\xb0\x30\x3c\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfa\xce\xce\xfa\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x60\x60\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xd6\xd6\xf6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf8\xc0\xc6\x7c\x00\x00\x00"
-		"\x24\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x36\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x44\x38\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x18\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x66\x66\x66\x66\x3c\x66\x66\x00\x00\x00"
-		"\x06\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP1131}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-	, "Commodore 64 (UPPER)", CIOLIB_PETSCIIU}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x0e\x0e\x18\x18\x3e\x3e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c"
-		"\x00\x00\x60\x60\x60\x60\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x7f\x7f\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\x18\x18\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x3e\x3e\x36\x36\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x0c\x0c\x78\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x00\x06\x06\x3e\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x0e\x18\x3e\x18\x18\x18\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x00\x60\x60\x7c\x66\x66\x66\x00"
-		"\x00\x18\x00\x38\x18\x18\x3c\x00"
-		"\x00\x06\x00\x06\x06\x06\x06\x3c"
-		"\x00\x60\x60\x6c\x78\x6c\x66\x00"
-		"\x00\x38\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x66\x7f\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x00\x18\x7e\x18\x18\x18\x0e\x00"
-		"\x00\x00\x66\x66\x66\x66\x3e\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x3e\x36\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x0c\x78"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-	, "Commodore 64 (Lower)", CIOLIB_PETSCIIL}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-	, "Commodore 128 (UPPER)", CIOLIB_PETSCIIU}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3e\x3e\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x7c\x7c\x66\x66\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\xfc\xfc\x30\x30\x30\x30\x36\x36\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x36\x36\x22\x22\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x60\x60\x7c\x66\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x06\x06\x3e\x66\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3e\x00"
-		"\x1c\x36\x30\x78\x30\x30\x30\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x06\x00\x06\x06\x06\x06\x66\x3c"
-		"\x60\x60\x66\x6c\x78\x7c\x66\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3c\x60\x3c\x06\x7c\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x36\x22\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-	, "Commodore 128 (Lower)", CIOLIB_PETSCIIL}
-	,{
-		// 0x40
-		"\x00\x00\x36\x36\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x01\x01\x03\x03\x07\x07\x0f\x0f\x1f\x1f\x3f\x3f\x7f\x7f\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x80\x80\xc0\xc0\xe0\xe0\xf0\xf0\xf8\xf8\xfc\xfc\xfe\xfe\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		// 0x50
-		"\x00\x00\x1c\x1c\x1c\x1c\x77\x77\x77\x77\x08\x08\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x60\x60\x78\x78\x60\x60\x7e\x7e\x18\x18\x1e\x1e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x30\x30\x7e\x7e\x30\x30\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x0c\x0c\x7e\x7e\x0c\x0c\x18\x18\x00\x00\x00\x00"
-		// 0x00
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\xff\xff\x66\x66\x66\x66\xff\xff\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x6c\x6c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x1c\x1c\x36\x36\x1c\x1c\x38\x38\x6f\x6f\x66\x66\x3b\x3b\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0e\x0e\x1c\x1c\x18\x18\x18\x18\x1c\x1c\x0e\x0e\x00\x00"
-		"\x00\x00\x70\x70\x38\x38\x18\x18\x18\x18\x38\x38\x70\x70\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x40\x40\x00\x00"
-		// 0x10
-		"\x00\x00\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x0c\x0c\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x1c\x1c\x3c\x3c\x6c\x6c\x7e\x7e\x0c\x0c\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x3c\x3c\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x06\x06\x0c\x0c\x18\x18\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x60\x60\x30\x30\x18\x18\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		// 0x20
-		"\x00\x00\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x3e\x3e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x00\x00"
-		"\x00\x00\x7c\x7c\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x78\x78\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x3e\x3e\x60\x60\x60\x60\x6e\x6e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x6c\x6c\x78\x78\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x00\x00"
-		"\x00\x00\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x30
-		"\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x6c\x6c\x36\x36\x00\x00"
-		"\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x06\x06\x3c\x3c\x00\x00"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x1e\x1e\x18\x18\x18\x18\x18\x18\x18\x18\x1e\x1e\x00\x00"
-		"\x00\x00\x40\x40\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x78\x78\x00\x00"
-		"\x00\x00\x08\x08\x1c\x1c\x36\x36\x63\x63\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00"
-		// 0x60
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x0e\x0e\x18\x18\x3e\x3e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c"
-		"\x00\x00\x60\x60\x60\x60\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x7f\x7f\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x70
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\x18\x18\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x3e\x3e\x36\x36\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x0c\x0c\x78\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x7e\x7e\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x7e\x7e\x78\x78\x7c\x7c\x6e\x6e\x66\x66\x06\x06\x00\x00"
-		"\x08\x08\x18\x18\x38\x38\x78\x78\x38\x38\x18\x18\x08\x08\x00\x00"
-		"\x10\x10\x18\x18\x1c\x1c\x1e\x1e\x1c\x1c\x18\x18\x10\x10\x00\x00"
-		/* Inverted */
-		// 0xC0
-		"\xff\xff\xc9\xc9\x80\x80\x80\x80\xc1\xc1\xe3\xe3\xf7\xf7\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe0\xe0\xe0\xe0\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x07\x07\x07\x07\xff\xff\xff\xff\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xff\xff\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xfc\xfc\xf8\xf8\xf1\xf1\xe3\xe3\xc7\xc7\x8f\x8f\x1f\x1f\x3f\x3f"
-		"\x3f\x3f\x1f\x1f\x8f\x8f\xc7\xc7\xe3\xe3\xf1\xf1\xf8\xf8\xfc\xfc"
-		"\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		// 0xD0
-		"\xff\xff\xe3\xe3\xe3\xe3\x88\x88\x88\x88\xf7\xf7\xe3\xe3\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xe0\xe0\xe0\xe0\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x00\x00\x00\x00\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xc3\xc3\x81\x81\x81\x81\x81\x81\xc3\xc3\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe0\xe0\xe0\xe0\xff\xff\xff\xff\xff\xff"
-		"\x87\x87\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xe7\xe7\xe1\xe1\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xe7\xe7\xcf\xcf\x81\x81\xcf\xcf\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xf3\xf3\x81\x81\xf3\xf3\xe7\xe7\xff\xff\xff\xff"
-		// 0x80
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x99\x99\x00\x00\x99\x99\x99\x99\x00\x00\x99\x99\xff\xff"
-		"\xe7\xe7\xc1\xc1\x9f\x9f\xc3\xc3\xf9\xf9\x83\x83\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x93\x93\xe7\xe7\xcf\xcf\x99\x99\xb9\xb9\xff\xff"
-		"\xe3\xe3\xc9\xc9\xe3\xe3\xc7\xc7\x90\x90\x99\x99\xc4\xc4\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xf1\xf1\xe3\xe3\xe7\xe7\xe7\xe7\xe3\xe3\xf1\xf1\xff\xff"
-		"\xff\xff\x8f\x8f\xc7\xc7\xe7\xe7\xe7\xe7\xc7\xc7\x8f\x8f\xff\xff"
-		"\xff\xff\x99\x99\xc3\xc3\x00\x00\xc3\xc3\x99\x99\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\x81\x81\xe7\xe7\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xcf\xcf"
-		"\xff\xff\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\xbf\xbf\xff\xff"
-		// 0x90
-		"\xff\xff\xc3\xc3\x99\x99\x91\x91\x89\x89\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xe7\xe7\xc7\xc7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xf3\xf3\xe7\xe7\xcf\xcf\x81\x81\xff\xff"
-		"\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xf3\xf3\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xf3\xf3\xe3\xe3\xc3\xc3\x93\x93\x81\x81\xf3\xf3\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xc3\xc3\x9f\x9f\x83\x83\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x81\x81\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\xcf\xcf\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xc3\xc3\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xc1\xc1\xf9\xf9\xf3\xf3\xc7\xc7\xff\xff"
-		"\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xe7\xe7\xcf\xcf"
-		"\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xff\xff"
-		"\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff"
-		"\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xf3\xf3\xe7\xe7\xff\xff\xe7\xe7\xff\xff"
-		// 0xA0
-		"\xff\xff\xc3\xc3\x99\x99\x91\x91\x91\x91\x9f\x9f\xc1\xc1\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\xff\xff"
-		"\xff\xff\x83\x83\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x9f\x9f\x9f\x9f\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x87\x87\x93\x93\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xc1\xc1\x9f\x9f\x9f\x9f\x91\x91\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xff\xff\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x99\x99\x93\x93\x87\x87\x87\x87\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\xff\xff"
-		"\xff\xff\x99\x99\x89\x89\x81\x81\x81\x81\x91\x91\x99\x99\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		// 0xB0
-		"\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\x93\x93\xc9\xc9\xff\xff"
-		"\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\xc3\xc3\x9f\x9f\xc3\xc3\xf9\xf9\xf9\xf9\xc3\xc3\xff\xff"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\x81\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\xc3\xc3\xc3\xc3\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\xe1\xe1\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe1\xe1\xff\xff"
-		"\xff\xff\xbf\xbf\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xff\xff"
-		"\xff\xff\x87\x87\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x87\x87\xff\xff"
-		"\xff\xff\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff"
-		// 0xE0
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\x81\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\xf9\xf9\xc1\xc1\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\x9f\x9f\x9f\x9f\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x9f\x9f\x9f\x9f\x9f\x9f\xc3\xc3\xff\xff"
-		"\xff\xff\xf9\xf9\xf9\xf9\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x99\x99\x81\x81\x9f\x9f\xc3\xc3\xff\xff"
-		"\xff\xff\xf1\xf1\xe7\xe7\xc1\xc1\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xf9\xf9\x83\x83"
-		"\xff\xff\x9f\x9f\x9f\x9f\x83\x83\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\xe7\xe7\xff\xff\xc7\xc7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xff\xff\xf9\xf9\xff\xff\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xc3\xc3"
-		"\xff\xff\x9f\x9f\x9f\x9f\x93\x93\x87\x87\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\xc7\xc7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x80\x80\x80\x80\x94\x94\x9c\x9c\xff\xff"
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		// 0xF0
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f"
-		"\xff\xff\xff\xff\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xf9\xf9\xf9\xf9"
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xff\xff\xc1\xc1\x9f\x9f\xc3\xc3\xf9\xf9\x83\x83\xff\xff"
-		"\xff\xff\xe7\xe7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xf1\xf1\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\x9c\x9c\x94\x94\x80\x80\xc1\xc1\xc9\xc9\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\xc1\xc1\xf3\xf3\x87\x87"
-		"\xff\xff\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xcf\xcf\x81\x81\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\x81\x81\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\x81\x81\x87\x87\x83\x83\x91\x91\x99\x99\xf9\xf9\xff\xff"
-		"\xf7\xf7\xe7\xe7\xc7\xc7\x87\x87\xc7\xc7\xe7\xe7\xf7\xf7\xff\xff"
-		"\xef\xef\xe7\xe7\xe3\xe3\xe1\xe1\xe3\xe3\xe7\xe7\xef\xef\xff\xff"
-	,	NULL
-	,
-		// 0x40
-		"\x00\x36\x7f\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x01\x03\x07\x0f\x1f\x3f\x7f\xff"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x80\xc0\xe0\xf0\xf8\xfc\xfe\xff"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		// 0x50
-		"\x00\x1c\x1c\x77\x77\x08\x1c\x00"
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\x00\x00\x3c\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x78\x60\x78\x60\x7e\x18\x1e\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x00"
-		"\x00\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x30\x7e\x30\x18\x00\x00"
-		"\x00\x18\x0c\x7e\x0c\x18\x00\x00"
-		// 0x00
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x00\x18\x00"
-		"\x00\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x66\xff\x66\x66\xff\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\x66\x6c\x18\x30\x66\x46\x00"
-		"\x1c\x36\x1c\x38\x6f\x66\x3b\x00"
-		"\x00\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x0e\x1c\x18\x18\x1c\x0e\x00"
-		"\x00\x70\x38\x18\x18\x38\x70\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x06\x0c\x18\x30\x60\x40\x00"
-		// 0x10
-		"\x00\x3c\x66\x6e\x76\x66\x3c\x00"
-		"\x00\x18\x38\x18\x18\x18\x7e\x00"
-		"\x00\x3c\x66\x0c\x18\x30\x7e\x00"
-		"\x00\x7e\x0c\x18\x0c\x66\x3c\x00"
-		"\x00\x0c\x1c\x3c\x6c\x7e\x0c\x00"
-		"\x00\x7e\x60\x7c\x06\x66\x3c\x00"
-		"\x00\x3c\x60\x7c\x66\x66\x3c\x00"
-		"\x00\x7e\x06\x0c\x18\x30\x30\x00"
-		"\x00\x3c\x66\x3c\x66\x66\x3c\x00"
-		"\x00\x3c\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x00\x3c\x66\x0c\x18\x00\x18\x00"
-		// 0x20
-		"\x00\x3c\x66\x6e\x6e\x60\x3e\x00"
-		"\x00\x18\x3c\x66\x66\x7e\x66\x00"
-		"\x00\x7c\x66\x7c\x66\x66\x7c\x00"
-		"\x00\x3c\x66\x60\x60\x66\x3c\x00"
-		"\x00\x78\x6c\x66\x66\x6c\x78\x00"
-		"\x00\x7e\x60\x7c\x60\x60\x7e\x00"
-		"\x00\x7e\x60\x7c\x60\x60\x60\x00"
-		"\x00\x3e\x60\x60\x6e\x66\x3e\x00"
-		"\x00\x66\x66\x7e\x66\x66\x66\x00"
-		"\x00\x7e\x18\x18\x18\x18\x7e\x00"
-		"\x00\x06\x06\x06\x06\x66\x3c\x00"
-		"\x00\x66\x6c\x78\x78\x6c\x66\x00"
-		"\x00\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\x63\x77\x7f\x6b\x63\x63\x00"
-		"\x00\x66\x76\x7e\x7e\x6e\x66\x00"
-		"\x00\x3c\x66\x66\x66\x66\x3c\x00"
-		// 0x30
-		"\x00\x7c\x66\x66\x7c\x60\x60\x00"
-		"\x00\x3c\x66\x66\x66\x6c\x36\x00"
-		"\x00\x7c\x66\x66\x7c\x6c\x66\x00"
-		"\x00\x3c\x60\x3c\x06\x06\x3c\x00"
-		"\x00\x7e\x18\x18\x18\x18\x18\x00"
-		"\x00\x66\x66\x66\x66\x66\x7e\x00"
-		"\x00\x66\x66\x66\x66\x3c\x18\x00"
-		"\x00\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x00\x66\x66\x3c\x3c\x66\x66\x00"
-		"\x00\x66\x66\x3c\x18\x18\x18\x00"
-		"\x00\x7e\x0c\x18\x30\x60\x7e\x00"
-		"\x00\x1e\x18\x18\x18\x18\x1e\x00"
-		"\x00\x40\x60\x30\x18\x0c\x06\x00"
-		"\x00\x78\x18\x18\x18\x18\x78\x00"
-		"\x00\x08\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00"
-		// 0x60
-		"\x00\x18\x3c\x7e\x7e\x3c\x18\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x00\x06\x06\x3e\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x0e\x18\x3e\x18\x18\x18\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x00\x60\x60\x7c\x66\x66\x66\x00"
-		"\x00\x18\x00\x38\x18\x18\x3c\x00"
-		"\x00\x06\x00\x06\x06\x06\x06\x3c"
-		"\x00\x60\x60\x6c\x78\x6c\x66\x00"
-		"\x00\x38\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x66\x7f\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x70
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x00\x18\x7e\x18\x18\x18\x0e\x00"
-		"\x00\x00\x66\x66\x66\x66\x3e\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x3e\x36\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x0c\x78"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x00\x18\x3c\x7e\x7e\x18\x3c\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x7e\x78\x7c\x6e\x66\x06\x00"
-		"\x08\x18\x38\x78\x38\x18\x08\x00"
-		"\x10\x18\x1c\x1e\x1c\x18\x10\x00"
-		/* Inverted */
-		// 0xC0
-		"\xff\xc9\x80\x80\xc1\xe3\xf7\xff"
-		"\xe7\xe7\xe7\xe0\xe0\xe7\xe7\xe7"
-		"\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc"
-		"\xe7\xe7\xe7\x07\x07\xff\xff\xff"
-		"\xe7\xe7\xe7\x07\x07\xe7\xe7\xe7"
-		"\xff\xff\xff\x07\x07\xe7\xe7\xe7"
-		"\xfc\xf8\xf1\xe3\xc7\x8f\x1f\x3f"
-		"\x3f\x1f\x8f\xc7\xe3\xf1\xf8\xfc"
-		"\xfe\xfc\xf8\xf0\xe0\xc0\x80\x00"
-		"\xff\xff\xff\xff\xf0\xf0\xf0\xf0"
-		"\x7f\x3f\x1f\x0f\x07\x03\x01\x00"
-		"\xf0\xf0\xf0\xf0\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\xff\xff\xff\xff"
-		"\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\xff\xff\xff\xff\x0f\x0f\x0f\x0f"
-		// 0xD0
-		"\xff\xe3\xe3\x88\x88\xf7\xe3\xff"
-		"\xff\xff\xff\xe0\xe0\xe7\xe7\xe7"
-		"\xff\xff\xff\x00\x00\xff\xff\xff"
-		"\xe7\xe7\xe7\x00\x00\xe7\xe7\xe7"
-		"\xff\xff\xc3\x81\x81\x81\xc3\xff"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\xff\x00\x00\xe7\xe7\xe7"
-		"\xe7\xe7\xe7\x00\x00\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xe7\xe7\xe7\xe0\xe0\xff\xff\xff"
-		"\x87\x9f\x87\x9f\x81\xe7\xe1\xff"
-		"\xff\xe7\xc3\x81\xe7\xe7\xe7\xff"
-		"\xff\xe7\xe7\xe7\x81\xc3\xe7\xff"
-		"\xff\xe7\xcf\x81\xcf\xe7\xff\xff"
-		"\xff\xe7\xf3\x81\xf3\xe7\xff\xff"
-		// 0x80
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xe7\xe7\xe7\xe7\xff\xe7\xff"
-		"\xff\x99\x99\x99\xff\xff\xff\xff"
-		"\xff\x99\x00\x99\x99\x00\x99\xff"
-		"\xe7\xc1\x9f\xc3\xf9\x83\xe7\xff"
-		"\xff\x99\x93\xe7\xcf\x99\xb9\xff"
-		"\xe3\xc9\xe3\xc7\x90\x99\xc4\xff"
-		"\xff\xe7\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xf1\xe3\xe7\xe7\xe3\xf1\xff"
-		"\xff\x8f\xc7\xe7\xe7\xc7\x8f\xff"
-		"\xff\x99\xc3\x00\xc3\x99\xff\xff"
-		"\xff\xe7\xe7\x81\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xff\xe7\xe7\xcf"
-		"\xff\xff\xff\x81\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xe7\xe7\xff"
-		"\xff\xf9\xf3\xe7\xcf\x9f\xbf\xff"
-		// 0x90
-		"\xff\xc3\x99\x91\x89\x99\xc3\xff"
-		"\xff\xe7\xc7\xe7\xe7\xe7\x81\xff"
-		"\xff\xc3\x99\xf3\xe7\xcf\x81\xff"
-		"\xff\x81\xf3\xe7\xf3\x99\xc3\xff"
-		"\xff\xf3\xe3\xc3\x93\x81\xf3\xff"
-		"\xff\x81\x9f\x83\xf9\x99\xc3\xff"
-		"\xff\xc3\x9f\x83\x99\x99\xc3\xff"
-		"\xff\x81\xf9\xf3\xe7\xcf\xcf\xff"
-		"\xff\xc3\x99\xc3\x99\x99\xc3\xff"
-		"\xff\xc3\x99\xc1\xf9\xf3\xc7\xff"
-		"\xff\xff\xe7\xe7\xff\xe7\xe7\xff"
-		"\xff\xff\xe7\xe7\xff\xe7\xe7\xcf"
-		"\xf9\xf3\xe7\xcf\xe7\xf3\xf9\xff"
-		"\xff\xff\x81\xff\xff\x81\xff\xff"
-		"\x9f\xcf\xe7\xf3\xe7\xcf\x9f\xff"
-		"\xff\xc3\x99\xf3\xe7\xff\xe7\xff"
-		// 0xA0
-		"\xff\xc3\x99\x91\x91\x9f\xc1\xff"
-		"\xff\xe7\xc3\x99\x99\x81\x99\xff"
-		"\xff\x83\x99\x83\x99\x99\x83\xff"
-		"\xff\xc3\x99\x9f\x9f\x99\xc3\xff"
-		"\xff\x87\x93\x99\x99\x93\x87\xff"
-		"\xff\x81\x9f\x83\x9f\x9f\x81\xff"
-		"\xff\x81\x9f\x83\x9f\x9f\x9f\xff"
-		"\xff\xc1\x9f\x9f\x91\x99\xc1\xff"
-		"\xff\x99\x99\x81\x99\x99\x99\xff"
-		"\xff\x81\xe7\xe7\xe7\xe7\x81\xff"
-		"\xff\xf9\xf9\xf9\xf9\x99\xc3\xff"
-		"\xff\x99\x93\x87\x87\x93\x99\xff"
-		"\xff\x9f\x9f\x9f\x9f\x9f\x81\xff"
-		"\xff\x9c\x88\x80\x94\x9c\x9c\xff"
-		"\xff\x99\x89\x81\x81\x91\x99\xff"
-		"\xff\xc3\x99\x99\x99\x99\xc3\xff"
-		// 0xB0
-		"\xff\x83\x99\x99\x83\x9f\x9f\xff"
-		"\xff\xc3\x99\x99\x99\x93\xc9\xff"
-		"\xff\x83\x99\x99\x83\x93\x99\xff"
-		"\xff\xc3\x9f\xc3\xf9\xf9\xc3\xff"
-		"\xff\x81\xe7\xe7\xe7\xe7\xe7\xff"
-		"\xff\x99\x99\x99\x99\x99\x81\xff"
-		"\xff\x99\x99\x99\x99\xc3\xe7\xff"
-		"\xff\x9c\x9c\x94\x80\x88\x9c\xff"
-		"\xff\x99\x99\xc3\xc3\x99\x99\xff"
-		"\xff\x99\x99\xc3\xe7\xe7\xe7\xff"
-		"\xff\x81\xf3\xe7\xcf\x9f\x81\xff"
-		"\xff\xe1\xe7\xe7\xe7\xe7\xe1\xff"
-		"\xff\xbf\x9f\xcf\xe7\xf3\xf9\xff"
-		"\xff\x87\xe7\xe7\xe7\xe7\x87\xff"
-		"\xff\xf7\xe3\xc9\x9c\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\x00\xff"
-		// 0xE0
-		"\xff\xe7\xc3\x81\x81\xc3\xe7\xff"
-		"\xff\xff\xc3\xf9\xc1\x99\xc1\xff"
-		"\xff\x9f\x9f\x83\x99\x99\x83\xff"
-		"\xff\xff\xc3\x9f\x9f\x9f\xc3\xff"
-		"\xff\xf9\xf9\xc1\x99\x99\xc1\xff"
-		"\xff\xff\xc3\x99\x81\x9f\xc3\xff"
-		"\xff\xf1\xe7\xc1\xe7\xe7\xe7\xff"
-		"\xff\xff\xc1\x99\x99\xc1\xf9\x83"
-		"\xff\x9f\x9f\x83\x99\x99\x99\xff"
-		"\xff\xe7\xff\xc7\xe7\xe7\xc3\xff"
-		"\xff\xf9\xff\xf9\xf9\xf9\xf9\xc3"
-		"\xff\x9f\x9f\x93\x87\x93\x99\xff"
-		"\xff\xc7\xe7\xe7\xe7\xe7\xc3\xff"
-		"\xff\xff\x99\x80\x80\x94\x9c\xff"
-		"\xff\xff\x83\x99\x99\x99\x99\xff"
-		"\xff\xff\xc3\x99\x99\x99\xc3\xff"
-		// 0xF0
-		"\xff\xff\x83\x99\x99\x83\x9f\x9f"
-		"\xff\xff\xc1\x99\x99\xc1\xf9\xf9"
-		"\xff\xff\x83\x99\x9f\x9f\x9f\xff"
-		"\xff\xff\xc1\x9f\xc3\xf9\x83\xff"
-		"\xff\xe7\x81\xe7\xe7\xe7\xf1\xff"
-		"\xff\xff\x99\x99\x99\x99\xc1\xff"
-		"\xff\xff\x99\x99\x99\xc3\xe7\xff"
-		"\xff\xff\x9c\x94\x80\xc1\xc9\xff"
-		"\xff\xff\x99\xc3\xe7\xc3\x99\xff"
-		"\xff\xff\x99\x99\x99\xc1\xf3\x87"
-		"\xff\xff\x81\xf3\xe7\xcf\x81\xff"
-		"\xff\xe7\xc3\x81\x81\xe7\xc3\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\x81\x87\x83\x91\x99\xf9\xff"
-		"\xf7\xe7\xc7\x87\xc7\xe7\xf7\xff"
-		"\xef\xe7\xe3\xe1\xe3\xe7\xef\xff"
-	, "Atari", CIOLIB_ATASCII}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\x83\x83\x39\x39\x29\x29\x23\x23\x3f\x3f\x81\x81\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x03\x03\x99\x99\x93\x93\x99\x99\x99\x99\x03\x03\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x3f\x3f\x3f\x3f\x39\x39\x83\x83\xf7\xf7"
-		"\xff\xff\x0f\x0f\x87\x87\x93\x93\x99\x99\x99\x99\x03\x03\xff\xff"
-		"\xff\xff\x01\x01\x9f\x9f\x83\x83\x9f\x9f\x99\x99\x03\x03\xf7\xf7"
-		"\xfb\xfb\x01\x01\x9c\x9c\x87\x87\x9f\x9f\x9f\x9f\x1f\x1f\xff\xff"
-		"\xf7\xf7\x83\x83\x39\x39\x3f\x3f\x31\x31\x39\x39\x81\x81\xfd\xfd"
-		"\xff\xff\x39\x39\x39\x39\x21\x21\x39\x39\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xfd\xfd\xf9\xf9\xf9\xf9\xf9\xf9\x19\x19\x39\x39\x03\x03\x7f\x7f"
-		"\xff\xff\x39\x39\x33\x33\x27\x27\x33\x33\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x1f\x1f\x9f\x9f\x9f\x9f\x9f\x9f\x99\x99\x03\x03\xf7\xf7"
-		"\xff\xff\x39\x39\x11\x11\x01\x01\x29\x29\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x39\x39\x29\x29\x21\x21\x31\x31\x39\x39\x39\x39\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x03\x03\x99\x99\x99\x99\x93\x93\x9f\x9f\x1f\x1f\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x39\x39\x29\x29\x35\x35\x8b\x8b\xfd\xfd"
-		"\xff\xff\x03\x03\x99\x99\x93\x93\x99\x99\x99\x99\x19\x19\xfb\xfb"
-		"\xff\xff\x83\x83\x3f\x3f\x83\x83\xf9\xf9\x39\x39\x03\x03\x7f\x7f"
-		"\xf7\xf7\x03\x03\xc9\xc9\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xdf\xdf"
-		"\x7f\x7f\x31\x31\x33\x33\x33\x33\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\x7f\x7f\x39\x39\x39\x39\x93\x93\x93\x93\xc7\xc7\xef\xef\xff\xff"
-		"\x7f\x7f\x39\x39\x39\x39\x29\x29\x01\x01\x11\x11\x39\x39\xff\xff"
-		"\x3f\x3f\x39\x39\x39\x39\xa3\xa3\x39\x39\x39\x39\x39\x39\xfd\xfd"
-		"\xfd\xfd\x39\x39\x39\x39\xa3\xa3\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x01\x01\xf3\xf3\xe7\xe7\xcd\xcd\x99\x99\x81\x81\xfd\xfd"
-		"\xff\xff\x81\x81\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\x81\x81\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xfe\xfe"
-		"\xff\xff\x81\x81\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\x81\x81\xff\xff"
-		"\xe7\xe7\xc3\xc3\x99\x99\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x1c\x1c\x1c\x1c\x18\x18\x18\x18\x00\x00\x18\x18\x10\x10"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xfc\xfc\x30\x30\x00\x00"
-		"\x63\x63\xa6\xa6\xcc\xcc\x18\x18\x33\x33\x65\x65\xc6\xc6\x80\x80"
-		"\x3c\x3c\x66\x66\x64\x64\x7b\x7b\xce\xce\xc6\xc6\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x7c\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\x8c\x8c\x38\x38\x66\x66\xfe\xfe\x00\x00"
-		"\x20\x20\x7c\x7c\xc6\xc6\x1e\x1e\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x06\x06\x06\x06\x02\x02"
-		"\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\x06\x06\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x7c\x7c\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x80\x80\xfe\xfe\xcc\xcc\x98\x98\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x18\x18\x30\x30\x60\x60\xc0\xc0\x60\x60\x30\x30\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x00\x00\x18\x18\x10\x10"
-		"\x00\x00\x7c\x7c\xc6\xc6\xd6\xd6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xfc\xfc\x66\x66\x6c\x6c\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x08\x08"
-		"\x00\x00\xf0\xf0\x78\x78\x6c\x6c\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\xfe\xfe\x60\x60\x7c\x7c\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\x04\x04\xfe\xfe\x63\x63\x78\x78\x60\x60\x60\x60\xe0\xe0\x00\x00"
-		"\x08\x08\x7c\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7e\x7f\x02\x02"
-		"\x00\x00\xc6\xc6\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x02\x02\x06\x06\x06\x06\x06\x06\xe6\xe6\xc6\xc6\xfc\xfc\x80\x80"
-		"\x00\x00\xc6\xc6\xcc\xcc\xd8\xd8\xcc\xcc\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xe0\xe0\x60\x60\x60\x60\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xc6\xc6\xd6\xd6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xfc\xfc\x66\x66\x66\x66\x6c\x6c\x60\x60\xe0\xe0\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xd6\xd6\xca\xca\x74\x74\x02\x02"
-		"\x00\x00\xfc\xfc\x66\x66\x6c\x6c\x66\x66\x66\x66\xe6\xe6\x04\x04"
-		"\x00\x00\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\xfc\xfc\x80\x80"
-		"\x08\x08\xfc\xfc\x36\x36\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x80\x80\xce\xce\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x10\x10\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x5c\x5c\xc6\xc6\xc6\xc6\xc6\xc6\x02\x02"
-		"\x02\x02\xc6\xc6\xc6\xc6\x5c\x5c\x18\x18\x18\x18\x18\x18\x08\x08"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x32\x32\x66\x66\xfe\xfe\x02\x02"
-		"\x00\x00\x7e\x7e\x30\x30\x30\x30\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x00\x00\x7e\x7e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7e\x7e\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\xe0\xe0\x60\x60\x6c\x6c\x66\x66\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\xc2\xc2\xc0\xc0\xc2\xc2\x7e\x7e\x00\x00"
-		"\x0e\x0e\x0c\x0c\x6c\x6c\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x1e\x1e\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x76\x76\x06\x06\xfc\xfc"
-		"\xe0\xe0\x60\x60\x6c\x6c\x66\x66\x66\x66\x66\x66\xe6\xe6\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x10"
-		"\x02\x02\x06\x06\x00\x00\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c"
-		"\xe0\xe0\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\xe6\xe6\x02\x02"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x10"
-		"\x00\x00\x00\x00\xfc\xfc\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\x80\x80"
-		"\x00\x00\x00\x00\xfc\xfc\x66\x66\x66\x66\x66\x66\xe6\xe6\x04\x04"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xfc\xfc\x66\x66\x66\x66\x6c\x6c\x60\x60\xe0\xe0"
-		"\x00\x00\x00\x00\x7e\x7e\xcc\xcc\xcc\xcc\x6c\x6c\x0c\x0c\x0e\x0e"
-		"\x00\x00\x08\x08\xfc\xfc\x66\x66\x60\x60\x60\x60\x60\x60\x40\x40"
-		"\x00\x00\x00\x00\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xfc\xfc\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x00\x00\x80\x80\xce\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x00\x00"
-		"\x00\x00\x02\x02\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x5c\x5c\xc6\xc6\xc6\xc6\x02\x02"
-		"\x00\x00\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x5e\x5e\x06\x06\x7c\x7c"
-		"\x00\x00\x00\x00\xfe\xfe\x8c\x8c\x18\x18\x32\x32\xfe\xfe\x00\x00"
-		"\x1c\x1c\x30\x30\x30\x30\x60\x60\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x38\x38\x0c\x0c\x0c\x0c\x06\x06\x0c\x0c\x0c\x0c\x38\x38\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x9f\x9f\xe7\xe7\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\xf3\xf3\xcf\xcf\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x83\x83\x39\x39\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x89\x89\x23\x23\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x39\x39\xff\xff\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x83\x83\x39\x39\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\xff\xff\x80\x80\x33\x33\x20\x20\x33\x33\x33\x33\x30\x30\x77\x77"
-		"\xff\xff\x83\x83\x39\x39\x3f\x3f\x3f\x3f\x39\x39\x83\x83\xcf\xcf"
-		"\x9f\x9f\xcf\xcf\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\xe7\xe7\xcf\xcf\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\xcf\xcf\x33\x33\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\x33\x33\xff\xff\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\x3f\x3f\xcf\xcf\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xf3\xf3\xcf\xcf\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xcf\xcf\x33\x33\xff\xff\x03\x03\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\x33\x33\xff\xff\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xff\xff\x1f\x1f\x8f\x8f\x87\x87\x13\x13\x99\x99\x03\x03\xff\xff"
-		"\x89\x89\x23\x23\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xcf\xcf\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\xff\xff\x87\x87\x33\x33\x33\x33\x87\x87\xff\xff"
-		"\x89\x89\x23\x23\xff\xff\x83\x83\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x39\x39\xff\xff\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\xff\xff\x3c\x3c\x99\x99\xe7\xe7\x99\x99\x3c\x3c\xff\xff"
-		"\xfe\xfe\x85\x85\x3b\x3b\x35\x35\x29\x29\x59\x59\xa3\xa3\x7f\x7f"
-		"\xcf\xcf\xe7\xe7\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xe7\xe7\xcf\xcf\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xcf\xcf\x33\x33\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xff\xff\x33\x33\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\xff\xff"
-		"\x0f\x0f\x9f\x9f\x83\x83\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x0f\x0f"
-		"\x83\x83\x39\x39\x39\x39\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\x10\x10\x18\x18\x00\x00\x18\x18\x18\x18\x1c\x1c\x1c\x1c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\xc0\xc0\xc0\xc0\xc0\xc0\x7e\x7e\x18\x18"
-		"\x08\x08\x3c\x3c\x66\x66\xf8\xf8\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\x10\x10\xfe\xfe\x10\x10\x10\x10"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7c\x7c\xc0\xc0\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x03\x03\x3e\x3e"
-		"\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x7c\x82\x82\x9a\x9a\xa2\xa2\xa2\xa2\x9a\x9a\x82\x82\x7c\x7c"
-		"\x00\x00\x78\x78\xcc\xcc\xcc\xcc\xf6\xf6\x00\x00\xfe\xfe\x00\x00"
-		"\x00\x00\x12\x12\x6c\x6c\xd8\xd8\x6c\x6c\x12\x12\x00\x00\x00\x00"
-		"\xfe\xfe\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x7c\x82\x82\xb2\xb2\xaa\xaa\xb2\xb2\xaa\xaa\x82\x82\x7c\x7c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\xfc\xfc\x30\x30\x30\x30\x00\x00\xfc\xfc\x00\x00"
-		"\x70\x70\xd8\xd8\x30\x30\x60\x60\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\x18\x18\x70\x70\x18\x18\xf0\xf0\x00\x00\x00\x00\x00\x00"
-		"\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\xff\xff\xc0\xc0"
-		"\x7e\x7e\xec\xec\xec\xec\x6c\x6c\x2c\x2c\x2c\x2c\x2e\x2e\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x60\x60\xe0\xe0\x60\x60\x60\x60\xf0\xf0\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\x78\x78\x00\x00\xfc\xfc\x00\x00\x00\x00"
-		"\x00\x00\x48\x48\x36\x36\x1b\x1b\x36\x36\x48\x48\x00\x00\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7b\x7b\x37\x37\x6f\x6f\xc3\xc3\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7e\x7e\x33\x33\x66\x66\xcf\xcf\x00\x00"
-		"\xc3\xc3\xe6\xe6\x6c\x6c\xdb\xdb\x37\x37\x6f\x6f\xc3\xc3\x00\x00"
-		"\x08\x08\x18\x18\x00\x00\x18\x18\x30\x30\x66\x66\x3c\x3c\x00\x00"
-		"\x60\x60\x18\x18\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x0c\x0c\x30\x30\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x76\x76\xdc\xdc\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x00\x00\x7f\x7f\xcc\xcc\xdf\xdf\xcc\xcc\xcc\xcc\xcf\xcf\x88\x88"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x60\x60\x30\x30\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\x18\x18\x30\x30\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\x30\x30\xcc\xcc\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\xcc\xcc\x00\x00\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\xc0\xc0\x30\x30\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x0c\x0c\x30\x30\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x30\x30\xcc\xcc\x00\x00\xfc\xfc\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\xcc\xcc\x00\x00\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x00\x00\xe0\xe0\x70\x70\x78\x78\xec\xec\x66\x66\xfc\xfc\x00\x00"
-		"\x76\x76\xdc\xdc\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x00\x00\x78\x78\xcc\xcc\xcc\xcc\x78\x78\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xc3\xc3\x66\x66\x18\x18\x66\x66\xc3\xc3\x00\x00"
-		"\x01\x01\x7a\x7a\xc4\xc4\xca\xca\xd6\xd6\xa6\xa6\x5c\x5c\x80\x80"
-		"\x30\x30\x18\x18\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x30\x30\xcc\xcc\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\xcc\xcc\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x00\x00"
-		"\xf0\xf0\x60\x60\x7c\x7c\x66\x66\x7c\x7c\x60\x60\x60\x60\xf0\xf0"
-		"\x7c\x7c\xc6\xc6\xc6\xc6\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x18\x18\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x76\x76\xdc\xdc\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7e\x7e\xc8\xc8\x7f\x7f\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x18\x18\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x7e\x7e\x18\x18\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\xfc\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x02\x02"
-		"\x30\x30\x18\x18\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x30\x30\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x03\x03\x3e\x3e\x6e\x6e\x7e\x7e\x76\x76\x7c\x7c\xc0\xc0"
-		"\x76\x76\xdc\xdc\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\xf0\xf0"
-		"\xf0\xf0\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\xf0\xf0"
-		"\x00\x00\xc6\xc6\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\xf0\xf0"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x1c\x1c\x1c\x18\x18\x18\x00\x18\x18\x10\x00\x00\x00\x00"
-		"\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x00\x28\x7e\xa8\xfc\x7e\x2a\xfc\x28\x00\x00\x00\x00\x00"
-		"\x00\x01\x33\x56\x6c\x18\x36\x6a\xcc\x80\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\x68\xd2\xcc\xcc\x7a\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x0c\x18\x30\x30\x30\x30\x18\x0c\x03\x00\x00\x00\x00"
-		"\xc0\x30\x18\x0c\x0c\x0c\x0c\x18\x30\xc0\x00\x00\x00\x00"
-		"\x00\xc6\x6c\x38\xfe\x38\x6c\xc6\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x01\x03\x06\x0c\x08\x18\x30\x20\x60\xc0\x80\x00\x00\x00"
-		"\x00\x7c\xce\xd6\xd6\xd6\xd6\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x46\x1c\x30\x62\x66\x7e\x00\x00\x00\x00\x00"
-		"\x20\x7c\xc6\x06\x1e\x06\x06\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x40\x66\x66\x66\x3e\x06\x06\x06\x06\x02\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xfc\x06\x86\xc6\xfc\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x80\xfe\xc6\x8c\x8c\x18\x18\x30\x30\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x60\x30\x18\x0c\x06\x03\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\x46\x0c\x18\x18\x00\x18\x18\x10\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xd6\xd6\xd6\xdc\xc0\x7c\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xde\xc6\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x6c\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x08\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x6c\x66\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\xfe\x60\x60\x7c\x60\x60\x66\xfc\x08\x00\x00\x00\x00"
-		"\x04\xfc\x66\x62\x78\x60\x60\x60\xe0\x00\x00\x00\x00\x00"
-		"\x02\x7e\xc6\xc2\xc0\xce\xc6\xc6\x7e\x02\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xde\xc6\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\x7e\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x02\x06\x06\x06\x06\xe6\xc6\xc6\xfc\x80\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xcc\xd8\xcc\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x62\x62\x66\xfc\x04\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xee\xfe\xd6\xd6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xc6\xd6\xd6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x6c\x60\x60\xe0\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xd6\xce\x7c\x02\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x6c\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x00\x7e\xc0\xc0\x7c\x06\x86\xc6\xfc\x80\x00\x00\x00\x00"
-		"\x04\xfc\x36\x32\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x80\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xd6\xd6\xfe\xee\xee\xc6\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xc6\x5c\xc6\xc6\xc6\xc6\x02\x00\x00\x00\x00"
-		"\x02\xc6\xc6\xc6\x5c\x18\x18\x18\x18\x08\x00\x00\x00\x00"
-		"\x00\xfe\x86\x0c\x18\x32\x62\xc6\xfe\x02\x00\x00\x00\x00"
-		"\x00\x7e\x30\x30\x30\x30\x30\x30\x7e\x00\x00\x00\x00\x00"
-		"\x80\xc0\x60\x30\x10\x18\x0c\x04\x06\x03\x01\x00\x00\x00"
-		"\x00\x7e\x0c\x0c\x0c\x0c\x0c\x0c\x7e\x00\x00\x00\x00\x00"
-		"\x18\x3c\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\xe0\x60\x6c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x0e\x0c\x6c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x1e\x30\x7c\x30\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x76\x06\x06\xfc\x00\x00\x00"
-		"\xe0\x60\x6c\x66\x66\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x18\x18\x10\x00\x00\x00\x00"
-		"\x06\x00\x06\x06\x06\x46\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x00\x00\x00\x00"
-		"\x00\x00\xfc\xd6\xd6\xd6\xd6\xd6\xd6\x80\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x6c\x60\x60\xe0\x00\x00\x00"
-		"\x00\x00\x7e\xcc\xcc\xcc\xcc\x6c\x0c\x0c\x0e\x00\x00\x00"
-		"\x00\x08\xfc\x66\x60\x60\x60\x60\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x30\x30\x7c\x30\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x00\x80\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x00\x80\xc6\xc6\xc6\x6c\x6c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x02\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x5c\xc6\xc6\xc6\x02\x00\x00\x00\x00"
-		"\x00\x80\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x86\x0c\x38\x60\xc2\xfe\x00\x00\x00\x00\x00"
-		"\x00\x07\x1c\x30\x30\xe0\x30\x30\x1c\x07\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\xe0\x38\x0c\x0c\x07\x0c\x0c\x38\xe0\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xb4\xe8\xb2\xe8\xb4\xe8\xb2\xe8\xb4\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x18\x18\x00\x18\x18\x1c\x1c\x1c\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\xd0\xd0\xd0\xd0\x7c\x10\x00\x00\x00\x00\x00"
-		"\x08\x3c\x66\x60\xf8\x60\x62\x66\xfc\x08\x00\x00\x00\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x38\x10\xfe\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x7c\xc0\x7c\xc6\xc6\xc6\x7c\x06\x7c\x00\x00\x00\x00\x00"
-		"\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xf6\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x82\xb2\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf0\x18\x70\x18\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x60\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xcc\xcc\xcc\xcc\xfe\xc0\x00\x00\x00\x00"
-		"\x00\x7e\xec\xec\xec\x6c\x2c\x2c\x2e\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x30\x00\x00\x00"
-		"\x60\xe0\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x42\xc4\x48\x56\x2a\x4f\x82\x02\x00\x00\x00\x00\x00"
-		"\x00\x42\xc4\x48\x56\x2a\x46\x88\x0e\x00\x00\x00\x00\x00"
-		"\xc0\x22\xe4\x28\xd6\x2a\x4f\x82\x02\x00\x00\x00\x00\x00"
-		"\x08\x18\x00\x18\x18\x30\x62\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x18\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x0c\x30\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\xc6\x00\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\x7f\xcc\xcc\xde\xcc\xcc\xcc\xcf\x80\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x30\x00\x00\x00\x00"
-		"\x60\x30\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x30\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x20\x50\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\xcc\x00\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x30\x0c\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x30\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x6c\xf6\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x76\xdc\xc6\xe6\xf6\xde\xce\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x42\x66\x3c\x18\x3c\x66\x42\x00\x00\x00\x00\x00\x00"
-		"\x00\x7a\xc4\xca\xd6\xd6\xa6\x46\xbc\x00\x00\x00\x00\x00"
-		"\xb0\xda\xc4\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x98\xb6\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x90\xaa\xc4\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\xa8\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x18\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x00\xf0\x60\x7c\x66\x66\x7c\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xdc\xc6\xc6\xc6\xdc\xc0\x00\x00\x00\x00"
-		"\x30\x18\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x16\x16\x7c\xd0\xd0\x7c\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x30\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x30\x18\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x0c\x18\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x08\x14\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x14\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x18\x7e\x18\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\xfc\x66\x66\x66\x66\x66\xe6\x02\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x28\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x00\x7c\x00\x10\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x02\x7c\xce\xd6\xd6\xd6\xe6\x7c\x80\x00\x00\x00\x00"
-		"\x76\x9c\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x18\xb0\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x10\xa8\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x28\x80\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x18\xb0\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\xfc\x00\x00\x00"
-		"\x00\x00\xf0\x60\x7c\x66\x66\x7c\x60\xf0\x00\x00\x00\x00"
-		"\x28\x80\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\xfc\x00\x00\x00"
-	, NULL, "P0T NOoDLE (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x06\x06\x3c\x3c\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x1c\x1c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7c\x7c\x60\x60\x7c\x7c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x3c\x3c\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x06\x06\x18\x18\x60\x60\x18\x18\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x18\x18\x06\x06\x18\x18\x60\x60\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x60\x60\x6e\x6e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfc\xfc\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\x70\x18\x18\x18\x18\x0e\x0e\x18\x18\x18\x18\x70\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x9d\x9d\xa1\xa1\xa1\xa1\x9d\x9d\x42\x42\x3c\x3c"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\x3e\x3e\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x32\x32\x66\x66\xcf\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd9\xd9\x33\x33\x67\x67\x01\x01"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\xff\xff\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-	, NULL
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\x66\xac\xd8\x36\x6a\xcc\x00"
-		"\x38\x6c\x68\x76\xdc\xce\x7b\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x03\x06\x0c\x18\x30\x60\xc0\x80"
-		"\x3c\x66\x6e\x7e\x76\x66\x3c\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x00"
-		"\x3c\x06\x3c\x60\x60\x60\x7e\x00"
-		"\x7c\x06\x1c\x06\x06\x06\x7c\x00"
-		"\x0c\xcc\xcc\xcc\xfe\x0c\x0c\x00"
-		"\x7c\x60\x7c\x06\x06\x06\x7c\x00"
-		"\x3c\x60\x7c\x66\x66\x66\x3c\x00"
-		"\x7e\x06\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x3c\x66\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x00\x06\x18\x60\x18\x06\x00\x00"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x00\x60\x18\x06\x18\x60\x00\x00"
-		"\x3c\x66\x06\x1c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xd6\xde\xc0\x78\x00"
-		"\x3c\x66\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x66\x7c\x66\x66\x66\x7c\x00"
-		"\x1e\x30\x60\x60\x60\x30\x1e\x00"
-		"\x7c\x66\x66\x66\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x78\x60\x7e\x00"
-		"\x7e\x60\x60\x60\x78\x60\x60\x00"
-		"\x3c\x60\x6e\x66\x66\x66\x3e\x00"
-		"\x66\x66\x66\x66\x7e\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x0e\x06\x06\x06\x06\x06\x3c\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x78\xcc\xcc\xcc\xcc\xdc\x7e\x00"
-		"\x7c\x66\x66\x66\x7c\x66\x66\x00"
-		"\x3c\x60\x3c\x06\x06\x06\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc3\x66\x3c\x18\x3c\x66\xc3\x00"
-		"\xc3\x66\x3c\x18\x18\x18\x18\x00"
-		"\xfe\x0c\x18\x30\x60\xc0\xfc\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x03\x01"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x60\x60\x7c\x66\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x06\x06\x3e\x66\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x30\x30\x30\x7c\x30\x30\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x3c"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x18\x00\x18\x18\x18\x18\x0c\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x0c\x78"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x18\x18\x18\x18\x18\x18\x0c\x00"
-		"\x00\x00\xec\xfe\xd6\xc6\xc6\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x3e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x60\x3c\x06\x7c\x00"
-		"\x30\x30\x7c\x30\x30\x30\x1c\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xc6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x3c"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x72\x9c\x00\x00\x00\x00\x00\x00"
-		"\x0f\x3c\xf0\xc3\x0f\x3c\xf0\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x0c\x3e\x6c\x3e\x0c\x00\x00"
-		"\x1c\x36\x30\x78\x30\x30\x7e\x00"
-		"\x42\x3c\x66\x3c\x42\x00\x00\x00"
-		"\xc3\x66\x3c\x18\x3c\x18\x18\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x3c\x60\x3c\x66\x3c\x06\x3c\x00"
-		"\x66\x66\x00\x00\x00\x00\x00\x00"
-		"\x3c\x42\x9d\xa1\xa1\x9d\x42\x3c"
-		"\x1c\x24\x44\x3c\x00\x7e\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x3e\x06\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x3c\x42\xb9\xa5\xb9\xa5\x42\x3c"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x78\x0c\x18\x0c\x78\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x60"
-		"\x3e\x7a\x7a\x3a\x0a\x0a\x0a\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x30\x70\x30\x30\x30\x00\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x40\xc6\x4c\x58\x32\x66\xcf\x02"
-		"\x40\xc6\x4c\x58\x3e\x62\xc4\x0e"
-		"\xc0\x23\x66\x2c\xd9\x33\x67\x01"
-		"\x18\x00\x18\x30\x60\x66\x3c\x00"
-		"\x30\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x0c\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x18\x66\x3c\x66\x7e\x66\x66\x00"
-		"\x71\x8e\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x00\x3c\x66\x7e\x66\x66\x00"
-		"\x18\x24\x3c\x66\x7e\x66\x66\x00"
-		"\x1f\x3c\x3c\x6f\x7c\xcc\xcf\x00"
-		"\x1e\x30\x60\x60\x30\x1e\x0c\x18"
-		"\x30\x18\x7e\x60\x78\x60\x7e\x00"
-		"\x0c\x18\x7e\x60\x78\x60\x7e\x00"
-		"\x18\x66\x7e\x60\x78\x60\x7e\x00"
-		"\x66\x00\x7e\x60\x78\x60\x7e\x00"
-		"\x30\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x18\x66\x3c\x18\x18\x18\x3c\x00"
-		"\x66\x00\x3c\x18\x18\x18\x3c\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x71\xce\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x3c\x66\x66\x66\x3c\x00"
-		"\x0c\x18\x3c\x66\x66\x66\x3c\x00"
-		"\x18\x66\x3c\x66\x66\x66\x3c\x00"
-		"\x71\x8e\x3c\x66\x66\x66\x3c\x00"
-		"\xc3\x3c\x66\x66\x66\x66\x3c\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x3f\x66\x6e\x7e\x76\x66\xfc\x00"
-		"\x30\x18\x66\x66\x66\x66\x3c\x00"
-		"\x0c\x18\x66\x66\x66\x66\x3c\x00"
-		"\x18\x24\x66\x66\x66\x66\x3c\x00"
-		"\x66\x00\x66\x66\x66\x66\x3c\x00"
-		"\x06\x08\xc3\x66\x3c\x18\x18\x00"
-		"\xc0\xc0\xfc\xc6\xfc\xc0\xc0\x00"
-		"\x3c\x66\x66\x6c\x66\x66\x6c\x60"
-		"\x30\x18\x3c\x06\x3e\x66\x3e\x00"
-		"\x0c\x18\x3c\x06\x3e\x66\x3e\x00"
-		"\x18\x66\x3c\x06\x3e\x66\x3e\x00"
-		"\x71\x8e\x3c\x06\x3e\x66\x3e\x00"
-		"\x66\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x18\x24\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x00\x7e\x1b\x7f\xd8\x77\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x18"
-		"\x30\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x0c\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x18\x66\x3c\x66\x7e\x60\x3c\x00"
-		"\x66\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x30\x18\x00\x18\x18\x18\x0c\x00"
-		"\x0c\x18\x00\x18\x18\x18\x0c\x00"
-		"\x18\x66\x00\x18\x18\x18\x0c\x00"
-		"\x00\x66\x00\x18\x18\x18\x0c\x00"
-		"\x60\xfc\x18\x3c\x66\x66\x3c\x00"
-		"\x71\x8e\x00\x7c\x66\x66\x66\x00"
-		"\x30\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x0c\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x18\x66\x00\x3c\x66\x66\x3c\x00"
-		"\x71\x8e\x00\x3c\x66\x66\x3c\x00"
-		"\x00\x66\x00\x3c\x66\x66\x3c\x00"
-		"\x00\x18\x00\xff\x00\x18\x00\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x30\x18\x00\x66\x66\x66\x3e\x00"
-		"\x0c\x18\x00\x66\x66\x66\x3e\x00"
-		"\x18\x66\x00\x66\x66\x66\x3e\x00"
-		"\x00\x66\x00\x66\x66\x66\x3e\x00"
-		"\x0c\x18\x00\x66\x66\x3c\x18\x30"
-		"\xc0\xc0\xf8\xcc\xcc\xf8\xc0\xc0"
-		"\x00\x66\x00\x66\x66\x3c\x18\x30"
-	, "mO'sOul (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x10\x10\x7c\x7c\xd0\xd0\x7c\x7c\x16\x16\x16\x16\x7c\x7c\x10\x10"
-		"\x60\x60\x96\x96\x6c\x6c\x18\x18\x30\x30\x6c\x6c\xd2\xd2\x0c\x0c"
-		"\x70\x70\xd8\xd8\x70\x70\xf6\xf6\xdc\xdc\xd8\xd8\x7c\x7c\x06\x06"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x07\x0e\x0c\x18\x18\x18\x18\x18\x18\x0c\x0e\x07\x03\x00\x00"
-		"\xc0\xe0\x70\x30\x18\x18\x18\x18\x18\x18\x30\x70\xe0\xc0\x00\x00"
-		"\x00\x00\x6c\x6c\x38\x38\xfe\xfe\x38\x38\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x3c\x3c\x60\x60\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x06\x06\x1c\x1c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x00\x00"
-		"\xf8\xf8\xc0\xc0\xfc\xfc\x06\x06\x46\x46\xcc\xcc\x78\x78\x00\x00"
-		"\x70\x70\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\xfe\xfe\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xcc\xcc\x7c\x7c\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x7c\x7c\xc6\xc6\x06\x06\x3c\x3c\x30\x30\x00\x00\x30\x30\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xf8\xf8\xcc\xcc\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\xf8\xf8\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x38\x38\x60\x60\xc0\xc0\xce\xce\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\x7c\x7c\x0c\x0c"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xd8\xd8\xcc\xcc\x06\x06"
-		"\x78\x78\xc0\xc0\x7c\x7c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3f\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3f\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\xfc\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xfc\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x06\x06\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x38\x38\x6c\x6c\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x00\x00\x1c\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x4c\x4c\x38\x38"
-		"\xc0\xc0\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\xc4\xc4\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\x00\x00\xfc\xfc\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x78\x78\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x32\x32\x1c\x1c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\x00\x00\xc6\xc6\xd6\xd6\xfe\xfe\x7c\x7c\x6c\x6c\x44\x44\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xfe\xfe\x00\x00"
-		"\x0e\x0f\x19\x18\x18\x18\x70\x70\x18\x18\x18\x19\x0f\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\xf0\x98\x18\x18\x18\x0e\x0e\x18\x18\x18\x98\xf0\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x70\x70\xe0\xe0\xc1\xc1\x83\x83\x07\x07\x0e\x0e\x1c\x1c"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x87\x87\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xc0\xc0\x93\x93\x30\x30\x03\x03\x33\x33\x33\x33\x30\x30\xff\xff"
-		"\x87\x87\x33\x33\x3f\x3f\x3f\x3f\x3f\x3f\x33\x33\x87\x87\xcf\xcf"
-		"\xcf\xcf\xf7\xf7\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\xdf\xdf\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\x99\x99\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\x93\x93\xff\xff\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xcf\xcf\xf7\xf7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\xdf\xdf\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x93\x93\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x07\x07\x33\x33\x39\x39\x19\x19\x39\x39\x39\x39\x03\x03\xff\xff"
-		"\x8d\x8d\x63\x63\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x83\x83\x29\x29\x00\x00\x24\x24\x38\x38\x81\x81\xff\xff"
-		"\x87\x87\x33\x33\x21\x21\x09\x09\x19\x19\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\xf7\xf7\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\x99\x99\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x83\x83\xf3\xf3\xf3\xf3\xff\xff"
-		"\x3f\x3f\x07\x07\x33\x33\x39\x39\x03\x03\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\x87\x87\x33\x33\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x30\x30\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x38\x38\x6c\x6c\x60\x60\xf8\xf8\x60\x60\x60\x60\xfe\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x3e\x3e\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18"
-		"\x78\x78\xc0\xc0\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x06\x06\x3c\x3c"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x99\x99\xa1\xa1\xa1\xa1\x99\x99\x42\x42\x3c\x3c"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x36\x36\x6c\x6c\xd8\xd8\x6c\x6c\x36\x36\x00\x00\x00\x00"
-		"\xfe\x7f\x03\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x7c\x7c\x10\x10\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x60\x60\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x18\x18\x70\x70\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x7e\x7e\xf4\xf4\x74\x74\x14\x14\x14\x14\x14\x14\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\xd8\xd8\x6c\x6c\x36\x36\x6c\x6c\xd8\xd8\x00\x00\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7b\x7b\x37\x35\x6d\x6f\xc3\xc3\x80\x80"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7e\x7f\x33\x36\x66\x6f\xcf\xc0\x80\x80"
-		"\xc0\xc0\x66\xc6\x6c\x6c\xdb\xdb\x37\x35\x6d\x6f\xc3\xc3\x00\x00"
-		"\x30\x30\x00\x00\x30\x30\x3c\x3c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3f\x3f\x6c\x6c\xcf\xcf\xfc\xfc\xcc\xcc\xcc\xcc\xcf\xcf\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x20\x20\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x66\x66\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x6c\x6c\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x30\x30\x08\x08\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xe6\xe6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x72\x72\x9c\x9c\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xd6\xd6\xff\xff\xdb\xdb\xc7\xc7\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x78\x78\xcc\xcc\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x08\x08\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\xd8\xd8\x7f\x7f\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x16\x16\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7f\xfe\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-	, NULL, NULL , "MicroKnight Plus (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x83\x83\x39\x39\x21\x21\x29\x29\x21\x21\x3f\x3f\x87\x87\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x9f\x9f\x91\x91\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\x9c\x9c\x99\x99\x93\x93\x87\x87\x93\x93\x99\x99\x9c\x9c\xff\xff"
-		"\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\x9c\x9c\xff\xff"
-		"\x9c\x9c\x8c\x8c\x84\x84\x90\x90\x98\x98\x9c\x9c\x9c\x9c\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x91\x91\xc0\xc0\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\x99\x99\x8f\x8f\xc3\xc3\xf1\xf1\x99\x99\xc3\xc3\xff\xff"
-		"\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\x9c\x9c\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\x3c\x3c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x80\x80\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x80\x80\xff\xff"
-		"\xc3\xc0\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xc0\xc3\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xfe\xfe"
-		"\xc3\x03\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\x03\xc3\xff\xff"
-		"\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x03\x03\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x07\x0e\x0c\x18\x18\x18\x18\x18\x18\x0c\x0e\x07\x03\x00\x00"
-		"\xc0\xe0\x70\x30\x18\x18\x18\x18\x18\x18\x30\x70\xe0\xc0\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x38\x38\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x70\x70\x3c\x3c\x0e\x0e\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3f\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3f\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\xfc\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xfc\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0f\x19\x18\x18\x18\x70\x70\x18\x18\x18\x19\x0f\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\xf0\x98\x18\x18\x18\x0e\x0e\x18\x18\x18\x98\xf0\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\xdb\xdb\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe0\xe0\xc3\xc3\xc3\xc3\x90\x90\x83\x83\x33\x33\x30\x30\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xf3\xf3\xe7\xe7"
-		"\xcf\xcf\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\x99\x99\xff\xff\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x09\x09\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x8e\x8e\x31\x31\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x3c\x3c\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x39\x39\x93\x93\xc7\xc7\x93\x93\x39\x39\xff\xff\xff\xff"
-		"\xc0\xc0\x99\x99\x91\x91\x81\x81\x89\x89\x99\x99\x03\x03\xff\xff"
-		"\xcf\xcf\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\xdb\xdb\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf7\xf7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xff\xff"
-		"\x3f\x3f\x3f\x3f\x03\x03\x39\x39\x03\x03\x3f\x3f\x3f\x3f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x93\x93\x99\x99\x99\x99\x93\x93\x9f\x9f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\x9d\x9d\xb1\xb1\x9d\x9d\x81\x81\x7e\x7e\x00\x00"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\xfe\x7f\x03\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x81\x81\x7e\x7e"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x30\x32\x62\x66\xc6\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd8\x1a\x32\x36\x66\x6f\xc2\xc2"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-	, NULL, NULL, "Topaz Plus (Amiga)", CIOLIB_ISO_8859_1}
-	,{ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x10\x10\x7c\x7c\xd0\xd0\x7c\x7c\x16\x16\x16\x16\x7c\x7c\x10\x10"
-		"\x60\x60\x96\x96\x7c\x7c\x18\x18\x30\x30\x6c\x6c\xd2\xd2\x0c\x0c"
-		"\x70\x70\xd8\xd8\x70\x70\xf6\xf6\xdc\xdc\xd8\xd8\x7c\x7c\x06\x06"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x18\x18\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x6c\x6c\x38\x38\xfe\xfe\x38\x38\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7f\x7f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x3c\x3c\x60\x60\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x06\x06\x1c\x1c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x00\x00"
-		"\xf8\xf8\xc0\xc0\xfc\xfc\x06\x06\x46\x46\xcc\xcc\x78\x78\x00\x00"
-		"\x70\x70\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\xfe\xfe\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xcc\xcc\x7c\x7c\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x18\x18\x0c\x0c\x18\x18\x30\x30\x00\x00\x00\x00"
-		"\x7c\x7c\xc6\xc6\x06\x06\x3c\x3c\x30\x30\x00\x00\x30\x30\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xf8\xf8\xcc\xcc\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\xf8\xf8\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x38\x38\x60\x60\xc0\xc0\xce\xce\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\x7c\x7c\x0c\x0c"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xd8\xd8\xcc\xcc\x06\x06"
-		"\x78\x78\xc0\xc0\x7c\x7c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x38\x38\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x38\x38\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x38\x38\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x06\x06\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x38\x38\x6c\x6c\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x00\x00\x1c\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x4c\x4c\x38\x38"
-		"\xc0\xc0\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\xc4\xc4\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\x00\x00\xfc\xfc\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x78\x78\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x32\x32\x1c\x1c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\x00\x00\xc6\xc6\xd6\xd6\xfe\xfe\x7c\x7c\x6c\x6c\x44\x44\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xfe\xfe\x00\x00"
-		"\x0c\x0c\x18\x18\x18\x18\x30\x30\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x30\x30\x18\x18\x18\x18\x0c\x0c\x18\x18\x18\x18\x30\x30\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x70\x70\xe0\xe0\xc1\xc1\x83\x83\x07\x07\x0e\x0e\x1c\x1c"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x87\x87\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xc0\xc0\x93\x93\x30\x30\x03\x03\x33\x33\x33\x33\x30\x30\xff\xff"
-		"\x87\x87\x33\x33\x3f\x3f\x3f\x3f\x3f\x3f\x33\x33\x87\x87\xcf\xcf"
-		"\xcf\xcf\xf7\xf7\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\xdf\xdf\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\x99\x99\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\x93\x93\xff\xff\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xcf\xcf\xf7\xf7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\xdf\xdf\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x93\x93\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x07\x07\x33\x33\x39\x39\x19\x19\x39\x39\x39\x39\x03\x03\xff\xff"
-		"\x8d\x8d\x63\x63\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x83\x83\x29\x29\x00\x00\x24\x24\x38\x38\x81\x81\xff\xff"
-		"\x87\x87\x33\x33\x21\x21\x09\x09\x19\x19\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\xf7\xf7\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\x99\x99\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x83\x83\xf3\xf3\xf3\xf3\xff\xff"
-		"\x3f\x3f\x07\x07\x33\x33\x39\x39\x03\x03\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\x87\x87\x33\x33\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x30\x30\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x38\x38\x6c\x6c\x60\x60\xf8\xf8\x60\x60\x60\x60\xfe\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x3e\x3e\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xc0\xc0\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x06\x06\x3c\x3c"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x99\x99\xa1\xa1\xa1\xa1\x99\x99\x42\x42\x3c\x3c"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x36\x36\x6c\x6c\xd8\xd8\x6c\x6c\x36\x36\x00\x00\x00\x00"
-		"\x7c\x7c\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\x7c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x6c\x6c\x6c\x6c\x38\x38\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x7c\x7c\x10\x10\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x60\x60\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x18\x18\x70\x70\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x7e\x7e\xf4\xf4\x74\x74\x14\x14\x14\x14\x14\x14\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\xd8\xd8\x6c\x6c\x36\x36\x6c\x6c\xd8\xd8\x00\x00\x00\x00"
-		"\x60\x60\xe6\xe6\x6c\x6c\x7a\x7a\x36\x36\x6f\x6f\xcf\xcf\x03\x03"
-		"\x60\x60\xe6\xe6\x6c\x6c\x78\x78\x3e\x3e\x63\x63\xce\xce\x1f\x1f"
-		"\xe0\xe0\x36\x36\x6c\x6c\x3a\x3a\xf6\xf6\x6f\x6f\xcf\xcf\x03\x03"
-		"\x30\x30\x00\x00\x30\x30\x3c\x3c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3f\x3f\x6c\x6c\xcf\xcf\xfc\xfc\xcc\xcc\xcc\xcc\xcf\xcf\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x20\x20\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x66\x66\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x6c\x6c\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x30\x30\x08\x08\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xe6\xe6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x72\x72\x9c\x9c\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xd6\xd6\xff\xff\xdb\xdb\xc7\xc7\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x78\x78\xcc\xcc\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x08\x08\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\xd8\xd8\x7f\x7f\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x16\x16\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x10\x7c\xd0\x7c\x16\x16\x7c\x10"
-		"\x60\x96\x7c\x18\x30\x6c\xd2\x0c"
-		"\x70\xd8\x70\xf6\xdc\xd8\x7c\x06"
-		"\x18\x18\x08\x10\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x6c\x38\xfe\x38\x6c\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x08\x10"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x06\x0c\x18\x30\x60\xc0\x00"
-		"\x00\x78\xcc\xde\xf6\xe6\x7c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x7c\x06\x3c\x60\xc0\xc0\xfe\x00"
-		"\x3c\x06\x1c\x06\x46\xc6\x7c\x00"
-		"\x18\x18\x30\x6c\xcc\xfe\x0c\x00"
-		"\xf8\xc0\xfc\x06\x46\xcc\x78\x00"
-		"\x70\xc0\xfc\xc6\xc6\xcc\x78\x00"
-		"\xfe\x06\x0c\x18\x18\x18\x18\x00"
-		"\x78\xcc\x7c\xc6\xc6\xcc\x78\x00"
-		"\x78\xcc\xc6\xc6\x7e\x06\x1c\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x08\x10"
-		"\x00\x18\x30\x60\x30\x18\x00\x00"
-		"\x00\x00\x7c\x00\x7c\x00\x00\x00"
-		"\x00\x30\x18\x0c\x18\x30\x00\x00"
-		"\x7c\xc6\x06\x3c\x30\x00\x30\x00"
-		"\x38\x6c\xde\xf6\xde\xc0\x66\x3c"
-		"\x78\xcc\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xf8\xcc\xfc\xc6\xc6\xcc\xf8\x00"
-		"\x78\xcc\xc0\xc0\xc0\xc6\x7c\x00"
-		"\xf8\xcc\xc6\xc6\xc6\xc6\xfc\x00"
-		"\xfe\xc0\xfc\xc0\xc0\xc0\xfe\x00"
-		"\xfe\xc0\xfc\xc0\xc0\xc0\xc0\x00"
-		"\x38\x60\xc0\xce\xc6\xc6\x7e\x06"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x7e\x18\x18\x18\x18\x18\x7e\x00"
-		"\x0e\x06\x06\x06\xc6\xc6\x7c\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x78\xcc\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xf8\xcc\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x78\xcc\xc6\xc6\xc6\xd6\x7c\x0c"
-		"\xf8\xcc\xc6\xc6\xfc\xd8\xcc\x06"
-		"\x78\xc0\x7c\x06\x46\xc6\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\x6c\x6c\x38\x38\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x6c\x38\x38\x6c\xc6\xc6\x00"
-		"\xc6\xc6\xc6\x7c\x0c\x0c\x0c\x00"
-		"\xfe\x0c\x18\x30\x60\xc0\xfe\x00"
-		"\x38\x30\x30\x30\x30\x30\x38\x00"
-		"\x00\xc0\x60\x30\x18\x0c\x06\x00"
-		"\x38\x18\x18\x18\x18\x18\x38\x00"
-		"\x10\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe"
-		"\x18\x18\x10\x08\x00\x00\x00\x00"
-		"\x00\x3c\x06\x7e\xc6\xc6\x7e\x00"
-		"\xc0\xf8\xcc\xc6\xc6\xc6\xfc\x00"
-		"\x00\x78\xcc\xc0\xc0\xc6\x7c\x00"
-		"\x06\x3e\x66\xc6\xc6\xc6\x7e\x00"
-		"\x00\x78\xcc\xfc\xc0\xc6\x7c\x00"
-		"\x38\x6c\x60\x78\x60\x60\x60\x60"
-		"\x00\x7e\xc6\xc6\xc6\x7e\x06\x7c"
-		"\xc0\xf8\xcc\xc6\xc6\xc6\xc6\x00"
-		"\x18\x00\x38\x18\x18\x18\x7e\x00"
-		"\x0c\x00\x1c\x0c\x0c\x0c\x4c\x38"
-		"\xc0\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x38\x18\x18\x18\x18\x18\x7e\x00"
-		"\x00\xc4\xee\xfe\xd6\xc6\xc6\x00"
-		"\x00\xf8\xcc\xc6\xc6\xc6\xc6\x00"
-		"\x00\x78\xcc\xc6\xc6\xc6\x7c\x00"
-		"\x00\xf8\xcc\xc6\xc6\xc6\xfc\xc0"
-		"\x00\x3e\x66\xc6\xc6\xc6\x7e\x06"
-		"\x00\xfc\xc6\xc0\xc0\xc0\xc0\x00"
-		"\x00\x78\xc0\x7c\x06\xc6\x7c\x00"
-		"\x30\x7c\x30\x30\x30\x32\x1c\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x00"
-		"\x00\xc6\xd6\xfe\x7c\x6c\x44\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x00\xc6\xc6\xc6\xc6\x7e\x06\x7c"
-		"\x00\xfe\x0c\x18\x30\x60\xfe\x00"
-		"\x0c\x18\x18\x30\x18\x18\x0c\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x30\x18\x18\x0c\x18\x18\x30\x00"
-		"\x72\x9c\x00\x00\x00\x00\x00\x00"
-		"\x38\x70\xe0\xc1\x83\x07\x0e\x1c"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x30\x78\xcc\xc0\xc0\xc6\x7c\x30"
-		"\x38\x6c\x60\xf8\x60\x60\xfe\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\xc6\xc6\xc6\x7c\x0c\x3e\x0c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x78\xc0\x7c\xc6\xc6\x7c\x06\x3c"
-		"\x6c\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x7e\xc6\xc6\x7e\x00\x7c\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x7c\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x3c\x42\xb9\xa5\xb9\xa5\x42\x3c"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x70\x18\x30\x60\x78\x00\x00\x00"
-		"\x70\x18\x30\x18\x70\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfc\xc0"
-		"\x00\x7e\xf4\x74\x14\x14\x14\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x30\x70\x30\x30\x78\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\x7c\x00\x7c\x00"
-		"\x00\xd8\x6c\x36\x6c\xd8\x00\x00"
-		"\x60\xe6\x6c\x7a\x36\x6f\xcf\x03"
-		"\x60\xe6\x6c\x78\x3e\x63\xce\x1f"
-		"\xe0\x36\x6c\x3a\xf6\x6f\xcf\x03"
-		"\x30\x00\x30\x3c\x06\xc6\x7c\x00"
-		"\x30\x08\x78\xcc\xfe\xc6\xc6\x00"
-		"\x18\x20\x78\xcc\xfe\xc6\xc6\x00"
-		"\x30\xcc\x78\xcc\xfe\xc6\xc6\x00"
-		"\x72\x9c\x78\xcc\xfe\xc6\xc6\x00"
-		"\x6c\x00\x78\xcc\xfe\xc6\xc6\x00"
-		"\x78\xcc\x78\xcc\xfe\xc6\xc6\x00"
-		"\x3f\x6c\xcf\xfc\xcc\xcc\xcf\x00"
-		"\x78\xcc\xc0\xc0\xc0\xc6\x7c\x30"
-		"\x30\x08\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x18\x20\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x18\x66\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x6c\x00\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x30\x08\x7e\x18\x18\x18\x7e\x00"
-		"\x18\x20\x7e\x18\x18\x18\x7e\x00"
-		"\x18\x66\x7e\x18\x18\x18\x7e\x00"
-		"\x6c\x00\x7e\x18\x18\x18\x7e\x00"
-		"\xf8\xcc\xc6\xe6\xc6\xc6\xfc\x00"
-		"\x72\x9c\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x08\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x20\x78\xcc\xc6\xc6\x7c\x00"
-		"\x30\xcc\x78\xcc\xc6\xc6\x7c\x00"
-		"\x72\x9c\x78\xcc\xc6\xc6\x7c\x00"
-		"\x6c\x00\x78\xcc\xc6\xc6\x7c\x00"
-		"\x00\x7c\xd6\xff\xdb\xc7\x7e\x00"
-		"\x78\xcc\xde\xf6\xe6\xc6\x7c\x00"
-		"\x30\x08\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x20\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x66\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x6c\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x20\xc6\xc6\x7c\x0c\x0c\x00"
-		"\xc0\xf8\xcc\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x78\xcc\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x08\x3c\x06\x7e\xc6\x7e\x00"
-		"\x18\x20\x3c\x06\x7e\xc6\x7e\x00"
-		"\x18\x66\x3c\x06\x7e\xc6\x7e\x00"
-		"\x72\x9c\x3c\x06\x7e\xc6\x7e\x00"
-		"\x6c\x00\x3c\x06\x7e\xc6\x7e\x00"
-		"\x3c\x66\x3c\x06\x7e\xc6\x7e\x00"
-		"\x00\x7e\x1b\x7f\xd8\xd8\x7f\x00"
-		"\x00\x78\xcc\xc0\xc0\xc6\x7c\x30"
-		"\x30\x08\x78\xfc\xc0\xc6\x7c\x00"
-		"\x18\x20\x78\xfc\xc0\xc6\x7c\x00"
-		"\x30\xcc\x78\xfc\xc0\xc6\x7c\x00"
-		"\x6c\x00\x78\xfc\xc0\xc6\x7c\x00"
-		"\x30\x08\x38\x18\x18\x18\x7e\x00"
-		"\x18\x20\x38\x18\x18\x18\x7e\x00"
-		"\x18\x66\x38\x18\x18\x18\x7e\x00"
-		"\x6c\x00\x38\x18\x18\x18\x7e\x00"
-		"\x0c\x16\x3e\x66\xc6\xc6\x7e\x00"
-		"\x72\x9c\xf8\xcc\xc6\xc6\xc6\x00"
-		"\x30\x08\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x20\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x66\x78\xcc\xc6\xc6\x7c\x00"
-		"\x72\x9c\x78\xcc\xc6\xc6\x7c\x00"
-		"\x6c\x00\x78\xcc\xc6\xc6\x7c\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x78\xcc\xde\xf6\xe6\x7c\x00"
-		"\x30\x08\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x20\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x66\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x6c\x00\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x20\xc6\xc6\xc6\x7e\x06\x7c"
-		"\xc0\xc0\xf8\xcc\xc6\xfc\xc0\xc0"
-		"\x6c\x00\xc6\xc6\xc6\x7e\x06\x7c"
-	, "MicroKnight (Amiga)", CIOLIB_ISO_8859_1}
-	,{  "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x83\x83\x39\x39\x21\x21\x29\x29\x21\x21\x3f\x3f\x87\x87\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x9f\x9f\x91\x91\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\x9c\x9c\x99\x99\x93\x93\x87\x87\x93\x93\x99\x99\x9c\x9c\xff\xff"
-		"\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\x9c\x9c\xff\xff"
-		"\x9c\x9c\x8c\x8c\x84\x84\x90\x90\x98\x98\x9c\x9c\x9c\x9c\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x91\x91\xc0\xc0\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\x99\x99\x8f\x8f\xc3\xc3\xf1\xf1\x99\x99\xc3\xc3\xff\xff"
-		"\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\x9c\x9c\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\x3c\x3c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x80\x80\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x80\x80\xff\xff"
-		"\xc3\xc3\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xc3\xc3\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xff\xff"
-		"\xc3\xc3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xc3\xc3\xff\xff"
-		"\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x38\x38\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x06\x06\x18\x18\x60\x60\x18\x18\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x18\x18\x06\x06\x18\x18\x60\x60\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x70\x70\x3c\x3c\x0e\x0e\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x70\x70\x18\x18\x18\x18\x0e\x0e\x18\x18\x18\x18\x70\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\xdb\xdb\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe0\xe0\xc3\xc3\xc3\xc3\x90\x90\x83\x83\x33\x33\x30\x30\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xf3\xf3\xe7\xe7"
-		"\xcf\xcf\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\x99\x99\xff\xff\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x09\x09\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x8e\x8e\x31\x31\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x3c\x3c\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x39\x39\x93\x93\xc7\xc7\x93\x93\x39\x39\xff\xff\xff\xff"
-		"\xc0\xc0\x99\x99\x91\x91\x81\x81\x89\x89\x99\x99\x03\x03\xff\xff"
-		"\xcf\xcf\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\xdb\xdb\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf7\xf7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xff\xff"
-		"\x3f\x3f\x3f\x3f\x03\x03\x39\x39\x03\x03\x3f\x3f\x3f\x3f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x93\x93\x99\x99\x99\x99\x93\x93\x9f\x9f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x80"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\x9d\x9d\xb1\xb1\x9d\x9d\x81\x81\x7e\x7e\x00\x00"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\x3e\x3e\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x81\x81\x7e\x7e"
-		"\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x32\x32\x66\x66\xcf\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd9\xd9\x33\x33\x67\x67\x01\x01"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		,  "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x18\x3e\x60\x60\x3c\x06\x06\x7c\x18\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc6\xcc\x18\x30\x66\xc6\x06\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x68\x76\xdc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x66\x66\x3c\xff\x3c\x66\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x7e\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x03\x06\x04\x0c\x18\x30\x20\x60\xc0\x00\x00\x00\x00"
-		"\x3c\x66\x66\x76\x7e\x6e\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x38\x38\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x06\x0c\x18\x30\x66\x7e\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x06\x1c\x06\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00\x00"
-		"\x7e\x60\x60\x7c\x06\x06\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x1c\x30\x60\x60\x7c\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x7e\x66\x06\x06\x0c\x18\x18\x18\x18\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3c\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3e\x06\x06\x0c\x38\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x06\x0c\x18\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x7c\xc6\xc6\xde\xde\xde\xc0\xc0\x78\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x66\x66\x7e\xc3\xc3\xc3\x00\x00\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00\x00"
-		"\xfe\x66\x60\x60\x78\x60\x60\x66\xfe\x00\x00\x00\x00\x00"
-		"\xfe\x66\x60\x60\x78\x60\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xce\xc6\xc6\x66\x3e\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x7e\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0e\x06\x06\x06\x06\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00\x00"
-		"\x82\x82\xc6\xc6\xee\xfe\xd6\xd6\xc6\x00\x00\x00\x00\x00"
-		"\x86\xc6\xe6\xf6\xfe\xde\xce\xc6\xc2\x00\x00\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x3c\x06\x03\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x78\x6c\x66\xf3\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x30\x18\x0c\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\xc3\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xd6\xd6\xfe\xee\xee\xc6\xc6\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x3c\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00\x00"
-		"\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00\x00"
-		"\x00\xc0\x60\x20\x30\x18\x0c\x04\x06\x03\x00\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x18\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\xe0\x60\x60\x6c\x76\x66\x66\x66\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0e\x06\x06\x36\x6e\x66\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x1c\x36\x30\x30\x78\x30\x30\x30\x78\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3b\x66\x66\x66\x3c\xc6\xc6\x7c\x00\x00\x00"
-		"\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x06\x06\x00\x06\x06\x06\x06\x06\x06\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xcc\xee\xfe\xd6\xd6\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3d\x66\x66\x66\x3e\x06\x06\x07\x00\x00\x00"
-		"\x00\x00\x00\xec\x76\x66\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x70\x38\x1c\x0e\x7c\x00\x00\x00\x00\x00"
-		"\x08\x18\x18\x3e\x18\x18\x18\x1a\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc6\xd6\xd6\xd6\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x30\xe0\x00\x00\x00"
-		"\x00\x00\x00\x7e\x4c\x18\x30\x62\x7e\x00\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00\x00\x00"
-		"\x62\xba\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\x33\xcc\x33\xcc\x33\xcc\x33\xcc\x33\xcc\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x3e\x6c\x6c\x6c\x3e\x0c\x0c\x00\x00\x00\x00\x00"
-		"\x1c\x36\x30\x30\x78\x30\x30\x30\x7e\x00\x00\x00\x00\x00"
-		"\x66\x66\x3c\x66\x66\x66\x3c\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x3c\x18\x7e\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00"
-		"\x3c\x60\x60\x3c\x66\x66\x66\x3c\x06\x06\x3c\x00\x00\x00"
-		"\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\x81\x9d\xb1\xb1\xb1\x9d\x81\x7e\x00\x00\x00\x00"
-		"\x3c\xcc\xcc\x76\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xcc\x66\x33\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x06\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xb1\xb9\xb9\xb1\xa9\xa5\x81\x7e\x00\x00\x00\x00"
-		"\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x7e\x18\x18\x18\x00\x7e\x00\x00\x00\x00\x00"
-		"\x78\x0c\x0c\x18\x30\x60\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\x0c\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x6e\x7a\x60\x60\x00\x00\x00\x00"
-		"\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x18\x00\x00\x00"
-		"\x18\x38\x38\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3c\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x33\x66\xcc\x00\x00\x00\x00\x00\x00\x00"
-		"\x40\xc6\x4c\x58\x72\x66\xce\x02\x02\x00\x00\x00\x00\x00"
-		"\x20\x63\x26\x2c\x3b\x31\x62\xc4\x0f\x00\x00\x00\x00\x00"
-		"\xc0\x63\xc6\x6c\xd9\x33\x67\xc1\x01\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x18\x30\x60\x60\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x30\x48\x84\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x72\x9c\x00\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\xc6\xc6\x10\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x6c\x6c\xfe\xc6\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x1f\x3c\x3c\x6c\x6f\xfc\xcc\xcc\xcf\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xc0\xc0\xc0\x66\x3c\x18\x30\x00\x00\x00"
-		"\x60\x18\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x60\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x24\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x66\x00\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x30\x0c\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x30\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x18\x24\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00\x00\x00\x00"
-		"\x71\x8e\xc6\xe6\xf6\xde\xce\xc6\xc2\x00\x00\x00\x00\x00"
-		"\x30\x0c\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x30\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc7\xcf\xdb\xf3\xe3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x18\x24\x00\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x06\x18\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\xf0\x60\x7e\x63\x63\x63\x7e\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\x66\x66\x66\x6c\x66\x66\x66\x6c\x60\x60\x00\x00\x00"
-		"\x60\x30\x08\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x1b\x7f\xd8\xd8\x77\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x08\x30\x00\x00\x00"
-		"\x60\x30\x08\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\x70\x30\x30\x30\x30\x78\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x6c\x30\xd8\x0c\x7e\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x7c\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x66\x66\x66\x66\x3c\x18\x18\x70\x00\x00\x00"
-		"\xf0\x60\x60\x7c\x66\x66\x66\x7c\x60\x60\xf0\x00\x00\x00"
-		"\x66\x66\x00\x66\x66\x66\x66\x3c\x18\x18\x70\x00\x00\x00"
-	, NULL, "Topaz (Amiga)", CIOLIB_ISO_8859_1}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-};
-#endif
diff --git a/ciolib/ansi_cio.c b/ciolib/ansi_cio.c
deleted file mode 100644
index 83d4b5c..0000000
--- a/ciolib/ansi_cio.c
+++ /dev/null
@@ -1,1036 +0,0 @@
-/* $Id: ansi_cio.c,v 1.86 2020/04/13 18:36:21 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stdlib.h>	/* malloc */
-
-#include <genwrap.h>
-#include <threadwrap.h>
-#include <semwrap.h>
-
-#ifdef __unix__
-	#include <termios.h>
-	struct termios tio_default;				/* Initial term settings */
-#endif
-
-#ifdef _WIN32
-	#ifndef ENABLE_VIRTUAL_TERMINAL_INPUT
-	#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200
-	#endif
-	#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
-	#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
-	#endif
-#endif
-
-
-#include "ciolib.h"
-#include "ansi_cio.h"
-
-int	CIOLIB_ANSI_TIMEOUT=500;
-int  (*ciolib_ansi_readbyte_cb)(void)=ansi_readbyte_cb;
-int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch)=ansi_writebyte_cb;
-int  (*ciolib_ansi_initio_cb)(void)=ansi_initio_cb;
-int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len)=ansi_writestr_cb;
-
-static sem_t	got_key;
-static sem_t	got_input;
-static sem_t	used_input;
-static sem_t	goahead;
-static sem_t	need_key;
-static BOOL	sent_ga=FALSE;
-static int ansix=1;
-static int ansiy=1;
-
-static int ansi_got_row=0;
-static int doorway_enabled=0;
-
-const int 	ansi_colours[8]={0,4,2,6,1,5,3,7};
-static WORD		ansi_inch;
-static int		ansi_raw_inch;
-static WORD	*ansivmem;
-static int		force_move=1;
-
-/* Control sequence table definitions. */
-typedef struct
-{
-   char *pszSequence;
-   int chExtendedKey;
-} tODKeySequence;
-
-#define ANSI_KEY_UP		72<<8
-#define ANSI_KEY_DOWN	80<<8
-#define ANSI_KEY_RIGHT	0x4d<<8
-#define ANSI_KEY_LEFT	0x4b<<8
-#define ANSI_KEY_HOME	0x47<<8
-#define ANSI_KEY_END	0x4f<<8
-#define ANSI_KEY_F1		0x3b<<8
-#define ANSI_KEY_F2		0x3c<<8
-#define ANSI_KEY_F3		0x3d<<8
-#define ANSI_KEY_F4		0x3e<<8
-#define ANSI_KEY_F5		0x3f<<8
-#define ANSI_KEY_F6		0x40<<8
-#define ANSI_KEY_F7		0x41<<8
-#define ANSI_KEY_F8		0x42<<8
-#define ANSI_KEY_F9		0x43<<8
-#define ANSI_KEY_F10	0x44<<8
-#define ANSI_KEY_PGUP	0x49<<8
-#define ANSI_KEY_PGDN	0x51<<8
-#define ANSI_KEY_INSERT	0x52<<8
-#define ANSI_KEY_DELETE	0x53<<8
-#define ANSI_KEY_F11	0x85<<8
-#define ANSI_KEY_F12	0x86<<8
-
-static tODKeySequence ODaKeySequences[] =
-{
-   /* VT-52 control sequences. */
-   {"\033A", ANSI_KEY_UP},
-   {"\033B", ANSI_KEY_DOWN},
-   {"\033C", ANSI_KEY_RIGHT},
-   {"\033D", ANSI_KEY_LEFT},
-   {"\033H", ANSI_KEY_HOME},
-   {"\033K", ANSI_KEY_END},
-   {"\033P", ANSI_KEY_F1},
-   {"\033Q", ANSI_KEY_F2},
-   {"\033?w", ANSI_KEY_F3},
-   {"\033?x", ANSI_KEY_F4},
-   {"\033?t", ANSI_KEY_F5},
-   {"\033?u", ANSI_KEY_F6},
-   {"\033?q", ANSI_KEY_F7},
-   {"\033?r", ANSI_KEY_F8},
-   {"\033?p", ANSI_KEY_F9},
-
-   /* Control sequences common to VT-100/VT-102/VT-220/VT-320/ANSI. */
-   {"\033[A", ANSI_KEY_UP},
-   {"\033[B", ANSI_KEY_DOWN},
-   {"\033[C", ANSI_KEY_RIGHT},
-   {"\033[D", ANSI_KEY_LEFT},
-   {"\033[M", ANSI_KEY_PGUP},
-   {"\033[H\x1b[2J", ANSI_KEY_PGDN},
-   {"\033[H", ANSI_KEY_HOME},
-   {"\033[K", ANSI_KEY_END},
-   {"\033OP", ANSI_KEY_F1},
-   {"\033OQ", ANSI_KEY_F2},
-   {"\033OR", ANSI_KEY_F3},
-   {"\033OS", ANSI_KEY_F4},
-
-   /* VT-220/VT-320 specific control sequences. */
-   {"\033[1~",  ANSI_KEY_HOME}, /* Windows XP terminal.exe.  Is actually FIND */
-   {"\033[2~",  ANSI_KEY_INSERT},
-   {"\033[3~",  ANSI_KEY_DELETE},
-   {"\033[4~",  ANSI_KEY_END},  /* Windows XP terminal.exe.  Is actually SELECT */
-   {"\033[5~",  ANSI_KEY_PGUP},
-   {"\033[6~",  ANSI_KEY_PGDN},
-   {"\033[17~", ANSI_KEY_F6},
-   {"\033[18~", ANSI_KEY_F7},
-   {"\033[19~", ANSI_KEY_F8},
-   {"\033[20~", ANSI_KEY_F9},
-   {"\033[21~", ANSI_KEY_F10},
-   {"\033[23~", ANSI_KEY_F11},
-   {"\033[24~", ANSI_KEY_F12},
-
-   /* XTerm specific control sequences */
-   {"\033[15~", ANSI_KEY_F5},
-
-   /* Old, deprecated XTerm specific control sequences */
-   {"\033[11~", ANSI_KEY_F1},
-   {"\033[12~", ANSI_KEY_F2},
-   {"\033[13~", ANSI_KEY_F3},
-   {"\033[14~", ANSI_KEY_F4},
-
-   /* ANSI-specific control sequences. */
-   {"\033[L", ANSI_KEY_HOME},
-   {"\033Ow", ANSI_KEY_F3},
-   {"\033Ox", ANSI_KEY_F4},
-   {"\033Ot", ANSI_KEY_F5},
-   {"\033Ou", ANSI_KEY_F6},
-   {"\033Oq", ANSI_KEY_F7},
-   {"\033Or", ANSI_KEY_F8},
-   {"\033Op", ANSI_KEY_F9},
-
-   /* ECMA 048-specific control sequences. */
-   {"\033[V", ANSI_KEY_PGUP},
-   {"\033[U", ANSI_KEY_PGDN},
-   {"\033[@", ANSI_KEY_INSERT},
-   
-   
-   /* PROCOMM-specific control sequences (non-keypad alternatives). */
-   {"\033OA", ANSI_KEY_UP},
-   {"\033OB", ANSI_KEY_DOWN},
-   {"\033OC", ANSI_KEY_RIGHT},
-   {"\033OD", ANSI_KEY_LEFT},
-   {"\033OH", ANSI_KEY_HOME},
-   {"\033OK", ANSI_KEY_END},
-
-   /* Terminator */
-   {"",0}
-};
-
-#ifdef NEEDS_CFMAKERAW
-static void
-cfmakeraw(struct termios *t)
-{
-	t->c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
-	t->c_oflag &= ~OPOST;
-	t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
-	t->c_cflag &= ~(CSIZE|PARENB);
-	t->c_cflag |= CS8;
-}
-#endif
-
-/* Do NOT call this to output to the last column of the last row. */
-/* ONLY call this for chars which will move the cursor */
-static void ansi_sendch(char ch)
-{
-	if(!ch)
-		ch=' ';
-	ansix++;
-	if(ansix>cio_textinfo.screenwidth) {
-		/* Column 80 sux0rz */
-		force_move=1;
-		ansix=1;
-		ansiy++;
-		if(ansiy>cio_textinfo.screenheight) {
-			ansix=cio_textinfo.screenwidth;
-			ansiy=cio_textinfo.screenheight;
-		}
-	}
-	if(doorway_enabled && ch < ' ')
-		ciolib_ansi_writebyte_cb(0);
-	ciolib_ansi_writebyte_cb((unsigned char)ch);
-	/* We sent a control char... better make the next movement explicit */
-	if(ch<' ' && ch > 0) {
-		if(doorway_enabled) {
-			/* In doorway mode, some chars may want to force movement... */
-		}
-		else
-			force_move=1;
-	}
-}
-
-static void ansi_sendstr(const char *str,int len)
-{
-	if(len==-1)
-		len=strlen(str);
-	if(len)
-		ciolib_ansi_writestr_cb((unsigned char *)str, (size_t)len);
-}
-
-static void ansi_gotoxy_abs(int x, int y)
-{
-	char str[16];
-
-	str[0]=0;
-	if(x < 1
-		|| x > cio_textinfo.screenwidth
-		|| y < 1
-		|| y > cio_textinfo.screenheight)
-		return;
-
-	/* ToDo optimizations: use tabs for horizontal movement to tabstops */
-
-	/* Movement forced... always send position code */
-	if(force_move) {
-		sprintf(str,"\033[%d;%dH",y,x);
-		ansi_sendstr(str,-1);
-		force_move=0;
-		ansiy=y;
-		ansix=x;
-		return;
-	}
-
-	/* Moving to col 1 (and not already there)... use \r */
-	if(x==1 && ansix>1) {
-		ansi_sendstr("\r",1);
-		ansix=1;
-	}
-
-	/* Do we even NEED to move? */
-	if(x==ansix && y==ansiy)
-		return;
-
-	/* If we're already on the correct column */
-	if(x==ansix) {
-		/* Do we need to move up? */
-		if(y<ansiy) {
-			if(y==ansiy-1)
-				/* Only up one */
-				strcpy(str,"\033[A");
-			else
-				sprintf(str,"\033[%dA",ansiy-y);
-			ansi_sendstr(str,-1);
-			ansiy=y;
-			return;
-		}
-
-		/* We must have to move down then. */
-		/* Only one, use a newline */
-		if(y-ansiy < 4)
-			ansi_sendstr("\n\n\n",y-ansiy);
-		else {
-			sprintf(str,"\033[%dB",y-ansiy);
-			ansi_sendstr(str,-1);
-		}
-		ansiy=y;
-		return;
-	}
-
-	/* Ok, we need to change the column then... is the row right though? */
-	if(y==ansiy) {
-		/* Do we need to move left then? */
-		if(x<ansix) {
-			if(x==ansix-1)
-				strcpy(str,"\033[D");
-			else
-				sprintf(str,"\033[%dD",ansix-x);
-			ansi_sendstr(str,-1);
-			ansix=x;
-			return;
-		}
-
-		/* Must need to move right then */
-#if 1
-		/* Check if we can use spaces */
-		if(x-ansix < 5) {
-			int i,j;
-			j=1;
-			/* If all the intervening cells are spaces with the current background, we're good */
-			for(i=0; i<x-ansix; i++) {
-				if((ansivmem[(y-1)*cio_textinfo.screenwidth+ansix-1+i] & 0xff) != ' '/* && (ansivmem[(ansiy-1)*cio_textinfo.screenwidth+ansix-1+i]) & 0xff != 0*/) {
-					j=0;
-					break;
-				}
-				if((ansivmem[(y-1)*cio_textinfo.screenwidth+ansix-1+i] & 0x7000) != ((cio_textinfo.attribute<<8) & 0x7000)) {
-					j=0;
-					break;
-				}
-			}
-			if(j) {
-				ansi_sendstr("    ",x-ansix);
-				ansix=x;
-				return;
-			}
-		}
-#endif
-		if(x==ansix+1)
-			strcpy(str,"\033[C");
-		else
-			sprintf(str,"\033[%dC",x-ansix);
-		ansi_sendstr(str,-1);
-		ansix=x;
-		return;
-	}
-
-	/* Changing the row and the column... better use a fill movement then. */
-	sprintf(str,"\033[%d;%dH",y,x);
-	ansi_sendstr(str,-1);
-	ansiy=y;
-	ansix=x;
-	return;
-}
-
-void ansi_gotoxy(int x, int y)
-{
-	ansi_gotoxy_abs(x+cio_textinfo.winleft-1,y+cio_textinfo.wintop-1);
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-}
-
-int ansi_puttext(int sx, int sy, int ex, int ey, void* buf)
-{
-	int x,y;
-	int cx,cy,i,j;
-	unsigned char *out;
-	WORD	sch;
-	struct text_info	ti;
-	int		attrib;
-	unsigned char *fill = (unsigned char*)buf;
-
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	/* Check if this actually does anything */
-	/* TODO: This assumes a little-endian system!  Ack! */
-	if(sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight
-			&& memcmp(buf,ansivmem,ti.screenwidth*ti.screenheight*2)==0)
-		return(1);
-
-	out=fill;
-	attrib=ti.attribute;
-
-	i=0;		/* Did a nasty. */
-
-	/* Check if this is a nasty screen clear... */
-	j=0;		/* We can clearscreen */
-	if(!i && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight && (*out==' ' || *out==0)) {
-		j=1;		/* We can clearscreen */
-		for(cy=sy-1;cy<ey;cy++) {
-			for(cx=sx-1;cx<ex;cx++) {
-				if(out[(cy*ti.screenwidth+cx)*2]!=*out
-						|| out[(cy*ti.screenwidth+cx)*2+1]!=*(out+1)) {
-					j=0;
-					cx=ex;
-					cy=ey;
-				}
-			}
-		}
-	}
-	if(j) {
-		textattr(*(out+1));
-		/* Many terminals make ESC[2J home the cursor */
-		ansi_sendstr("\033[2J\033[1;1H",-1);
-		ansix=1;
-		ansiy=1;
-		memcpy(ansivmem,out,ti.screenwidth*ti.screenheight*2);
-		i=1;
-	}
-#if 0
-	/* Check if this is a scroll */
-	if((!i) && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight-1
-			&& memcmp(buf,ansivmem,ti.screenwidth*(ti.screenheight-1)*2)==0) {
-		/* We need to get to the bottom line... */
-		if(ansiy < ti.screenheight) {
-			if(ansiy > ti.screenheight-4) {
-				ansi_sendstr("\n\n\n\n\n",ti.screenheight-ansiy-2);
-			}
-			else {
-				sprintf(str,"\033[%dB",ti.screenheight-ansiy-2);
-				ansi_sendstr(str,-1);
-			}
-		}
-		ansi_sendstr("\n",1);
-		memcpy(ansivmem,buf,ti.screenwidth*(ti.screenheight-1)*2);
-		for(x=0;x<ti.screenwidth;x++)
-			ansivmem[(ti.screenheight-1)*ti.screenwidth+x]=(ti.attribute<<8)|' ';
-		i=1;
-	}
-#endif
-#if 1
-	/* Check if this *includes* a scroll */
-	if((!i) && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight
-			&& memcmp(buf,ansivmem+ti.screenwidth,ti.screenwidth*(ti.screenheight-1)*2)==0) {
-		/* We need to get to the bottom line... */
-		if(ansiy < ti.screenheight) {
-			if(ansiy > ti.screenheight-4) {
-				ansi_sendstr("\n\n\n\n\n",ti.screenheight-ansiy-2);
-			}
-			else {
-				char str[6];
-				sprintf(str,"\033[%dB",ti.screenheight-ansiy-2);
-				ansi_sendstr(str,-1);
-			}
-		}
-		ansi_sendstr("\n",1);
-		memcpy(ansivmem,buf,ti.screenwidth*(ti.screenheight-1)*2);
-		for(x=0;x<ti.screenwidth;x++)
-			ansivmem[(ti.screenheight-1)*ti.screenwidth+x]=(ti.attribute<<8)|' ';
-		out += ti.screenwidth*(ti.screenheight-1)*2;
-		sy=ti.screenheight;
-	}
-#endif
-	if(!i) {
-		for(y=sy-1;y<ey;y++) {
-			for(x=sx-1;x<ex;x++) {
-				/*
-				 * Check if we can use clear2eol now... this means  the rest of the
-				 * chars on the line are the same attr, and are all spaces or NULLs
-				 * Also, if there's less than four chars left, it's not worth it.
-				 */
-
-				i=0;	/* number of differing chars from screen */
-				j=0;	/* Can use clrtoeol? */
-				for(cx=x; cx<ti.screenwidth; cx++) {
-					/* First, make sure that the rest are spaces or NULLs */
-					if(out[(cx-x)*2] != ' ' && out[(cx-x)*2] != 0)
-						break;
-					/* Next, make sure that the attribute is the same */
-					if(out[(cx-x)*2+1] != out[1])
-						break;
-					/* Finally, if this isn't what's on screen, increment i */
-					if((ansivmem[y*cio_textinfo.screenwidth+cx] & 0xff) != 0 && (ansivmem[y*cio_textinfo.screenwidth+cx] & 0xff) != ' ')
-						i++;
-					else if(ansivmem[y*cio_textinfo.screenwidth+cx] >> 8 != out[(cx-x)*2+1])
-						i++;
-				}
-				if(cx==ti.screenwidth)
-					j=1;
-
-				if(j && i>3) {
-					ansi_gotoxy_abs(x+1,y+1);
-					textattr(*(out+1));
-					ansi_sendstr("\033[K",-1);
-					for(cx=x; cx<ex; cx++) {
-						ansivmem[y*cio_textinfo.screenwidth+cx]=*(out++);
-						ansivmem[y*cio_textinfo.screenwidth+cx]|=(*(out++))<<8;
-					}
-					break;
-				}
-				sch=*(out++);
-				if(sch==27 && doorway_enabled==0)
-					sch=' ';
-				if(sch==0)
-					sch=' ';
-				sch |= (*(out++))<<8;
-				if(ansivmem[y*cio_textinfo.screenwidth+x]==sch)
-					continue;
-				ansivmem[y*cio_textinfo.screenwidth+x]=sch;
-				ansi_gotoxy_abs(x+1,y+1);
-				if(y>=cio_textinfo.screenheight-1 && x>=cio_textinfo.screenwidth-1)
-					continue;
-				if(attrib!=sch>>8) {
-					textattr(sch>>8);
-					attrib=sch>>8;
-				}
-				ansi_sendch((char)(sch&0xff));
-			}
-		}
-	}
-
-	if(!puttext_can_move)
-		gotoxy(ti.curx,ti.cury);
-	if(attrib!=ti.attribute)
-		textattr(ti.attribute);
-	return(1);
-}
-
-int ansi_gettext(int sx, int sy, int ex, int ey, void* buf)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-	struct text_info	ti;
-	unsigned char *fill = (unsigned char*)buf;
-
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=ansivmem[y*cio_textinfo.screenwidth+x];
-			*(out++)=sch & 0xff;
-			*(out++)=sch >> 8;
-		}
-	}
-	return(1);
-}
-
-void ansi_textattr(int attr)
-{
-	char str[16];
-	int fg,ofg;
-	int bg,obg;
-	int bl,obl;
-	int br,obr;
-	int oa;
-
-	str[0]=0;
-	if(cio_textinfo.attribute==attr)
-		return;
-
-	bl=attr&0x80;
-	bg=(attr>>4)&0x7;
-	fg=attr&0x07;
-	br=attr&0x08;
-
-	oa=cio_textinfo.attribute;
-	obl=oa&0x80;
-	obg=(oa>>4)&0x7;
-	ofg=oa&0x07;
-	obr=oa&0x08;
-
-	cio_textinfo.attribute=attr;
-
-	strcpy(str,"\033[");
-	if(obl!=bl) {
-		if(!bl)
-#if 0
-			strcat(str,"25;");
-#else
-		{
-			strcat(str,"0;");
-			ofg=7;
-			obg=0;
-			obr=0;
-		}
-#endif
-		else
-			strcat(str,"5;");
-	}
-	if(br!=obr) {
-		if(br)
-			strcat(str,"1;");
-		else
-#if 0
-			strcat(str,"22;");
-#else
-		{
-			strcat(str,"0;");
-			if(bl)
-				strcat(str,"5;");
-			ofg=7;
-			obg=0;
-		}
-#endif
-	}
-	if(fg!=ofg)
-		sprintf(str+strlen(str),"3%d;",ansi_colours[fg]);
-	if(bg!=obg)
-		sprintf(str+strlen(str),"4%d;",ansi_colours[bg]);
-	str[strlen(str)-1]='m';
-	ansi_sendstr(str,-1);
-	cio_textinfo.attribute=attr;
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static void ansi_keyparse(void *par)
-{
-	int		gotesc=0;
-	int		gotnull=0;
-	char	seq[64];
-	int		ch;
-	int		i;
-	char	*p;
-	int		timeout=0;
-	int		timedout=0;
-	int		unknown=0;
-
-	SetThreadName("ANSI Keyparse");
-	seq[0]=0;
-	for(;;) {
-		if(ansi_got_row)
-			sem_wait(&goahead);
-		if(timedout || unknown) {
-			for(p=seq;*p;p++) {
-				ansi_inch=*p;
-				sem_post(&got_input);
-				sem_wait(&used_input);
-				sem_wait(&goahead);
-			}
-			gotesc=0;
-			timeout=0;
-			seq[0]=0;
-		}
-		if(!timedout)
-			sem_post(&need_key);
-		timedout=0;
-		unknown=0;
-		if(timeout) {
-			if(sem_trywait_block(&got_key,timeout)) {
-				timedout=1;
-				sem_post(&goahead);
-				continue;
-			}
-		}
-		else
-			sem_wait(&got_key);
-
-		ch=ansi_raw_inch;
-		if(ch==-2) {
-			ansi_inch=0x0100;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice times and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-		}
-		if(gotnull==2) {
-			// 0xe0 enhanced keyboard key... translate to 0x00 key for now.
-
-			ansi_inch=ch<<8;	// (ch<<8)|0xe0;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice times and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-			gotnull=0;
-			continue;
-		}
-		if(gotnull==1) {
-			if(ch==0xe0) {
-				gotnull=2;
-				// Need another key... keep looping.
-				sem_post(&goahead);
-				continue;
-			}
-			ansi_inch=ch<<8;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-			gotnull=0;
-			continue;
-		}
-
-		switch(gotesc) {
-			case 1:	/* Escape Sequence */
-				timeout=CIOLIB_ANSI_TIMEOUT;
-				seq[strlen(seq)+1]=0;
-				seq[strlen(seq)]=ch;
-				if(strlen(seq)>=sizeof(seq)-2) {
-					gotesc=0;
-					break;
-				}
-				if((ch<'0' || ch>'9')		/* End of ESC sequence */
-						&& ch!=';'
-						&& ch!='?'
-						&& (strlen(seq)==2?ch != '[':1)
-						&& (strlen(seq)==2?ch != 'O':1)) {
-					unknown=1;
-					gotesc=0;
-					timeout=0;
-					for(i=0;ODaKeySequences[i].pszSequence[0];i++) {
-						if(!strcmp(seq,ODaKeySequences[i].pszSequence)) {
-							ansi_inch=ODaKeySequences[i].chExtendedKey;
-							sem_post(&got_input);
-							/* Two-byte code, need to post twice and wait for one to
-							   be received */
-							sem_wait(&used_input);
-							sem_wait(&goahead);
-							sem_post(&got_input);
-							sem_wait(&used_input);
-							unknown=0;
-							seq[0]=0;
-							break;
-						}
-					}
-					/* ANSI position report? */
-					if(ch=='R') {
-						if(strspn(seq,"\033[0123456789;R")==strlen(seq)) {
-							p=seq+2;
-							i=strtol(p,&p,10);
-							if(i>cio_textinfo.screenheight) {
-								cio_textinfo.screenheight=i;
-								if(*p==';') {
-									i=strtol(p+1, NULL, 10);
-									if(i>cio_textinfo.screenwidth)
-										cio_textinfo.screenwidth=i;
-								}
-								ansi_got_row=cio_textinfo.screenheight;;
-							}
-						}
-						unknown=0;
-					}
-					if(unknown) {
-						sem_post(&goahead);
-						continue;
-					}
-				}
-				else {
-					/* Need more keys... keep looping */
-					sem_post(&goahead);
-				}
-				break;
-			default:
-				if(ch==27) {
-					seq[0]=27;
-					seq[1]=0;
-					gotesc=1;
-					timeout=CIOLIB_ANSI_TIMEOUT;
-					/* Need more keys... keep going... */
-					sem_post(&goahead);
-					break;
-				}
-				if(ch==10) {
-					/* The \n that goes with the prev \r (hopefully) */
-					/* Eat it and keep chuggin' */
-					sem_post(&goahead);
-					break;
-				}
-				if(doorway_enabled && ch==0) {
-					/* Got a NULL. ASSume this is a doorway mode char */
-					gotnull=1;
-					sem_post(&goahead);
-					break;
-				}
-				ansi_inch=ch;
-				sem_post(&got_input);
-				sem_wait(&used_input);
-				break;
-		}
-	}
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static void ansi_keythread(void *params)
-{
-	int	sval=1;
-
-	SetThreadName("ANSI Key");
-	_beginthread(ansi_keyparse,1024,NULL);
-
-	for(;;) {
-		sem_wait(&need_key);
-		/* If you already have a key, don't get another */
-		sem_getvalue(&got_key,&sval);
-		if(!sval) {
-			ansi_raw_inch=ciolib_ansi_readbyte_cb();
-			if(ansi_raw_inch >= 0 || ansi_raw_inch==-2)
-				sem_post(&got_key);
-			else
-				SLEEP(1);
-		}
-		else
-			SLEEP(1);
-	}
-}
-
-int ansi_kbhit(void)
-{
-	int	sval=1;
-
-	if(!sent_ga) {
-		sem_post(&goahead);
-		sent_ga=TRUE;
-	}
-	sem_getvalue(&got_input,&sval);
-	return(sval);
-}
-
-void ansi_setcursortype(int type)
-{
-	switch(type) {
-		case _NOCURSOR:
-		case _SOLIDCURSOR:
-		default:
-			break;
-	}
-}
-
-int ansi_getch(void)
-{
-	int ch;
-
-	if(!sent_ga) {
-		sem_post(&goahead);
-		sent_ga=TRUE;
-	}
-	sem_wait(&got_input);
-	ch=ansi_inch&0xff;
-	ansi_inch=ansi_inch>>8;
-	sem_post(&used_input);
-	sent_ga=FALSE;
-	return(ch);
-}
-
-void ansi_beep(void)
-{
-	ansi_sendstr("\7",1);
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void ansi_textmode(int mode)
-{
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.currmode=COLOR_MODE;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	ansix=1;
-	ansiy=1;
-}
-
-#ifdef __unix__
-void ansi_fixterm(void)
-{
-	tcsetattr(STDIN_FILENO,TCSANOW,&tio_default);
-}
-#endif
-
-#ifndef ENABLE_EXTENDED_FLAGS
-#define ENABLE_INSERT_MODE		0x0020
-#define ENABLE_QUICK_EDIT_MODE	0x0040
-#define ENABLE_EXTENDED_FLAGS	0x0080
-#define ENABLE_AUTO_POSITION	0x0100
-#endif
-
-/*
- * Returns -1 if no character read or -2 on abort
- */
-int ansi_readbyte_cb(void)
-{
-	unsigned char ch;
-
-	if(fread(&ch,1,1,stdin)!=1)
-		return(-1);
-	return(ch);
-}
-
-int ansi_writebyte_cb(const unsigned char ch)
-{
-	return(fwrite(&ch,1,1,stdout));
-}
-
-int ansi_writestr_cb(const unsigned char *str, size_t len)
-{
-	return(fwrite(str,len,1,stdout));
-}
-
-int ansi_initio_cb(void)
-{
-#ifdef _WIN32
-	DWORD conmode = 0;
-	if(isatty(fileno(stdin))) {
-		if(!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_VIRTUAL_TERMINAL_INPUT))
-			return(0);
-
-		GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &conmode);
-		if(!SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), conmode | ENABLE_VIRTUAL_TERMINAL_PROCESSING))
-			return(0);
-	}
-	setmode(fileno(stdout),_O_BINARY);
-	setmode(fileno(stdin),_O_BINARY);
-	setvbuf(stdout, NULL, _IONBF, 0);
-#else
-	struct termios tio_raw;
-
-	if (isatty(STDIN_FILENO))  {
-		tcgetattr(STDIN_FILENO,&tio_default);
-		tio_raw = tio_default;
-		cfmakeraw(&tio_raw);
-		tcsetattr(STDIN_FILENO,TCSANOW,&tio_raw);
-		setvbuf(stdout, NULL, _IONBF, 0);
-		atexit(ansi_fixterm);
-	}
-#endif
-	return(0);
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-int ansi_initciolib(long inmode)
-{
-	int i;
-	char *init="\033[s\033[99B\033[99B\033[99B_\033[99C\033[99C\033[99C_\033[6n\033[u\033[0m_\033[2J\033[H";
-	time_t start;
-
-	cio_api.options = 0;
-
-	ansi_textmode(1);
-	cio_textinfo.screenheight=24;
-	cio_textinfo.screenwidth=80;
-	ciolib_ansi_initio_cb();
-
-	sem_init(&got_key,0,0);
-	sem_init(&got_input,0,0);
-	sem_init(&used_input,0,0);
-	sem_init(&goahead,0,0);
-	sem_init(&need_key,0,0);
-
-	ansi_sendstr(init,-1);
-	_beginthread(ansi_keythread,1024,NULL);
-	start=time(NULL);
-	while(time(NULL)-start < 5 && !ansi_got_row)
-		SLEEP(1);
-	if(!ansi_got_row) {
-		cio_textinfo.screenheight=24;
-		cio_textinfo.screenwidth=80;
-		ansi_got_row=24;
-	}
-	ansivmem=(WORD *)malloc(cio_textinfo.screenheight*cio_textinfo.screenwidth*sizeof(WORD));
-	for(i=0;i<cio_textinfo.screenheight*cio_textinfo.screenwidth;i++)
-		ansivmem[i]=0x0720;
-	/* drain all the semaphores */
-	sem_reset(&got_key);
-	sem_reset(&got_input);
-	sem_reset(&used_input);
-	sem_reset(&goahead);
-	sem_reset(&need_key);
-	return(1);
-}
-
-void ansi_suspend(void)
-{
-#if defined _MSC_VER
-	// Prevents the wait for a key press when exit() is called and the stdin stream is flushed
-	_unlock_file(stdin);
-#endif
-}
-
-CIOLIBEXPORT void ansi_ciolib_setdoorway(int enable)
-{
-	if(cio_api.mode!=CIOLIB_MODE_ANSI)
-		return;
-	switch(enable) {
-	case 0:
-		ansi_sendstr("\033[=255l",7);
-		doorway_enabled=0;
-		break;
-	default:
-		ansi_sendstr("\033[=255h",7);
-		doorway_enabled=1;
-		break;
-	}
-}
diff --git a/ciolib/ansi_cio.h b/ciolib/ansi_cio.h
deleted file mode 100644
index 1a65253..0000000
--- a/ciolib/ansi_cio.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* $Id: ansi_cio.h,v 1.11 2018/07/24 01:10:58 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int	CIOLIB_ANSI_TIMEOUT;
-extern int  (*ciolib_ansi_readbyte_cb)(void);
-extern int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch);
-extern int  (*ciolib_ansi_initio_cb)(void);
-extern int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len);
-
-int ansi_readbyte_cb(void);
-int ansi_writebyte_cb(const unsigned char ch);
-int ansi_initio_cb(void);
-int ansi_writestr_cb(const unsigned char *str, size_t len);
-
-int ansi_puttext(int sx, int sy, int ex, int ey, void *fill);
-int ansi_gettext(int sx, int sy, int ex, int ey, void *fill);
-void ansi_textattr(int);
-int ansi_kbhit(void);
-void ansi_delay(long msec);
-int ansi_wherey(void);
-int ansi_wherex(void);
-int ansi_putch(int ch);
-void ansi_gotoxy(int x, int y);
-int ansi_initciolib(long inmode);
-void ansi_gettextinfo(struct text_info *info);
-void ansi_setcursortype(int type);
-int ansi_getch(void);
-int ansi_getche(void);
-void ansi_beep(void);
-void ansi_textmode(int mode);
-void ansi_suspend(void);
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/ciolib/bitmap_con.c b/ciolib/bitmap_con.c
deleted file mode 100644
index 06fabef..0000000
--- a/ciolib/bitmap_con.c
+++ /dev/null
@@ -1,1785 +0,0 @@
-/* $Id: bitmap_con.c,v 1.148 2020/06/27 00:04:44 deuce Exp $ */
-
-#include <stdarg.h>
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>
-#include <string.h>
-
-#include "threadwrap.h"
-#include "semwrap.h"
-#include "gen_defs.h"
-#include "genwrap.h"
-#include "dirwrap.h"
-#include "xpbeep.h"
-#include "scale.h"
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "vidmodes.h"
-#include "bitmap_con.h"
-
-static uint32_t palette[65536];
-
-#if 0
-
-static int dbg_pthread_mutex_lock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_lock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-static int dbg_pthread_mutex_unlock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_unlock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-static int dbg_pthread_mutex_trylock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_trylock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-#define pthread_mutex_lock(a)		dbg_pthread_mutex_lock(a, __LINE__)
-#define pthread_mutex_unlock(a)		dbg_pthread_mutex_unlock(a, __LINE__)
-#define pthread_mutex_trylock(a)	dbg_pthread_trymutex_lock(a, __LINE__)
-
-#endif
-
-/* Structs */
-
-struct bitmap_screen {
-	uint32_t *screen;
-	int		screenwidth;
-	int		screenheight;
-	pthread_mutex_t	screenlock;
-	int		update_pixels;
-	struct rectlist *rect;
-};
-
-struct bitmap_callbacks {
-	void	(*drawrect)		(struct rectlist *data);
-	void	(*flush)		(void);
-	pthread_mutex_t lock;
-	unsigned rects;
-};
-
-/* Static globals */
-
-static int default_font=-99;
-static int current_font[4]={-99, -99, -99, -99};
-static int bitmap_initialized=0;
-static struct bitmap_screen screena;
-static struct bitmap_screen screenb;
-struct video_stats vstat;
-static struct bitmap_callbacks callbacks;
-static unsigned char *font[4];
-static int force_redraws=0;
-static int force_cursor=0;
-struct rectlist *free_rects;
-pthread_mutex_t free_rect_lock;
-
-/* The read lock must be held here. */
-#define PIXEL_OFFSET(screen, x, y)	( (y)*(screen).screenwidth+(x) )
-
-/* Exported globals */
-
-pthread_mutex_t		vstatlock;
-pthread_mutex_t blinker_lock;
-
-/* Forward declarations */
-
-static int bitmap_loadfont_locked(const char *filename);
-static void set_vmem_cell(struct vstat_vmem *vmem_ptr, size_t pos, uint16_t cell, uint32_t fg, uint32_t bg);
-static int bitmap_attr2palette_locked(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-static void	cb_drawrect(struct rectlist *data);
-static void request_redraw_locked(void);
-static void request_redraw(void);
-static void memset_u32(void *buf, uint32_t u, size_t len);
-static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos);
-static void cb_flush(void);
-static int check_redraw(void);
-static void blinker_thread(void *data);
-static __inline void both_screens(struct bitmap_screen** current, struct bitmap_screen** noncurrent);
-static int update_from_vmem(int force);
-static int bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-static uint32_t color_value(uint32_t col);
-void bitmap_drv_free_rect(struct rectlist *rect);
-
-/**************************************************************/
-/* These functions get called from the driver and ciolib only */
-/**************************************************************/
-
-static int bitmap_loadfont_locked(const char *filename)
-{
-	static char current_filename[MAX_PATH];
-	unsigned int fontsize;
-	int fdw;
-	int fw;
-	int fh;
-	int i;
-	FILE	*fontfile=NULL;
-
-	if(!bitmap_initialized)
-		return(0);
-	if(current_font[0]==-99 || current_font[0]>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2)) {
-		for(i=0; conio_fontdata[i].desc != NULL; i++) {
-			if(!strcmp(conio_fontdata[i].desc, "Codepage 437 English")) {
-				current_font[0]=i;
-				break;
-			}
-		}
-		if(conio_fontdata[i].desc==NULL)
-			current_font[0]=0;
-	}
-	if(current_font[0]==-1)
-		filename=current_filename;
-	else if(conio_fontdata[current_font[0]].desc==NULL)
-		return(0);
-
-	for (i=1; i<sizeof(current_font)/sizeof(current_font[0]); i++) {
-		if(current_font[i] == -1)
-			;
-		else if (current_font[i] < 0)
-			current_font[i]=current_font[0];
-		else if(conio_fontdata[current_font[i]].desc==NULL)
-			current_font[i]=current_font[0];
-	}
-
-	fh=vstat.charheight;
-	fdw = vstat.charwidth - (vstat.flags & VIDMODES_FLAG_EXPAND) ? 1 : 0;
-	fw = fdw / 8 + (fdw % 8 ? 1 : 0);
-
-	fontsize=fw*fh*256*sizeof(unsigned char);
-
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++) {
-		if(font[i])
-			FREE_AND_NULL(font[i]);
-		if((font[i]=(unsigned char *)malloc(fontsize))==NULL)
-			goto error_return;
-	}
-
-	if(filename != NULL) {
-		if(flength(filename)!=fontsize)
-			goto error_return;
-		if((fontfile=fopen(filename,"rb"))==NULL)
-			goto error_return;
-		if(fread(font[0], 1, fontsize, fontfile)!=fontsize)
-			goto error_return;
-		fclose(fontfile);
-		fontfile=NULL;
-		current_font[0]=-1;
-		if(filename != current_filename)
-			SAFECOPY(current_filename,filename);
-		for (i=1; i<sizeof(font)/sizeof(font[0]); i++) {
-			if (current_font[i]==-1)
-				memcpy(font[i], font[0], fontsize);
-		}
-	}
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++) {
-		if (current_font[i] < 0)
-			continue;
-		switch(fdw) {
-			case 8:
-				switch(vstat.charheight) {
-					case 8:
-						if(conio_fontdata[current_font[i]].eight_by_eight==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_eight, fontsize);
-						break;
-					case 14:
-						if(conio_fontdata[current_font[i]].eight_by_fourteen==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_fourteen, fontsize);
-						break;
-					case 16:
-						if(conio_fontdata[current_font[i]].eight_by_sixteen==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_sixteen, fontsize);
-						break;
-					default:
-						goto error_return;
-				}
-				break;
-			default:
-				goto error_return;
-		}
-	}
-
-    return(1);
-
-error_return:
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++)
-		FREE_AND_NULL(font[i]);
-	if(fontfile)
-		fclose(fontfile);
-	return(0);
-}
-
-/***************************************************/
-/* These functions get called from the driver only */
-/***************************************************/
-
-/***********************************************/
-/* These functions get called from ciolib only */
-/***********************************************/
-
-static int bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	struct vstat_vmem *vmem_ptr;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			memcpy(&vmem_ptr->vmem[y*cio_textinfo.screenwidth+x], fill++, sizeof(*fill));
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	return(1);
-}
-
-static void
-set_vmem_cell(struct vstat_vmem *vmem_ptr, size_t pos, uint16_t cell, uint32_t fg, uint32_t bg)
-{
-	int		altfont;
-	int		font;
-
-	bitmap_attr2palette_locked(cell>>8, fg == 0xffffff ? &fg : NULL, bg == 0xffffff ? &bg : NULL);
-
-	altfont = (cell>>11 & 0x01) | ((cell>>14) & 0x02);
-	if (!vstat.bright_altcharset)
-		altfont &= ~0x01;
-	if (!vstat.blink_altcharset)
-		altfont &= ~0x02;
-	font=current_font[altfont];
-	if (font == -99)
-		font = default_font;
-	if (font < 0 || font > 255)
-		font = 0;
-
-	vmem_ptr->vmem[pos].legacy_attr = cell >> 8;
-	vmem_ptr->vmem[pos].ch = cell & 0xff;
-	vmem_ptr->vmem[pos].fg = fg;
-	vmem_ptr->vmem[pos].bg = bg;
-	vmem_ptr->vmem[pos].font = font;
-}
-
-static int bitmap_attr2palette_locked(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	uint32_t fg = attr & 0x0f;
-	uint32_t bg = (attr >> 4) & 0x0f;
-
-	if(!vstat.bright_background)
-		bg &= 0x07;
-	if(vstat.no_bright)
-		fg &= 0x07;
-
-	if (fgp)
-		*fgp = vstat.palette[fg];
-	if (bgp)
-		*bgp = vstat.palette[bg];
-
-	return 1;
-}
-
-/**********************************************************************/
-/* These functions get called from ciolib and the blinker thread only */
-/**********************************************************************/
-
-static int
-cursor_visible_locked(void)
-{
-	if (!vstat.curs_visible)
-		return 0;
-	if (vstat.curs_start > vstat.curs_end)
-		return 0;
-	if (vstat.curs_blinks) {
-		if (vstat.curs_blink)
-			return 1;
-		return 0;
-	}
-	return 1;
-}
-
-static void	cb_drawrect(struct rectlist *data)
-{
-	int x, y;
-	uint32_t *pixel;
-	uint32_t cv;
-
-	if (data == NULL)
-		return;
-	/*
-	 * Draw the cursor if it's visible
-	 * 1) It's located at vstat.curs_col/vstat.curs_row.
-	 * 2) The size is defined by vstat.curs_start and vstat.curs_end...
-	 *    the are both rows from the top of the cell.
-	 *    If vstat.curs_start > vstat.curs_end, the cursor is not shown.
-	 * 3) If vstat.curs_visible is false, the cursor is not shown.
-	 * 4) If vstat.curs_blinks is false, the cursor does not blink.
-	 * 5) When blinking, the cursor is shown when vstat.blink is true.
-	 */
-	pthread_mutex_lock(&vstatlock);
-	if (cursor_visible_locked()) {
-		cv = color_value(ciolib_fg);
-		for (y = vstat.curs_start; y <= vstat.curs_end; y++) {
-			pixel = &data->data[((vstat.curs_row - 1) * vstat.charheight + y) * data->rect.width + (vstat.curs_col - 1) * vstat.charwidth];
-			for (x = 0; x < vstat.charwidth; x++) {
-				*(pixel++) = cv;
-			}
-		}
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_lock(&callbacks.lock);
-	callbacks.drawrect(data);
-	callbacks.rects++;
-	pthread_mutex_unlock(&callbacks.lock);
-}
-
-static void request_redraw_locked(void)
-{
-	force_redraws = 1;
-}
-
-static void request_redraw(void)
-{
-	pthread_mutex_lock(&vstatlock);
-	request_redraw_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/*
- * Called with the screen lock held
- */
-static struct rectlist *alloc_full_rect(struct bitmap_screen *screen)
-{
-	struct rectlist * ret;
-
-	pthread_mutex_lock(&free_rect_lock);
-	while (free_rects) {
-		if (free_rects->rect.width == screen->screenwidth && free_rects->rect.height == screen->screenheight) {
-			ret = free_rects;
-			free_rects = free_rects->next;
-			ret->next = NULL;
-			ret->rect.x = ret->rect.y = 0;
-			pthread_mutex_unlock(&free_rect_lock);
-			return ret;
-		}
-		else {
-			free(free_rects->data);
-			ret = free_rects->next;
-			free(free_rects);
-			free_rects = ret;
-		}
-	}
-	pthread_mutex_unlock(&free_rect_lock);
-
-	ret = malloc(sizeof(struct rectlist));
-	ret->next = NULL;
-	ret->rect.x = 0;
-	ret->rect.y = 0;
-	ret->rect.width = screen->screenwidth;
-	ret->rect.height = screen->screenheight;
-	ret->data = malloc(ret->rect.width * ret->rect.height * sizeof(ret->data[0]));
-	if (ret->data == NULL)
-		FREE_AND_NULL(ret);
-	return ret;
-}
-
-static uint32_t color_value(uint32_t col)
-{
-	if (col & 0x80000000)
-		return col & 0xffffff;
-	if ((col & 0xffffff) < sizeof(palette) / sizeof(palette[0]))
-		return palette[col & 0xffffff] & 0xffffff;
-	fprintf(stderr, "Invalid colour value: %08x\n", col);
-	return 0;
-}
-
-static struct rectlist *get_full_rectangle_locked(struct bitmap_screen *screen)
-{
-	struct rectlist *rect;
-
-	// TODO: Some sort of caching here would make things faster...?
-	if(callbacks.drawrect) {
-		rect = alloc_full_rect(screen);
-		if (!rect)
-			return rect;
-		memcpy(rect->data, screen->rect->data, sizeof(*rect->data) * screen->screenwidth * screen->screenheight);
-		return rect;
-	}
-	return NULL;
-}
-
-static void memset_u32(void *buf, uint32_t u, size_t len)
-{
-	size_t i;
-	char *cbuf = buf;
-
-	for (i = 0; i < len; i++) {
-		memcpy(cbuf, &u, sizeof(uint32_t));
-		cbuf += sizeof(uint32_t);
-	}
-}
-
-/*
- * vstatlock needs to be held.
- */
-static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos)
-{
-	uint32_t fg;
-	uint32_t bg;
-	int fdw;
-	int		xoffset=(xpos-1)*vstat.charwidth;
-	int		yoffset=(ypos-1)*vstat.charheight;
-	int		x;
-	int		fdx;
-	uint8_t fb = 0;
-	int		y;
-	int		fontoffset;
-	int		pixeloffset;
-	unsigned char *this_font;
-	WORD	sch;
-	struct vstat_vmem *vmem_ptr;
-	BOOL	draw_fg = TRUE;
-
-	if(!bitmap_initialized) {
-		return(-1);
-	}
-
-	vmem_ptr = vstat.vmem;
-
-	if(!vmem_ptr) {
-		return(-1);
-	}
-
-	sch=vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].legacy_attr << 8 | vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].ch;
-	fg = vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].fg;
-	bg = vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].bg;
-
-	if (vstat.forced_font) {
-		this_font = vstat.forced_font;
-	}
-	else {
-		if (current_font[0] == -1)
-			this_font = font[0];
-		else {
-			switch (vstat.charheight) {
-				case 8:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_eight;
-					break;
-				case 14:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_fourteen;
-					break;
-				case 16:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_sixteen;
-					break;
-				default:
-					return(-1);
-			}
-		}
-	}
-	if (this_font == NULL)
-		this_font = font[0];
-	fdw = vstat.charwidth - (vstat.flags & VIDMODES_FLAG_EXPAND) ? 1 : 0;
-	fontoffset=(sch & 0xff) * (vstat.charheight * ((fdw + 7) / 8));
-
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-
-	if ((xoffset + vstat.charwidth > screena.screenwidth) || (yoffset + vstat.charheight > screena.screenheight) ||
-	    (xoffset + vstat.charwidth > screenb.screenwidth) || (yoffset + vstat.charheight > screenb.screenheight)) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		return(-1);
-	}
-
-	if((!screena.screen) || (!screenb.screen)) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		return(-1);
-	}
-
-	draw_fg = ((!(sch & 0x8000)) || vstat.no_blink);
-	pixeloffset = PIXEL_OFFSET(screena, xoffset, yoffset);
-	for(y=0; y<vstat.charheight; y++) {
-		for(x=0; x<vstat.charwidth; x++) {
-			fdx = x;
-			fb = this_font[fontoffset];
-			if ((x & 0x07) == 7)
-				fontoffset++;
-			if (vstat.flags & VIDMODES_FLAG_EXPAND) {
-				if (x == vstat.charwidth - 1) {
-					fontoffset--;
-					fdx--;
-					if (!(vstat.flags & VIDMODES_FLAG_LINE_GRAPHICS_EXPAND)) {
-						fb = 0;
-					}
-					else if ((sch & 0xff) >= 0xC0 && (sch & 0xff) <= 0xDF) {
-						fb = this_font[fontoffset];
-					}
-					else
-						fb = 0;
-					
-				}
-			}
-
-			if(fb & (0x80 >> (fdx & 7)) && draw_fg) {
-				if (screena.screen[pixeloffset] != fg) {
-					screena.update_pixels = 1;
-					screena.screen[pixeloffset] = fg;
-					screena.rect->data[pixeloffset] = color_value(fg);
-				}
-			}
-			else {
-				if (screena.screen[pixeloffset] != bg) {
-					screena.update_pixels = 1;
-					screena.screen[pixeloffset] = bg;
-					screena.rect->data[pixeloffset] = color_value(bg);
-				}
-			}
-
-			if(fb & (0x80 >> (fdx & 7))) {
-				if (screenb.screen[pixeloffset] != fg) {
-					screenb.update_pixels = 1;
-					screenb.screen[pixeloffset] = fg;
-					screenb.rect->data[pixeloffset] = color_value(fg);
-				}
-			}
-			else {
-				if (screenb.screen[pixeloffset] != bg) {
-					screenb.update_pixels = 1;
-					screenb.screen[pixeloffset]=bg;
-					screenb.rect->data[pixeloffset] = color_value(bg);
-				}
-			}
-			pixeloffset++;
-		}
-		if (x & 0x07)
-			fontoffset++;
-		pixeloffset += screena.screenwidth - vstat.charwidth;
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-
-	return(0);
-}
-
-/***********************************************************/
-/* These functions get called from the blinker thread only */
-/***********************************************************/
-
-static void cb_flush(void)
-{
-	pthread_mutex_lock(&callbacks.lock);
-	if (callbacks.rects) {
-		callbacks.flush();
-		callbacks.rects = 0;
-	}
-	pthread_mutex_unlock(&callbacks.lock);
-}
-
-static int check_redraw(void)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = force_redraws;
-	force_redraws = 0;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-/* Blinker Thread */
-static void blinker_thread(void *data)
-{
-	void *rect;
-	int count=0;
-	int curs_changed;
-	int blink_changed;
-	struct bitmap_screen *screen;
-	struct bitmap_screen *ncscreen;
-
-	SetThreadName("Blinker");
-	while(1) {
-		curs_changed = 0;
-		blink_changed = 0;
-		do {
-			SLEEP(10);
-			both_screens(&screen, &ncscreen);
-		} while (screen->screen == NULL);
-		count++;
-		if (count==25) {
-			pthread_mutex_lock(&vstatlock);
-			curs_changed = cursor_visible_locked();
-			if(vstat.curs_blink)
-				vstat.curs_blink=FALSE;
-			else
-				vstat.curs_blink=TRUE;
-			curs_changed = (curs_changed != cursor_visible_locked());
-			pthread_mutex_unlock(&vstatlock);
-		}
-		if(count==50) {
-			pthread_mutex_lock(&vstatlock);
-			if(vstat.blink)
-				vstat.blink=FALSE;
-			else
-				vstat.blink=TRUE;
-			blink_changed = 1;
-			curs_changed = cursor_visible_locked();
-			if(vstat.curs_blink)
-				vstat.curs_blink=FALSE;
-			else
-				vstat.curs_blink=TRUE;
-			curs_changed = (curs_changed != cursor_visible_locked());
-			count=0;
-			pthread_mutex_unlock(&vstatlock);
-		}
-		/* Lock out ciolib while we handle shit */
-		pthread_mutex_lock(&blinker_lock);
-		if (check_redraw()) {
-			if (update_from_vmem(TRUE))
-				request_redraw();
-		}
-		else {
-			if (count==0)
-				if (update_from_vmem(FALSE))
-					request_redraw();
-		}
-		pthread_mutex_lock(&screen->screenlock);
-		// TODO: Maybe we can optimize the blink_changed forced update?
-		if (screen->update_pixels || curs_changed || blink_changed) {
-			// If the other screen is update_pixels == 2, clear it.
-			pthread_mutex_lock(&ncscreen->screenlock);
-			if (ncscreen->update_pixels == 2)
-				ncscreen->update_pixels = 0;
-			pthread_mutex_unlock(&ncscreen->screenlock);
-			rect = get_full_rectangle_locked(screen);
-			screen->update_pixels = 0;
-			pthread_mutex_unlock(&screen->screenlock);
-			cb_drawrect(rect);
-		}
-		else {
-			if (force_cursor) {
-				rect = get_full_rectangle_locked(screen);
-			}
-			pthread_mutex_unlock(&screen->screenlock);
-			if (force_cursor) {
-				cb_drawrect(rect);
-				force_cursor = 0;
-			}
-		}
-		cb_flush();
-		pthread_mutex_unlock(&blinker_lock);
-	}
-}
-
-static __inline struct bitmap_screen *noncurrent_screen_locked(void)
-{
-	if (vstat.blink)
-		return &screenb;
-	return &screena;
-}
-
-static __inline struct bitmap_screen *current_screen_locked(void)
-{
-	if (vstat.blink)
-		return &screena;
-	return(&screenb);
-}
-
-static __inline void both_screens(struct bitmap_screen** current, struct bitmap_screen** noncurrent)
-{
-	pthread_mutex_lock(&vstatlock);
-	*current = current_screen_locked();
-	*noncurrent = noncurrent_screen_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/*
- * Updates any changed cells... blinking, modified flags, and the cursor
- * Is also used (with force = TRUE) to completely redraw the screen from
- * vmem (such as in the case of a font load).
- */
-static int update_from_vmem(int force)
-{
-	static struct video_stats vs;
-	struct vstat_vmem *vmem_ptr;
-	int x,y,width,height;
-	unsigned int pos;
-
-	int bright_attr_changed=0;
-	int blink_attr_changed=0;
-
-	if(!bitmap_initialized)
-		return(-1);
-
-	width=cio_textinfo.screenwidth;
-	height=cio_textinfo.screenheight;
-
-	pthread_mutex_lock(&vstatlock);
-
-	if (vstat.vmem == NULL) {
-		pthread_mutex_unlock(&vstatlock);
-		return -1;
-	}
-
-	if(vstat.vmem->vmem == NULL) {
-		pthread_mutex_unlock(&vstatlock);
-		return -1;
-	}
-
-	/* If we change window size, redraw everything */
-	if(vs.cols!=vstat.cols || vs.rows != vstat.rows) {
-		/* Force a full redraw */
-		width=vstat.cols;
-		height=vstat.rows;
-		force=1;
-	}
-
-	/* Did the meaning of the blink bit change? */
-	if (vstat.bright_background != vs.bright_background ||
-			vstat.no_blink != vs.no_blink ||
-			vstat.blink_altcharset != vs.blink_altcharset)
-	    blink_attr_changed = 1;
-
-	/* Did the meaning of the bright bit change? */
-	if (vstat.no_bright != vs.no_bright ||
-			vstat.bright_altcharset != vs.bright_altcharset)
-		bright_attr_changed = 1;
-
-	/* Get vmem pointer */
-	vmem_ptr = get_vmem(&vstat);
-
-	/* 
-	 * Now we go through each character seeing if it's changed (or force is set)
-	 * We combine updates into rectangles by lines...
-	 * 
-	 * First, in the same line, we build this_rect.
-	 * At the end of the line, if this_rect is the same width as the screen,
-	 * we add it to last_rect.
-	 */
-
-	for(y=0;y<height;y++) {
-		pos=y*vstat.cols;
-		for(x=0;x<width;x++) {
-			/* Last this char been updated? */
-			if(force										/* Forced */
-			    || ((vstat.vmem->vmem[pos].legacy_attr & 0x80) && blink_attr_changed)
-			    || ((vstat.vmem->vmem[pos].legacy_attr & 0x08) && bright_attr_changed))	/* Bright char */
-			    {
-				bitmap_draw_one_char(x+1,y+1);
-			}
-			pos++;
-		}
-	}
-	release_vmem(vmem_ptr);
-
-	pthread_mutex_unlock(&vstatlock);
-
-	vs = vstat;
-
-	return(0);
-}
-
-/*************************************/
-
-/**********************/
-/* Called from ciolib */
-/**********************/
-int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill)
-{
-	int x, y;
-	int ret = 1;
-	uint16_t *buf = fill;
-	struct vstat_vmem *vmem_ptr;
-
-	pthread_mutex_lock(&blinker_lock);
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			set_vmem_cell(vmem_ptr, y*cio_textinfo.screenwidth+x, *(buf++), 0x00ffffff, 0x00ffffff);
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return ret;
-}
-
-int bitmap_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int ret;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	pthread_mutex_lock(&blinker_lock);
-	ret = bitmap_vmem_puttext_locked(sx, sy, ex, ey, fill);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	struct vstat_vmem *vmem_ptr;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL) {
-		return(0);
-	}
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++)
-			memcpy(fill++, &vmem_ptr->vmem[y*cio_textinfo.screenwidth+x], sizeof(*fill));
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(1);
-}
-
-void bitmap_gotoxy(int x, int y)
-{
-	if(!bitmap_initialized)
-		return;
-	/* Move cursor location */
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if (vstat.curs_col != x + cio_textinfo.winleft - 1 || vstat.curs_row != y + cio_textinfo.wintop - 1) {
-		cio_textinfo.curx=x;
-		cio_textinfo.cury=y;
-		vstat.curs_col = x + cio_textinfo.winleft - 1;
-		vstat.curs_row = y + cio_textinfo.wintop - 1;
-		if (cursor_visible_locked())
-			force_cursor = 1;
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_setcursortype(int type)
-{
-	if(!bitmap_initialized)
-		return;
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	switch(type) {
-		case _NOCURSOR:
-			vstat.curs_start=0xff;
-			vstat.curs_end=0;
-			break;
-		case _SOLIDCURSOR:
-			vstat.curs_start=0;
-			vstat.curs_end=vstat.charheight-1;
-			force_cursor = 1;
-			break;
-		default:
-		    vstat.curs_start = vstat.default_curs_start;
-		    vstat.curs_end = vstat.default_curs_end;
-			force_cursor = 1;
-			break;
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_setfont(int font, int force, int font_num)
-{
-	int changemode=0;
-	int	newmode=-1;
-	struct text_info ti;
-	struct vmem_cell	*old;
-	int		ow,oh;
-	int		row,col;
-	struct vmem_cell	*new;
-	int		attr;
-	struct vmem_cell	*pold;
-	struct vmem_cell	*pnew;
-
-	if(!bitmap_initialized)
-		return(0);
-	if(font < 0 || font>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2))
-		return(0);
-
-	if(conio_fontdata[font].eight_by_sixteen!=NULL)
-		newmode=C80;
-	else if(conio_fontdata[font].eight_by_fourteen!=NULL)
-		newmode=C80X28;
-	else if(conio_fontdata[font].eight_by_eight!=NULL)
-		newmode=C80X50;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	switch(vstat.charheight) {
-		case 8:
-			if(conio_fontdata[font].eight_by_eight==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-		case 14:
-			if(conio_fontdata[font].eight_by_fourteen==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-		case 16:
-			if(conio_fontdata[font].eight_by_sixteen==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-	}
-	if(changemode && (newmode==-1 || font_num > 1))
-		goto error_return;
-	switch(font_num) {
-		case 0:
-			default_font=font;
-			/* Fall-through */
-		case 1:
-			current_font[0]=font;
-			break;
-		case 2:
-		case 3:
-		case 4:
-			current_font[font_num-1]=font;
-			break;
-	}
-
-	if(changemode) {
-		gettextinfo(&ti);
-
-		attr=ti.attribute;
-		ow=ti.screenwidth;
-		oh=ti.screenheight;
-
-		old=malloc(ow*oh*sizeof(*old));
-		if(old) {
-			bitmap_vmem_gettext(1,1,ow,oh,old);
-			textmode(newmode);
-			new=malloc(ti.screenwidth*ti.screenheight*sizeof(*new));
-			if(!new) {
-				free(old);
-				pthread_mutex_unlock(&vstatlock);
-				pthread_mutex_unlock(&blinker_lock);
-				return 0;
-			}
-			pold=old;
-			pnew=new;
-			for(row=0; row<ti.screenheight; row++) {
-				for(col=0; col<ti.screenwidth; col++) {
-					if(row < oh) {
-						if(col < ow) {
-							memcpy(new, old, sizeof(*old));
-							new->font = font;
-							new++;
-							old++;
-						}
-						else {
-							new->ch=' ';
-							new->legacy_attr=attr;
-							new->font = font;
-							new->fg = ciolib_fg;
-							new->bg = ciolib_bg;
-							new++;
-						}
-					}
-					else {
-							new->ch=' ';
-							new->legacy_attr=attr;
-							new->font = font;
-							new->fg = ciolib_fg;
-							new->bg = ciolib_bg;
-							new++;
-					}
-				}
-				if(row < oh) {
-					for(;col<ow;col++)
-						old++;
-				}
-			}
-			bitmap_vmem_puttext(1,1,ti.screenwidth,ti.screenheight,pnew);
-			free(pnew);
-			free(pold);
-		}
-		else {
-			FREE_AND_NULL(old);
-		}
-	}
-	bitmap_loadfont_locked(NULL);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(1);
-
-error_return:
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(0);
-}
-
-int bitmap_getfont(int font_num)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	if (font_num == 0)
-		ret = default_font;
-	else if (font_num > 4)
-		ret = -1;
-	else
-		ret = current_font[font_num - 1];
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_loadfont(const char *filename)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	ret = bitmap_loadfont_locked(filename);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return ret;
-}
-
-int bitmap_movetext(int x, int y, int ex, int ey, int tox, int toy)
-{
-	int	direction=1;
-	int	cy;
-	int	destoffset;
-	int	sourcepos;
-	int width=ex-x+1;
-	int height=ey-y+1;
-	struct vstat_vmem *vmem_ptr;
-	int32_t sdestoffset;
-	size_t ssourcepos;
-	int32_t screeny;
-
-	if(		   x<1
-			|| y<1
-			|| ex<1
-			|| ey<1
-			|| tox<1
-			|| toy<1
-			|| x>cio_textinfo.screenwidth
-			|| ex>cio_textinfo.screenwidth
-			|| tox>cio_textinfo.screenwidth
-			|| y>cio_textinfo.screenheight
-			|| ey>cio_textinfo.screenheight
-			|| toy>cio_textinfo.screenheight) {
-		return(0);
-	}
-
-	if(toy > y)
-		direction=-1;
-
-	pthread_mutex_lock(&blinker_lock);
-	if (direction == -1) {
-		sourcepos=(y+height-2)*cio_textinfo.screenwidth+(x-1);
-		destoffset=(((toy+height-2)*cio_textinfo.screenwidth+(tox-1))-sourcepos);
-	}
-	else {
-		sourcepos=(y-1)*cio_textinfo.screenwidth+(x-1);
-		destoffset=(((toy-1)*cio_textinfo.screenwidth+(tox-1))-sourcepos);
-	}
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(cy=0; cy<height; cy++) {
-		memmove(&(vmem_ptr->vmem[sourcepos+destoffset]), &(vmem_ptr->vmem[sourcepos]), sizeof(vmem_ptr->vmem[0])*width);
-		sourcepos += direction * cio_textinfo.screenwidth;
-	}
-
-	if (direction == -1) {
-		ssourcepos=((y + height - 1)     * vstat.charheight - 1) * vstat.scrnwidth + (x - 1)  * vstat.charwidth;
-		sdestoffset=((((toy + height - 1) * vstat.charheight - 1) * vstat.scrnwidth + (tox - 1) * vstat.charwidth) - ssourcepos);
-	}
-	else {
-		ssourcepos=(y - 1)     * vstat.scrnwidth * vstat.charheight + (x - 1)  * vstat.charwidth;
-		sdestoffset=(((toy - 1) * vstat.scrnwidth * vstat.charheight + (tox - 1) * vstat.charwidth) - ssourcepos);
-	}
-
-	pthread_mutex_lock(&screena.screenlock);
-	for(screeny=0; screeny < height*vstat.charheight; screeny++) {
-		memmove(&(screena.screen[ssourcepos+sdestoffset]), &(screena.screen[ssourcepos]), sizeof(screena.screen[0])*width*vstat.charwidth);
-		memmove(&(screena.rect->data[ssourcepos+sdestoffset]), &(screena.rect->data[ssourcepos]), sizeof(screena.screen[0])*width*vstat.charwidth);
-		ssourcepos += direction * vstat.scrnwidth;
-	}
-	screena.update_pixels = 1;
-	pthread_mutex_unlock(&screena.screenlock);
-
-	if (direction == -1) {
-		ssourcepos=((y+height-1)     *vstat.charheight-1)*vstat.scrnwidth + (x-1)  *vstat.charwidth;
-		sdestoffset=((((toy+height-1)*vstat.charheight-1)*vstat.scrnwidth + (tox-1)*vstat.charwidth)-ssourcepos);
-	}
-	else {
-		ssourcepos=(y-1)     *vstat.scrnwidth*vstat.charheight + (x-1)  *vstat.charwidth;
-		sdestoffset=(((toy-1)*vstat.scrnwidth*vstat.charheight + (tox-1)*vstat.charwidth)-ssourcepos);
-	}
-
-	pthread_mutex_lock(&screenb.screenlock);
-	for(screeny=0; screeny < height*vstat.charheight; screeny++) {
-		memmove(&(screenb.screen[ssourcepos+sdestoffset]), &(screenb.screen[ssourcepos]), sizeof(screenb.screen[0])*width*vstat.charwidth);
-		memmove(&(screenb.rect->data[ssourcepos+sdestoffset]), &(screenb.rect->data[ssourcepos]), sizeof(screenb.screen[0])*width*vstat.charwidth);
-		ssourcepos += direction * vstat.scrnwidth;
-	}
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return(1);
-}
-
-void bitmap_clreol(void)
-{
-	int pos,x;
-	WORD fill=(cio_textinfo.attribute<<8)|' ';
-	struct vstat_vmem *vmem_ptr;
-	int row;
-
-	pthread_mutex_lock(&blinker_lock);
-	row = cio_textinfo.cury + cio_textinfo.wintop - 1;
-	pos=(row - 1)*cio_textinfo.screenwidth;
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(x=cio_textinfo.curx+cio_textinfo.winleft-2; x<cio_textinfo.winright; x++) {
-		set_vmem_cell(vmem_ptr, pos+x, fill, ciolib_fg, ciolib_bg);
-		bitmap_draw_one_char(x+1, row);
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_clrscr(void)
-{
-	int x,y;
-	WORD fill=(cio_textinfo.attribute<<8)|' ';
-	struct vstat_vmem *vmem_ptr;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y = cio_textinfo.wintop-1; y < cio_textinfo.winbottom && y < vstat.rows; y++) {
-		for(x=cio_textinfo.winleft-1; x<cio_textinfo.winright && x < vstat.cols; x++) {
-			set_vmem_cell(vmem_ptr, y*cio_textinfo.screenwidth+x, fill, ciolib_fg, ciolib_bg);
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_getcustomcursor(int *s, int *e, int *r, int *b, int *v)
-{
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(s)
-		*s=vstat.curs_start;
-	if(e)
-		*e=vstat.curs_end;
-	if(r)
-		*r=vstat.charheight;
-	if(b)
-		*b=vstat.curs_blinks;
-	if(v)
-		*v=vstat.curs_visible;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_setcustomcursor(int s, int e, int r, int b, int v)
-{
-	double ratio;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(r==0)
-		ratio=0;
-	else
-		ratio=vstat.charheight/r;
-	if(s>=0)
-		vstat.curs_start=s*ratio;
-	if(e>=0)
-		vstat.curs_end=e*ratio;
-	if(b>=0)
-		vstat.curs_blinks=b;
-	if(v>=0)
-		vstat.curs_visible=v;
-	force_cursor = 1;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_getvideoflags(void)
-{
-	int flags=0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(vstat.bright_background)
-		flags |= CIOLIB_VIDEO_BGBRIGHT;
-	if(vstat.no_bright)
-		flags |= CIOLIB_VIDEO_NOBRIGHT;
-	if(vstat.bright_altcharset)
-		flags |= CIOLIB_VIDEO_ALTCHARS;
-	if(vstat.no_blink)
-		flags |= CIOLIB_VIDEO_NOBLINK;
-	if(vstat.blink_altcharset)
-		flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(flags);
-}
-
-void bitmap_setvideoflags(int flags)
-{
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(flags & CIOLIB_VIDEO_BGBRIGHT)
-		vstat.bright_background=1;
-	else
-		vstat.bright_background=0;
-
-	if(flags & CIOLIB_VIDEO_NOBRIGHT)
-		vstat.no_bright=1;
-	else
-		vstat.no_bright=0;
-
-	if(flags & CIOLIB_VIDEO_ALTCHARS)
-		vstat.bright_altcharset=1;
-	else
-		vstat.bright_altcharset=0;
-
-	if(flags & CIOLIB_VIDEO_NOBLINK)
-		vstat.no_blink=1;
-	else
-		vstat.no_blink=0;
-
-	if(flags & CIOLIB_VIDEO_BLINKALTCHARS)
-		vstat.blink_altcharset=1;
-	else
-		vstat.blink_altcharset=0;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	ret = bitmap_attr2palette_locked(attr, fgp, bgp);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_setpixel(uint32_t x, uint32_t y, uint32_t colour)
-{
-	pthread_mutex_lock(&blinker_lock);
-
-	pthread_mutex_lock(&screena.screenlock);
-	if (x < screena.screenwidth && y < screena.screenheight) {
-		if (screena.screen[PIXEL_OFFSET(screena, x, y)] != colour) {
-			screena.screen[PIXEL_OFFSET(screena, x, y)]=colour;
-			screena.update_pixels = 1;
-			screena.rect->data[PIXEL_OFFSET(screena, x, y)]=color_value(colour);
-		}
-	}
-	pthread_mutex_unlock(&screena.screenlock);
-
-	pthread_mutex_lock(&screenb.screenlock);
-	if (x < screenb.screenwidth && y < screenb.screenheight) {
-		if (screenb.screen[PIXEL_OFFSET(screenb, x, y)] != colour) {
-			screenb.screen[PIXEL_OFFSET(screenb, x, y)]=colour;
-			screenb.update_pixels = 1;
-			screenb.rect->data[PIXEL_OFFSET(screenb, x, y)]=color_value(colour);
-		}
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-
-	pthread_mutex_unlock(&blinker_lock);
-
-	return 1;
-}
-
-int bitmap_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask)
-{
-	uint32_t x, y;
-	uint32_t width,height;
-	char *m = mask;
-	int mask_bit;
-	size_t mask_byte;
-	size_t pos;
-
-	if (pixels == NULL)
-		return 0;
-
-	if (sx > ex || sy > ey)
-		return 0;
-
-	width = ex - sx + 1;
-	height = ey - sy + 1;
-
-	if (width + x_off > pixels->width)
-		return 0;
-
-	if (height + y_off > pixels->height)
-		return 0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (ex > screena.screenwidth || ey > screena.screenheight) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		pthread_mutex_unlock(&blinker_lock);
-		return 0;
-	}
-
-	for (y = sy; y <= ey; y++) {
-		pos = pixels->width*(y-sy+y_off)+x_off;
-		if (mask == NULL) {
-			for (x = sx; x <= ex; x++) {
-				screena.screen[PIXEL_OFFSET(screena, x, y)] = pixels->pixels[pos];
-				screena.rect->data[PIXEL_OFFSET(screena, x, y)] = color_value(pixels->pixels[pos]);
-				if (pixels->pixelsb) {
-					screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixelsb[pos];
-					screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixelsb[pos]);
-				}
-				else {
-					screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixels[pos];
-					screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixels[pos]);
-				}
-				pos++;
-			}
-		}
-		else {
-			for (x = sx; x <= ex; x++) {
-				mask_byte = pos / 8;
-				mask_bit = pos % 8;
-				mask_bit = 0x80 >> mask_bit;
-				if (m[mask_byte] & mask_bit) {
-					screena.screen[PIXEL_OFFSET(screena, x, y)] = pixels->pixels[pos];
-					screena.rect->data[PIXEL_OFFSET(screena, x, y)] = color_value(pixels->pixels[pos]);
-					if (pixels->pixelsb) {
-						screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixelsb[pos];
-						screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixelsb[pos]);
-					}
-					else {
-						screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixels[pos];
-						screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixels[pos]);
-					}
-				}
-				pos++;
-			}
-		}
-	}
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return 1;
-}
-
-// TODO: Do we ever need to force anymore?
-struct ciolib_pixels *bitmap_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force)
-{
-	struct ciolib_pixels *pixels;
-	uint32_t width,height;
-	size_t y;
-
-	if (sx > ex || sy > ey)
-		return NULL;
-
-	width = ex - sx + 1;
-	height = ey - sy + 1;
-
-	pixels = malloc(sizeof(*pixels));
-	if (pixels == NULL)
-		return NULL;
-
-	pixels->width = width;
-	pixels->height = height;
-
-	pixels->pixels = malloc(sizeof(pixels->pixels[0])*(width)*(height));
-	if (pixels->pixels == NULL) {
-		free(pixels);
-		return NULL;
-	}
-
-	pixels->pixelsb = malloc(sizeof(pixels->pixelsb[0])*(width)*(height));
-	if (pixels->pixelsb == NULL) {
-		free(pixels->pixels);
-		free(pixels);
-		return NULL;
-	}
-
-	pthread_mutex_lock(&blinker_lock);
-	update_from_vmem(force);
-	pthread_mutex_lock(&vstatlock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (ex >= screena.screenwidth || ey >= screena.screenheight ||
-	    ex >= screenb.screenwidth || ey >= screenb.screenheight) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		pthread_mutex_unlock(&vstatlock);
-		pthread_mutex_unlock(&blinker_lock);
-		free(pixels->pixelsb);
-		free(pixels->pixels);
-		free(pixels);
-		return NULL;
-	}
-
-	for (y = sy; y <= ey; y++) {
-		memcpy(&pixels->pixels[width*(y-sy)], &screena.screen[PIXEL_OFFSET(screena, sx, y)], width * sizeof(pixels->pixels[0]));
-		memcpy(&pixels->pixelsb[width*(y-sy)], &screenb.screen[PIXEL_OFFSET(screenb, sx, y)], width * sizeof(pixels->pixelsb[0]));
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return pixels;
-}
-
-int bitmap_get_modepalette(uint32_t p[16])
-{
-	pthread_mutex_lock(&vstatlock);
-	memcpy(p, vstat.palette, sizeof(vstat.palette));
-	pthread_mutex_unlock(&vstatlock);
-	return 1;
-}
-
-int bitmap_set_modepalette(uint32_t p[16])
-{
-	pthread_mutex_lock(&vstatlock);
-	memcpy(vstat.palette, p, sizeof(vstat.palette));
-	pthread_mutex_unlock(&vstatlock);
-	return 1;
-}
-
-uint32_t bitmap_map_rgb(uint16_t r, uint16_t g, uint16_t b)
-{
-	return (0xff << 24) | ((r & 0xff00) << 8) | ((g & 0xff00)) | (b >> 8);
-}
-
-void bitmap_replace_font(uint8_t id, char *name, void *data, size_t size)
-{
-	pthread_mutex_lock(&blinker_lock);
-
-	if (id < CONIO_FIRST_FREE_FONT) {
-		free(name);
-		free(data);
-		pthread_mutex_unlock(&blinker_lock);
-		return;
-	}
-
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	switch (size) {
-		case 4096:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_sixteen);
-			conio_fontdata[id].eight_by_sixteen=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		case 3584:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_fourteen);
-			conio_fontdata[id].eight_by_fourteen=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		case 2048:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_eight);
-			conio_fontdata[id].eight_by_eight=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		default:
-			free(name);
-			free(data);
-	}
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b)
-{
-	if (index > 65535)
-		return 0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	palette[index] = (0xff << 24) | ((r>>8) << 16) | ((g>>8) << 8) | (b>>8);
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return 1;
-}
-
-// Called with vstatlock
-static int init_screen(struct bitmap_screen *screen, int *width, int *height)
-{
-	uint32_t *newscreen;
-
-	pthread_mutex_lock(&screen->screenlock);
-	screen->screenwidth = vstat.scrnwidth;
-	if (width)
-		*width = screen->screenwidth;
-	screen->screenheight = vstat.scrnheight;
-	if (height)
-		*height = screen->screenheight;
-	newscreen = realloc(screen->screen, screen->screenwidth * screen->screenheight * sizeof(screen->screen[0]));
-
-	if (!newscreen) {
-		pthread_mutex_unlock(&screen->screenlock);
-		return(-1);
-	}
-	screen->screen = newscreen;
-	memset_u32(screen->screen, vstat.palette[0], screen->screenwidth * screen->screenheight);
-	screen->update_pixels = 1;
-	bitmap_drv_free_rect(screen->rect);
-	screen->rect = alloc_full_rect(screen);
-	if (screen->rect == NULL) {
-		pthread_mutex_unlock(&screen->screenlock);
-		return(-1);
-	}
-	memset_u32(screen->rect->data, color_value(vstat.palette[0]), screen->rect->rect.width * screen->rect->rect.height);
-	pthread_mutex_unlock(&screen->screenlock);
-	return(0);
-}
-
-/***********************/
-/* Called from drivers */
-/***********************/
-
-/*
- * This function is intended to be called from the driver.
- * as a result, it cannot block waiting for driver status
- *
- * Must be called with vstatlock held.
- * Care MUST be taken to avoid deadlocks...
- * This is where the vmode bits used by the driver are modified...
- * the driver must be aware of this.
- * This is where the driver should grab vstatlock, then it should copy
- * out after this and only grab that lock again briefly to update
- * vstat.scaling.
- */
-int bitmap_drv_init_mode(int mode, int *width, int *height)
-{
-	int i;
-
-	if(!bitmap_initialized)
-		return(-1);
-
-	if(load_vmode(&vstat, mode)) {
-		// TODO: WTF?
-		//pthread_mutex_unlock(&blinker_lock);
-		return(-1);
-	}
-
-	/* Initialize video memory with black background, white foreground */
-	for (i = 0; i < vstat.cols*vstat.rows; ++i) {
-		vstat.vmem->vmem[i].ch = 0;
-		vstat.vmem->vmem[i].legacy_attr = vstat.currattr;
-		vstat.vmem->vmem[i].font = default_font;
-		bitmap_attr2palette_locked(vstat.currattr, &vstat.vmem->vmem[i].fg, &vstat.vmem->vmem[i].bg);
-	}
-
-	if (init_screen(&screena, width, height))
-		return -1;
-	if (init_screen(&screenb, width, height))
-		return -1;
-	for (i=0; i<sizeof(current_font)/sizeof(current_font[0]); i++)
-		current_font[i]=default_font;
-	bitmap_loadfont_locked(NULL);
-
-	cio_textinfo.attribute=vstat.currattr;
-	cio_textinfo.normattr=vstat.currattr;
-	cio_textinfo.currmode=mode;
-
-	if (vstat.rows > 0xff)
-		cio_textinfo.screenheight = 0xff;
-	else
-		cio_textinfo.screenheight = vstat.rows;
-
-	if (vstat.cols > 0xff)
-		cio_textinfo.screenwidth = 0xff;
-	else
-		cio_textinfo.screenwidth = vstat.cols;
-
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	return(0);
-}
-
-/*
- * MUST be called only once and before any other bitmap functions
- */
-int bitmap_drv_init(void (*drawrect_cb) (struct rectlist *data)
-				,void (*flush_cb) (void))
-{
-	int i;
-
-	if(bitmap_initialized)
-		return(-1);
-	cio_api.options |= CONIO_OPT_LOADABLE_FONTS | CONIO_OPT_BLINK_ALT_FONT
-			| CONIO_OPT_BOLD_ALT_FONT | CONIO_OPT_BRIGHT_BACKGROUND
-			| CONIO_OPT_SET_PIXEL | CONIO_OPT_CUSTOM_CURSOR
-			| CONIO_OPT_FONT_SELECT | CONIO_OPT_EXTENDED_PALETTE | CONIO_OPT_PALETTE_SETTING
-			| CONIO_OPT_BLOCKY_SCALING;
-	pthread_mutex_init(&blinker_lock, NULL);
-	pthread_mutex_init(&callbacks.lock, NULL);
-	pthread_mutex_init(&vstatlock, NULL);
-	pthread_mutex_init(&screena.screenlock, NULL);
-	pthread_mutex_init(&screenb.screenlock, NULL);
-	pthread_mutex_init(&free_rect_lock, NULL);
-	pthread_mutex_lock(&vstatlock);
-	init_r2y();
-	vstat.vmem=NULL;
-	vstat.flags = VIDMODES_FLAG_PALETTE_VMEM;
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	for (i = 0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++) {
-		palette[i] = (0xff << 24) | (dac_default[i].red << 16) | (dac_default[i].green << 8) | dac_default[i].blue;
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&vstatlock);
-
-	callbacks.drawrect=drawrect_cb;
-	callbacks.flush=flush_cb;
-	callbacks.rects = 0;
-	bitmap_initialized=1;
-	_beginthread(blinker_thread,0,NULL);
-
-	return(0);
-}
-
-void bitmap_drv_request_pixels(void)
-{
-	pthread_mutex_lock(&screena.screenlock);
-	if (screena.update_pixels == 0)
-		screena.update_pixels = 2;
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (screenb.update_pixels == 0)
-		screenb.update_pixels = 2;
-	pthread_mutex_unlock(&screenb.screenlock);
-}
-
-void bitmap_drv_request_some_pixels(int x, int y, int width, int height)
-{
-	/* TODO: Some sort of queue here? */
-	bitmap_drv_request_pixels();
-}
-
-void bitmap_drv_free_rect(struct rectlist *rect)
-{
-	if (rect == NULL)
-		return;
-	pthread_mutex_lock(&free_rect_lock);
-	rect->next = free_rects;
-	free_rects = rect;
-	pthread_mutex_unlock(&free_rect_lock);
-}
diff --git a/ciolib/bitmap_con.h b/ciolib/bitmap_con.h
deleted file mode 100644
index e687983..0000000
--- a/ciolib/bitmap_con.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef BITMAP_CON_H
-#define BITMAP_CON_H
-
-#include "vidmodes.h"
-#include "threadwrap.h"
-
-struct rectangle {
-	int x;
-	int y;
-	int width;
-	int height;
-};
-
-struct rectlist {
-	struct rectangle rect;
-	uint32_t *data;
-	struct rectlist *next;
-};
-
-extern struct video_stats vstat;
-extern pthread_mutex_t vstatlock;
-extern pthread_mutex_t blinker_lock;
-
-#ifndef BITMAP_CIOLIB_DRIVER
-/* Called from ciolib */
-int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill);
-int bitmap_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-int bitmap_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-void bitmap_gotoxy(int x, int y);
-void bitmap_setcursortype(int type);
-int bitmap_setfont(int font, int force, int font_no);
-int bitmap_getfont(int fnum);
-int bitmap_loadfont(const char *filename);
-int bitmap_movetext(int x, int y, int ex, int ey, int tox, int toy);
-void bitmap_clreol(void);
-void bitmap_clrscr(void);
-void bitmap_getcustomcursor(int *s, int *e, int *r, int *b, int *v);
-void bitmap_setcustomcursor(int s, int e, int r, int b, int v);
-int bitmap_getvideoflags(void);
-void bitmap_setvideoflags(int flags);
-int bitmap_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-int bitmap_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-int bitmap_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *, void *mask);
-struct ciolib_pixels *bitmap_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-int bitmap_get_modepalette(uint32_t p[16]);
-int bitmap_set_modepalette(uint32_t p[16]);
-uint32_t bitmap_map_rgb(uint16_t r, uint16_t g, uint16_t b);
-void bitmap_replace_font(uint8_t id, char *name, void *data, size_t size);
-int bitmap_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b);
-#endif
-
-#ifdef BITMAP_CIOLIB_DRIVER
-/* Called from drivers */
-int bitmap_drv_init_mode(int mode, int *width, int *height);
-int bitmap_drv_init(void (*drawrect_cb) (struct rectlist *data)
-				,void (*flush) (void));
-void bitmap_drv_request_pixels(void);
-void bitmap_drv_request_some_pixels(int x, int y, int width, int height);
-void bitmap_drv_free_rect(struct rectlist *rect);
-#endif
-
-#endif
diff --git a/ciolib/ciolib.c b/ciolib/ciolib.c
deleted file mode 100644
index 7742eb2..0000000
--- a/ciolib/ciolib.c
+++ /dev/null
@@ -1,1942 +0,0 @@
-/* $Id: ciolib.c,v 1.204 2020/07/18 18:15:28 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* Icon file! */
-#ifdef __BORLANDC__
-#pragma resource "ciolib.res"
		/* DO NOT REMOVE THE EXTRA \r! */
-#endif
-
-#include <stdarg.h>
-#include <stdlib.h>	/* alloca */
-#include <stdio.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include <threadwrap.h>
-#include <genwrap.h>
-#include <xpbeep.h>
-
-#define CIOLIB_NO_MACROS
-#include "ciolib.h"
-
-#if defined(WITH_SDL)
- #include "sdl_con.h"
- #include "sdlfuncs.h"
-#endif
-#ifdef _WIN32
- #include "win32cio.h"
-#else
- #ifndef NO_X
-  #include "x_cio.h"
- #endif
- #include "curs_cio.h"
- #undef getch
-#endif
-
-#include "bitmap_con.h"
-#include "ansi_cio.h"
-#include "syncicon64.h"
-
-CIOLIBEXPORT cioapi_t	cio_api;
-
-static const int tabs[]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145};
-static int ungotch;
-struct text_info cio_textinfo;
-uint32_t ciolib_fg;
-uint32_t ciolib_bg;
-static int lastmode=C80;
-CIOLIBEXPORT int _wscroll=1;
-CIOLIBEXPORT int directvideo=0;
-CIOLIBEXPORT int hold_update=0;
-CIOLIBEXPORT int puttext_can_move=0;
-CIOLIBEXPORT int ciolib_reaper=TRUE;
-CIOLIBEXPORT char *ciolib_appname=NULL;
-CIOLIBEXPORT int ciolib_initial_window_height = -1;
-CIOLIBEXPORT int ciolib_initial_window_width = -1;
-static int initialized=0;
-
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
-CIOLIBEXPORT char * ciolib_cgets(char *str);
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...);
-CIOLIBEXPORT int ciolib_kbhit(void);
-CIOLIBEXPORT int ciolib_getch(void);
-CIOLIBEXPORT int ciolib_getche(void);
-CIOLIBEXPORT int ciolib_ungetch(int ch);
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info);
-CIOLIBEXPORT int ciolib_wherex(void);
-CIOLIBEXPORT int ciolib_wherey(void);
-CIOLIBEXPORT void ciolib_wscroll(void);
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y);
-CIOLIBEXPORT void ciolib_clreol(void);
-CIOLIBEXPORT void ciolib_clrscr(void);
-CIOLIBEXPORT int ciolib_cputs(const char *str);
-CIOLIBEXPORT int	ciolib_cprintf(const char *fmat, ...);
-CIOLIBEXPORT void ciolib_textbackground(int colour);
-CIOLIBEXPORT void ciolib_textcolor(int colour);
-CIOLIBEXPORT void ciolib_highvideo(void);
-CIOLIBEXPORT void ciolib_lowvideo(void);
-CIOLIBEXPORT void ciolib_normvideo(void);
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT void ciolib_textattr(int a);
-CIOLIBEXPORT void ciolib_delay(long a);
-CIOLIBEXPORT int ciolib_putch(int a);
-CIOLIBEXPORT void ciolib_setcursortype(int a);
-CIOLIBEXPORT void ciolib_textmode(int mode);
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey);
-CIOLIBEXPORT void ciolib_delline(void);
-CIOLIBEXPORT void ciolib_insline(void);
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt);
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen);
-CIOLIBEXPORT char * ciolib_getcliptext(void);
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos);
-CIOLIBEXPORT void ciolib_setscaling(int new_value);
-CIOLIBEXPORT int ciolib_getscaling(void);
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg);
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels);
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void);
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *);
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn);
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg);
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t p[16]);
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t p[16]);
-CIOLIBEXPORT void ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font);
-CIOLIBEXPORT void ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr);
-CIOLIBEXPORT void ciolib_setwinsize(int width, int height);
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y);
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void);
-
-#if defined(WITH_SDL)
-int sdl_video_initialized = 0;
-#endif
-
-#define CIOLIB_INIT()		{ if(initialized != 1) initciolib(CIOLIB_MODE_AUTO); }
-
-#if defined(WITH_SDL)
-static int try_sdl_init(int mode)
-{
-	if(!sdl_initciolib(mode)) {
-		cio_api.mouse=1;
-		cio_api.puttext=bitmap_puttext;
-		cio_api.vmem_puttext=bitmap_vmem_puttext;
-		cio_api.vmem_gettext=bitmap_vmem_gettext;
-		cio_api.gotoxy=bitmap_gotoxy;
-		cio_api.setcursortype=bitmap_setcursortype;
-		cio_api.setfont=bitmap_setfont;
-		cio_api.getfont=bitmap_getfont;
-		cio_api.loadfont=bitmap_loadfont;
-		cio_api.movetext=bitmap_movetext;
-		cio_api.clreol=bitmap_clreol;
-		cio_api.clrscr=bitmap_clrscr;
-		cio_api.getcustomcursor=bitmap_getcustomcursor;
-		cio_api.setcustomcursor=bitmap_setcustomcursor;
-		cio_api.getvideoflags=bitmap_getvideoflags;
-		cio_api.setvideoflags=bitmap_setvideoflags;
-
-		cio_api.kbhit=sdl_kbhit;
-		cio_api.getch=sdl_getch;
-		cio_api.textmode=sdl_textmode;
-		cio_api.showmouse=sdl_showmouse;
-		cio_api.hidemouse=sdl_hidemouse;
-		cio_api.setname=sdl_setname;
-		cio_api.seticon=sdl_seticon;
-		cio_api.settitle=sdl_settitle;
-		cio_api.copytext=sdl_copytext;
-		cio_api.getcliptext=sdl_getcliptext;
-		cio_api.get_window_info=sdl_get_window_info;
-		cio_api.setwinsize=sdl_setwinsize;
-		cio_api.setwinposition=sdl_setwinposition;
-		cio_api.setpalette=bitmap_setpalette;
-		cio_api.attr2palette=bitmap_attr2palette;
-		cio_api.setpixel=bitmap_setpixel;
-		cio_api.getpixels=bitmap_getpixels;
-		cio_api.setpixels=bitmap_setpixels;
-		cio_api.get_modepalette=bitmap_get_modepalette;
-		cio_api.set_modepalette=bitmap_set_modepalette;
-		cio_api.map_rgb = bitmap_map_rgb;
-		cio_api.replace_font = bitmap_replace_font;
-		cio_api.beep = sdl_beep;
-		cio_api.mousepointer=sdl_mousepointer;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-#ifndef NO_X
-static int try_x_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(!x_init()) {
-		cio_api.mode=CIOLIB_MODE_X;
-		cio_api.mouse=1;
-		cio_api.puttext=bitmap_puttext;
-		cio_api.vmem_puttext=bitmap_vmem_puttext;
-		cio_api.vmem_gettext=bitmap_vmem_gettext;
-		cio_api.gotoxy=bitmap_gotoxy;
-		cio_api.setcursortype=bitmap_setcursortype;
-		cio_api.setfont=bitmap_setfont;
-		cio_api.getfont=bitmap_getfont;
-		cio_api.loadfont=bitmap_loadfont;
-		cio_api.beep=x_beep;
-		cio_api.movetext=bitmap_movetext;
-		cio_api.clreol=bitmap_clreol;
-		cio_api.clrscr=bitmap_clrscr;
-		cio_api.getcustomcursor=bitmap_getcustomcursor;
-		cio_api.setcustomcursor=bitmap_setcustomcursor;
-		cio_api.getvideoflags=bitmap_getvideoflags;
-		cio_api.setvideoflags=bitmap_setvideoflags;
-
-		cio_api.kbhit=x_kbhit;
-		cio_api.getch=x_getch;
-		cio_api.textmode=x_textmode;
-		cio_api.setname=x_setname;
-		cio_api.settitle=x_settitle;
-		cio_api.copytext=x_copytext;
-		cio_api.getcliptext=x_getcliptext;
-		cio_api.get_window_info=x_get_window_info;
-		cio_api.setscaling=x_setscaling;
-		cio_api.getscaling=x_getscaling;
-		cio_api.seticon=x_seticon;
-		cio_api.setpalette=bitmap_setpalette;
-		cio_api.attr2palette=bitmap_attr2palette;
-		cio_api.setpixel=bitmap_setpixel;
-		cio_api.getpixels=bitmap_getpixels;
-		cio_api.setpixels=bitmap_setpixels;
-		cio_api.get_modepalette=bitmap_get_modepalette;
-		cio_api.set_modepalette=bitmap_set_modepalette;
-		cio_api.map_rgb = bitmap_map_rgb;
-		cio_api.replace_font = bitmap_replace_font;
-		cio_api.mousepointer=x_mousepointer;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-#ifndef _WIN32
-static int try_curses_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(curs_initciolib(mode)) {
-		if(mode==CIOLIB_MODE_AUTO)
-			mode=CIOLIB_MODE_CURSES;
-		cio_api.mode=mode;
-		cio_api.puttext=curs_puttext;
-		cio_api.vmem_puttext=curs_vmem_puttext;
-		cio_api.vmem_gettext=curs_vmem_gettext;
-		cio_api.textattr=curs_textattr;
-		cio_api.kbhit=curs_kbhit;
-		cio_api.gotoxy=curs_gotoxy;
-		cio_api.setcursortype=curs_setcursortype;
-		cio_api.getch=curs_getch;
-		cio_api.textmode=curs_textmode;
-		cio_api.showmouse=curs_showmouse;
-		cio_api.hidemouse=curs_hidemouse;
-		cio_api.suspend=curs_suspend;
-		cio_api.resume=curs_resume;
-		cio_api.beep=curs_beep;
-		cio_api.setvideoflags=curs_setvideoflags;
-		cio_api.getvideoflags=curs_getvideoflags;
-#if defined(NCURSES_VERSION_MAJOR) || defined (__NetBSD__)
-		cio_api.escdelay=&ESCDELAY;
-#endif
-		cio_api.setfont = curs_setfont;
-		cio_api.getfont = curs_getfont;
-		cio_api.setpalette = curs_setpalette;
-		cio_api.get_modepalette = curs_get_modepalette;
-		cio_api.set_modepalette = curs_set_modepalette;
-		cio_api.attr2palette = curs_attr2palette;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-static int try_ansi_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(ansi_initciolib(mode)) {
-		cio_api.mode=CIOLIB_MODE_ANSI;
-		cio_api.mouse=0;
-		cio_api.puttext=ansi_puttext;
-		cio_api.gettext=ansi_gettext;
-		cio_api.textattr=ansi_textattr;
-		cio_api.kbhit=ansi_kbhit;
-		cio_api.gotoxy=ansi_gotoxy;
-		cio_api.setcursortype=ansi_setcursortype;
-		cio_api.getch=ansi_getch;
-		cio_api.textmode=ansi_textmode;
-		cio_api.escdelay=&CIOLIB_ANSI_TIMEOUT;
-		cio_api.beep=ansi_beep;
-		cio_api.suspend=ansi_suspend;
-		return(1);
-	}
-	return(0);
-}
-
-#ifdef _WIN32
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static int try_conio_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	/* This should test for something or other */
-	if(win32_initciolib(mode)) {
-		if(mode==CIOLIB_MODE_AUTO)
-			cio_api.mode=CIOLIB_MODE_CONIO;
-		else
-			cio_api.mode=mode;	/* CIOLIB_MODE_CONIO or CIOLIB_MODE_CONIO_FULLSCREEN */
-		cio_api.mouse=1;
-		cio_api.puttext=win32_puttext;
-		cio_api.gettext=win32_gettext;
-		cio_api.kbhit=win32_kbhit;
-		cio_api.gotoxy=win32_gotoxy;
-		cio_api.setcursortype=win32_setcursortype;
-		cio_api.getch=win32_getch;
-		cio_api.textmode=win32_textmode;
-		cio_api.showmouse=win32_showmouse;
-		cio_api.hidemouse=win32_hidemouse;
-		cio_api.setname=win32_settitle;
-		cio_api.settitle=win32_settitle;
-		cio_api.copytext=win32_copytext;
-		cio_api.getcliptext=win32_getcliptext;
-		cio_api.suspend=win32_suspend;
-		cio_api.resume=win32_resume;
-		cio_api.getcustomcursor=win32_getcustomcursor;
-		cio_api.setcustomcursor=win32_setcustomcursor;
-		cio_api.getvideoflags=win32_getvideoflags;
-		cio_api.setpalette=win32_setpalette;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-/* Optional */
-CIOLIBEXPORT void suspendciolib(void)
-{
-	ciolib_clrscr();
-	if(cio_api.suspend != NULL)
-		cio_api.suspend();
-	initialized=-1;
-}
-
-CIOLIBEXPORT int initciolib(int mode)
-{
-	switch(initialized) {
-		case 1:
-			return(0);
-		case -1:
-			initialized=1;
-			if(cio_api.resume != NULL)
-				cio_api.resume();
-			ciolib_clrscr();
-			return(0);
-	}
-
-	memset(&cio_api,0,sizeof(cio_api));
-
-	switch(mode) {
-		case CIOLIB_MODE_AUTO:
-#ifndef NO_X
-			if(!try_x_init(mode))
-#endif
-#if defined(WITH_SDL)
-				if(!try_sdl_init(CIOLIB_MODE_SDL))
-#endif
-#ifdef _WIN32
-					if(!try_conio_init(mode))
-#else
-					if(!try_curses_init(mode))
-#endif
-						try_ansi_init(mode);
-			break;
-#ifdef _WIN32
-		case CIOLIB_MODE_CONIO:
-		case CIOLIB_MODE_CONIO_FULLSCREEN:
-			try_conio_init(mode);
-			break;
-#else
-		case CIOLIB_MODE_CURSES:
-		case CIOLIB_MODE_CURSES_IBM:
-		case CIOLIB_MODE_CURSES_ASCII:
-			try_curses_init(mode);
-			break;
-
-		case CIOLIB_MODE_X:
-#ifndef NO_X
-			try_x_init(mode);
-#endif
-			break;
-#endif
-		case CIOLIB_MODE_ANSI:
-			try_ansi_init(mode);
-			break;
-
-#if defined(WITH_SDL)
-		case CIOLIB_MODE_SDL:
-		case CIOLIB_MODE_SDL_FULLSCREEN:
-			try_sdl_init(mode);
-			break;
-#endif
-	}
-	if(cio_api.mode==CIOLIB_MODE_AUTO) {
-		fprintf(stderr,"CIOLIB initialization failed!\n");
-		return(-1);
-	}
-
-	initialized=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	/* Default C64 is Lt Blue on Dark Blue (As per Every picture ever) */
-	switch(cio_textinfo.currmode) {
-		case C64_40X25:
-			cio_textinfo.normattr=0x6e;
-			break;
-		case C128_40X25:
-			cio_textinfo.normattr=0xbd;
-			break;
-		default:
-			cio_textinfo.normattr=LIGHTGRAY;
-			break;
-	}
-	ciolib_seticon(syncicon64, SYNCICON64_WIDTH);
-	ciolib_textattr(cio_textinfo.normattr);
-
-	_beginthread(ciolib_mouse_thread,0,NULL);
-	return(0);
-}
-
-/* **MUST** be implemented */
-/*
- * Returns non-zero if a key is hit
- */
-CIOLIBEXPORT int ciolib_kbhit(void)
-{
-	CIOLIB_INIT();
-	if(ungotch)
-		return(1);
-	return(cio_api.kbhit());
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT int ciolib_getch(void)
-{
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(ungotch) {
-		ch=ungotch;
-		ungotch=0;
-		return(ch);
-	}
-	return(cio_api.getch());
-}
-
-/* Optional */
-CIOLIBEXPORT int ciolib_getche(void)
-{
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(ungotch) {
-		ch=ungotch;
-		ungotch=0;
-		ciolib_putch(ch);
-		return(ch);
-	}
-	if(cio_api.getche)
-		return(cio_api.getche());
-	else {
-		while(1) {
-			ch=ciolib_getch();
-			if(ch != 0 && ch != 0xe0) {
-				ciolib_putch(ch);
-				return(ch);
-			}
-			/* Eat extended chars - except ESC which is an abort */
-			if(ciolib_getch()==1)
-				return(EOF);
-		}
-	}
-}
-
-/* Optional */
-/*
- * On success, returns ch, on error, returns EOF
- */
-CIOLIBEXPORT int ciolib_ungetch(int ch)
-{
-	CIOLIB_INIT();
-
-	if(ungotch)
-		return(EOF);
-	if(cio_api.ungetch)
-		return(cio_api.ungetch(ch));
-	ungotch=ch;
-	return(ch);
-}
-
-/* Optional */
-/*
- * Returns non-zero on success
- */
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy)
-{
-	int width;
-	int height;
-	void *buf;
-
-	CIOLIB_INIT();
-
-	if(cio_api.movetext != NULL)
-		return(cio_api.movetext(sx, sy, ex, ey, dx, dy));
-
-	width=ex-sx;
-	height=ey-sy;
-	if (cio_api.vmem_gettext) {
-		buf=malloc((width+1)*(height+1)*sizeof(struct vmem_cell));
-		if (buf == NULL)
-			return 0;
-		if(!ciolib_vmem_gettext(sx,sy,ex,ey,buf))
-			goto fail;
-		if(!ciolib_vmem_puttext(dx,dy,dx+width,dy+height,buf))
-			goto fail;
-	}
-	else {
-		buf=malloc((width+1)*(height+1)*2);
-		if (buf == NULL)
-			return 0;
-		if(!ciolib_gettext(sx,sy,ex,ey,buf))
-			goto fail;
-		if(!ciolib_puttext(dx,dy,dx+width,dy+height,buf))
-			goto fail;
-	}
-
-	return(1);
-
-fail:
-	free(buf);
-	return 0;
-}
-
-/* Optional */
-/*
- * Returns &str[2]
- * Cannot fail
- */
-CIOLIBEXPORT char * ciolib_cgets(char *str)
-{
-	int	maxlen;
-	int len=0;
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(cio_api.cgets)
-		return(cio_api.cgets(str));
-
-	maxlen=*(unsigned char *)str;
-	while((ch=ciolib_getch())!='\n' && ch !='\r') {
-		switch(ch) {
-			case 0:		/* Skip extended keys */
-			case 0xe0:	/* Skip extended keys */
-				if(ciolib_getche()==1)
-					goto early_return;
-				break;
-			case '\b':
-				if(len==0) {
-					ciolib_putch(7);
-					break;
-				}
-				ciolib_putch('\b');
-				len--;
-				break;
-			default:
-				ciolib_putch(ch);
-				str[(len++)+2]=ch;
-				if(len==maxlen) {
-					str[len+2]=0;
-					*((unsigned char *)(str+1))=(unsigned char)len;
-					ciolib_putch('\r');
-					ciolib_putch('\n');
-					return(&str[2]);
-				}
-				break;
-		}
-	}
-early_return:
-	str[len+2]=0;
-	*((unsigned char *)(str+1))=(unsigned char)len;
-	ciolib_putch('\r');
-	ciolib_putch('\n');
-	return(&str[2]);
-}
-
-#if defined(_MSC_VER) && (_MSC_VER < 1800)	/* Use lame vsscanf() implementation */
-/* This is a way to do _vsscanf without using fancy stack tricks or using the
- * "_input" method provided by Microsoft, which is no longer exported as of .NET.
- * The function has a limit of 25 arguments (or less if you run out of stack space),
- *  but how many arguments do you need?
- */
-/* From "krabsheva" - http://www.codeguru.com/Cpp/Cpp/string/comments.php/c5631/?thread=1051 */
-int vsscanf( const char *buffer, const char *format, va_list arg_ptr )
-{
-	int i, ret;
-	void *arg_arr[25];
-
-	/* Do exception handling in case we go too far // */
-	__try
-	{
-		for ( i = 0; i < 25; i++ )
-			arg_arr[i] = va_arg( arg_ptr, void * );
-	}
-	__except( EXCEPTION_EXECUTE_HANDLER )
-	{
-	}
-
-	/* This is lame, but the extra arguments won't be used by sscanf */
-	ret = sscanf( buffer, format, arg_arr[0], arg_arr[1], arg_arr[2], arg_arr[3],
-		arg_arr[4], arg_arr[5], arg_arr[6], arg_arr[7], arg_arr[8], arg_arr[9],
-		arg_arr[10], arg_arr[11], arg_arr[12], arg_arr[13], arg_arr[14],
-		arg_arr[15], arg_arr[16], arg_arr[17], arg_arr[18], arg_arr[19],
-		arg_arr[20], arg_arr[21], arg_arr[22], arg_arr[23], arg_arr[24] );
-
-	return ret;
-}
-#endif
-
-/* Can't be overridden */
-/* Returns the number of fields converted */
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...)
-{
-	char str[255];
-    va_list argptr;
-	int ret;
-
-	CIOLIB_INIT();
-
-	str[0]=-1;
-	va_start(argptr,format);
-	ret=vsscanf(ciolib_cgets(str),format,argptr);
-	va_end(argptr);
-	return(ret);
-}
-
-/* Optional */
-/* So dumb */
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt)
-{
-	static char pass[9];
-	int len=0;
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(cio_api.getpass)
-		return(cio_api.getpass(prompt));
-
-	ciolib_cputs(prompt);
-	while((ch=ciolib_getch())!='\n') {
-		switch(ch) {
-			case 0:		/* Skip extended keys */
-			case 0xe0:	/* Skip extended keys */
-				if(ciolib_getch()==1)
-					goto early_return;
-				break;
-			case '\r':	/* Skip \r (ToDo: Should this be treeated as a \n? */
-				break;
-			case '\b':
-				if(len==0) {
-					ciolib_putch(7);
-					break;
-				}
-				len--;
-				break;
-			default:
-				if(len==8)
-					ciolib_putch(7);
-				else
-					pass[len++]=ch;
-				break;
-		}
-	}
-early_return:
-	pass[len]=0;
-	return(pass);
-}
-
-/* TODO: Hackery here... must fix */
-/* Optional */
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info)
-{
-	CIOLIB_INIT()
-
-	if(cio_api.gettextinfo)
-		cio_api.gettextinfo(&cio_textinfo);
-
-	if(info!=&cio_textinfo)
-		*info=cio_textinfo;
-}
-
-/* Optional */
-/* Not part of Borland conio? */
-CIOLIBEXPORT void ciolib_wscroll(void)
-{
-	int os;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wscroll!=NULL) {
-		cio_api.wscroll();
-		return;
-	}
-	if(!_wscroll)
-		return;
-	ciolib_movetext(cio_textinfo.winleft
-			,cio_textinfo.wintop+1
-			,cio_textinfo.winright
-			,cio_textinfo.winbottom
-			,cio_textinfo.winleft
-			,cio_textinfo.wintop);
-	ciolib_gotoxy(1,cio_textinfo.winbottom-cio_textinfo.wintop+1);
-	os=_wscroll;
-	_wscroll=0;
-	/* ciolib_cprintf("%*s",ti.winright-ti.winleft+1,""); */
-	ciolib_clreol();
-	_wscroll=os;
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Optional */
-/* Cannot fail */
-CIOLIBEXPORT int ciolib_wherex(void)
-{
-	int x;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wherex) {
-		/* TODO: This is old hackery... beware */
-		x=cio_api.wherex();
-		x=x-cio_textinfo.winleft+1;
-	}
-	else
-		x=cio_textinfo.curx;
-	return(x);
-}
-
-/* Optional */
-/* Cannot fail */
-CIOLIBEXPORT int ciolib_wherey(void)
-{
-	int y;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wherey) {
-		/* TODO: This is old hackery... beware */
-		y=cio_api.wherey();
-		y=y-cio_textinfo.wintop+1;
-	}
-	else
-		y=cio_textinfo.cury;
-	return(y);
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y)
-{
-	CIOLIB_INIT();
-
-	if(		x < 1
-			|| x > cio_textinfo.winright-cio_textinfo.winleft+1
-			|| y < 1
-			|| y > cio_textinfo.winbottom-cio_textinfo.wintop+1)
-		return;
-	cio_api.gotoxy(x,y);
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_textmode(int mode)
-{
-	CIOLIB_INIT();
-
-	if(mode==LASTMODE) {
-		cio_api.textmode(lastmode);
-		lastmode=cio_textinfo.currmode;
-	}
-	else {
-		if(mode==64)
-			mode=C80X50;
-		if(mode==_ORIGMODE)
-			mode=C80;
-		lastmode=cio_textinfo.currmode;
-		cio_api.textmode(mode);
-	}
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	switch(cio_textinfo.currmode) {
-		case C64_40X25:
-			cio_textinfo.normattr=0x6e;
-			break;
-		case C128_40X25:
-			cio_textinfo.normattr=0xbd;
-			break;
-		default:
-			cio_textinfo.normattr=LIGHTGRAY;
-			break;
-	}
-	ciolib_textattr(cio_textinfo.normattr);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.window)
-		cio_api.window(sx,sy,ex,ey);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight) {
-		return;
-	}
-	cio_textinfo.winleft=sx;
-	cio_textinfo.wintop=sy;
-	cio_textinfo.winright=ex;
-	cio_textinfo.winbottom=ey;
-	ciolib_gotoxy(1,1);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_clreol(void)
-{
-	struct vmem_cell *buf;
-	int i;
-	int width,height;
-
-	CIOLIB_INIT();
-
-	if(cio_api.clreol) {
-		cio_api.clreol();
-		return;
-	}
-
-	width=cio_textinfo.winright-cio_textinfo.winleft+1-cio_textinfo.curx+1;
-	height=1;
-	buf=malloc(width*height*sizeof(*buf));
-	if (!buf)
-		return;
-	for(i=0;i<width*height;i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cio_textinfo.attribute;
-		buf[i].fg = ciolib_fg;
-		buf[i].bg = ciolib_bg;
-		buf[i].font = ciolib_attrfont(cio_textinfo.attribute);
-	}
-	ciolib_vmem_puttext(
-			cio_textinfo.curx+cio_textinfo.winleft-1,
-			cio_textinfo.cury+cio_textinfo.wintop-1,
-			cio_textinfo.winright,
-			cio_textinfo.cury+cio_textinfo.wintop-1,
-			buf);
-	free(buf);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_clrscr(void)
-{
-	struct vmem_cell *buf;
-	int i;
-	int width,height;
-	int old_ptcm=puttext_can_move;
-
-	CIOLIB_INIT();
-	if(cio_api.clrscr) {
-		cio_api.clrscr();
-		return;
-	}
-
-	width=cio_textinfo.winright-cio_textinfo.winleft+1;
-	height=cio_textinfo.winbottom-cio_textinfo.wintop+1;
-	buf=malloc(width*height*sizeof(*buf));
-	if(!buf)
-		return;
-	for(i=0;i<width*height;i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cio_textinfo.attribute;
-		buf[i].fg = ciolib_fg;
-		buf[i].bg = ciolib_bg;
-		buf[i].font = ciolib_attrfont(cio_textinfo.attribute);
-	}
-	puttext_can_move=1;
-	ciolib_vmem_puttext(cio_textinfo.winleft,cio_textinfo.wintop,cio_textinfo.winright,cio_textinfo.winbottom,buf);
-	ciolib_gotoxy(1,1);
-	puttext_can_move=old_ptcm;
-
-	free(buf);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_delline(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.delline) {
-		cio_api.delline();
-		return;
-	}
-	ciolib_movetext(cio_textinfo.winleft
-			,cio_textinfo.cury+1
-			,cio_textinfo.winright
-			,cio_textinfo.winbottom
-			,cio_textinfo.winleft
-			,cio_textinfo.cury);
-	ciolib_gotoxy(1,cio_textinfo.winbottom-cio_textinfo.wintop+1);
-	ciolib_clreol();
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_insline(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.insline) {
-		cio_api.insline();
-		return;
-	}
-	ciolib_movetext(cio_textinfo.winleft,cio_textinfo.cury,cio_textinfo.winright,cio_textinfo.winbottom,cio_textinfo.winleft,cio_textinfo.cury+1);
-	ciolib_gotoxy(1,cio_textinfo.cury);
-	ciolib_clreol();
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Not overridable due to varargs */
-/* Returns the number of characters or EOF on error */
-CIOLIBEXPORT int ciolib_cprintf(const char *fmat, ...)
-{
-    va_list argptr;
-	int		ret;
-#if defined(_MSC_VER) || defined(__MSVCRT__)	/* Can't figure out a way to allocate a "big enough" buffer for Win32. */
-	char	str[16384];
-#else
-	char	*str;
-#ifndef HAVE_VASPRINTF
-	va_list argptr2;
-#endif
-#endif
-
-	CIOLIB_INIT();
-
-    va_start(argptr,fmat);
-
-#ifdef HAVE_VASPRINTF
-	ret=vasprintf(&str, fmat, argptr);
-	if(ret>=0)
-		ciolib_cputs(str);
-	else
-		ret=EOF;
-	free(str);
-    va_end(argptr);
-#else
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-	ret=_vsnprintf(str,sizeof(str)-1,fmat,argptr);
-#else
-
-#ifdef __BORLANDC__
-	argptr2=argptr;
-#else
-	va_copy(argptr2, argptr);
-#endif
-    ret=vsnprintf(NULL,0,fmat,argptr);
-	if(ret<0)
-		return(EOF);
-	str=(char *)alloca(ret+1);
-	if(str==NULL)
-		return(EOF);
-	ret=vsprintf(str,fmat,argptr2);
-#endif
-    va_end(argptr);
-#if !(defined(_MSC_VER) || defined(__MSVCRT__))
-    va_end(argptr2);
-#endif
-	if(ret>=0)
-		ciolib_cputs(str);
-	else
-		ret=EOF;
-
-#endif
-
-    return(ret);
-}
-
-/* Optional */
-/* The Borland version does not translate \n into \r\n... this does.
- * Returns last character printed (!)
- */
-CIOLIBEXPORT int ciolib_cputs(const char *str)
-{
-	int		pos;
-	int		ret=0;
-	int		olddmc;
-
-	CIOLIB_INIT();
-
-	if(cio_api.cputs)
-		return(cio_api.cputs(str));
-
-	olddmc=hold_update;
-	hold_update=1;
-	for(pos=0;str[pos];pos++)
-	{
-		ret=str[pos];
-		if(str[pos]=='\n')
-			ciolib_putch('\r');
-		ciolib_putch(str[pos]);
-	}
-	hold_update=olddmc;
-	ciolib_gotoxy(ciolib_wherex(),ciolib_wherey());
-	return(ret);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_textbackground(int colour)
-{
-	unsigned char attr;
-	unsigned char col;
-
-	CIOLIB_INIT();
-
-	if(cio_api.textbackground) {
-		cio_api.textbackground(colour);
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr&=143;
-	col=(colour & 0x07);
-	attr|=(col<<4);
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_textcolor(int colour)
-{
-	unsigned char attr;
-	unsigned char col;
-
-	CIOLIB_INIT();
-
-	if(cio_api.textcolor) {
-		cio_api.textcolor(colour);
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr&=240;
-	col=colour&0x0f;
-	attr|=col;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_highvideo(void)
-{
-	int attr;
-
-	CIOLIB_INIT();
-
-	if(cio_api.highvideo) {
-		cio_api.highvideo();
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr |= 8;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_lowvideo(void)
-{
-	int attr;
-
-	CIOLIB_INIT();
-
-	if(cio_api.lowvideo) {
-		cio_api.lowvideo();
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr &= 0xf7;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_normvideo(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.normvideo) {
-		cio_api.normvideo();
-		return;
-	}
-	ciolib_textattr(cio_textinfo.normattr);
-}
-
-/* **MUST** be implemented */
-/*
- * Non-zero on success
- */
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e)
-{
-	char	*buf=e;
-	int		ret;
-	CIOLIB_INIT();
-
-	ret = cio_api.puttext(a,b,c,d,(void *)buf);
-	if (buf != e)
-		free(buf);
-	return ret;
-}
-
-/* **MUST** be implemented */
-/* 1 on success, 0 on failure */
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e)
-{
-	char	*ch;
-	int		i;
-	int		ret;
-	struct vmem_cell *buf;
-	CIOLIB_INIT();
-
-	if (cio_api.gettext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		ch = e;
-		ret = cio_api.vmem_gettext(a,b,c,d,buf);
-		for (i=0; i<(c-a+1)*(d-b+1); i++) {
-			*(ch++)=buf[i].ch;
-			*(ch++)=buf[i].legacy_attr;
-		}
-		free(buf);
-	}
-	else
-		ret = cio_api.gettext(a,b,c,d,e);
-	return ret;
-}
-
-/* Optional */
-/* 1 on success, 0 on failure */
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e)
-{
-	int ret;
-	uint16_t *buf;
-	int i;
-	CIOLIB_INIT();
-
-	if (cio_api.vmem_gettext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		ret = ciolib_gettext(a, b, c, d, buf);
-		if (ret) {
-			for (i=0; i<(c-a+1)*(d-b+1); i++) {
-				memset(&e[i], 0, sizeof(e[0]));
-				e[i].ch = buf[i] & 0xff;
-				e[i].legacy_attr = buf[i] >> 8;
-			}
-		}
-		free(buf);
-		return ret;
-	}
-	return cio_api.vmem_gettext(a,b,c,d,e);
-}
-
-/* Optional */
-/* Non-zero on success */
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e)
-{
-	int i;
-	int ret;
-	uint16_t *buf;
-	CIOLIB_INIT();
-
-	if (cio_api.vmem_puttext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		for (i=0; i<(c-a+1)*(d-b+1); i++)
-			buf[i] = (e[i].legacy_attr << 8) | (e[i].ch);
-		ret = ciolib_puttext(a, b, c, d, buf);
-		free(buf);
-		return ret;
-	}
-	return cio_api.vmem_puttext(a,b,c,d,e);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_textattr(int a)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.textattr) {
-		cio_api.textattr(a);
-		return;
-	}
-
-	cio_textinfo.attribute=a;
-	ciolib_attr2palette(a, &ciolib_fg, &ciolib_bg);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_delay(long a)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.delay) {
-		cio_api.delay(a);
-		return;
-	}
-	SLEEP(a);
-}
-
-/* Optional */
-/* Returns ch on success, EOF on error */
-CIOLIBEXPORT int ciolib_putch(int ch)
-{
-	unsigned char a1=ch;
-	struct vmem_cell buf[1];
-	int i;
-	int old_puttext_can_move=puttext_can_move;
-
-	CIOLIB_INIT();
-
-	if(cio_api.putch)
-		return(cio_api.putch(a1));
-
-	puttext_can_move=1;
-
-	buf[0].ch=a1;
-	buf[0].legacy_attr=cio_textinfo.attribute;
-	buf[0].fg = ciolib_fg;
-	buf[0].bg = ciolib_bg;
-	buf[0].font = ciolib_attrfont(cio_textinfo.attribute);
-
-	switch(a1) {
-		case '\r':
-			ciolib_gotoxy(1,cio_textinfo.cury);
-			break;
-		case '\n':
-			if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1)
-				ciolib_wscroll();
-			else
-				ciolib_gotoxy(cio_textinfo.curx, cio_textinfo.cury+1);
-			break;
-		case '\b':
-			if(cio_textinfo.curx>1) {
-				ciolib_gotoxy(cio_textinfo.curx-1,cio_textinfo.cury);
-				buf[0].ch=' ';
-				ciolib_vmem_puttext(cio_textinfo.curx+cio_textinfo.winleft-1
-						,cio_textinfo.cury+cio_textinfo.wintop-1
-						,cio_textinfo.curx+cio_textinfo.winleft-1
-						,cio_textinfo.cury+cio_textinfo.wintop-1
-						,buf);
-			}
-			break;
-		case 7:		/* Bell */
-			ciolib_beep();
-			break;
-		case '\t':
-			for(i=0;i<(sizeof(tabs)/sizeof(int));i++) {
-				if(tabs[i]>cio_textinfo.curx) {
-					buf[0].ch=' ';
-					while(cio_textinfo.curx<tabs[i]) {
-						ciolib_vmem_puttext(cio_textinfo.curx+cio_textinfo.winleft-1
-								,cio_textinfo.cury+cio_textinfo.wintop-1
-								,cio_textinfo.curx+cio_textinfo.winleft-1
-								,cio_textinfo.cury+cio_textinfo.wintop-1
-								,buf);
-						ciolib_gotoxy(cio_textinfo.curx+1,cio_textinfo.cury);
-						if(cio_textinfo.curx==cio_textinfo.screenwidth)
-							break;
-					}
-					break;
-				}
-			}
-			if(cio_textinfo.curx==cio_textinfo.screenwidth) {
-				ciolib_gotoxy(1,cio_textinfo.cury);
-				if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1)
-					ciolib_wscroll();
-				else
-					ciolib_gotoxy(cio_textinfo.curx, cio_textinfo.cury+1);
-			}
-			break;
-		default:
-			if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1
-					&& cio_textinfo.curx==cio_textinfo.winright-cio_textinfo.winleft+1) {
-				ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-						,ciolib_wherey()+cio_textinfo.wintop-1
-						,ciolib_wherex()+cio_textinfo.winleft-1
-						,ciolib_wherey()+cio_textinfo.wintop-1
-						,buf);
-				ciolib_wscroll();
-				ciolib_gotoxy(1, cio_textinfo.winbottom-cio_textinfo.wintop+1);
-			}
-			else {
-				if(cio_textinfo.curx==cio_textinfo.winright-cio_textinfo.winleft+1) {
-					ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,buf);
-					ciolib_gotoxy(1,cio_textinfo.cury+1);
-				}
-				else {
-					ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,buf);
-					ciolib_gotoxy(cio_textinfo.curx+1, cio_textinfo.cury);
-				}
-			}
-			break;
-	}
-
-	puttext_can_move=old_puttext_can_move;
-
-	return(a1);
-
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_setcursortype(int a)
-{
-	CIOLIB_INIT();
-
-	cio_api.setcursortype(a);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_showmouse(void) {
-	CIOLIB_INIT();
-
-	if(cio_api.showmouse!=NULL)
-		return(cio_api.showmouse());
-	return(0);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_hidemouse(void) {
-	CIOLIB_INIT();
-
-	if(cio_api.hidemouse!=NULL)
-		return(cio_api.hidemouse());
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setname(const char *name) {
-	CIOLIB_INIT();
-
-	if(cio_api.setname!=NULL)
-		cio_api.setname(name);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_seticon(const void *icon, unsigned long size) {
-	CIOLIB_INIT();
-
-	if(cio_api.seticon!=NULL)
-		cio_api.seticon(icon,size);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_settitle(const char *title) {
-	CIOLIB_INIT();
-
-	if(cio_api.settitle!=NULL)
-		cio_api.settitle(title);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.copytext!=NULL)
-		cio_api.copytext(text,buflen);
-}
-
-/* Optional */
-/* Returns NULL on error */
-CIOLIBEXPORT char * ciolib_getcliptext(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getcliptext!=NULL)
-		return(cio_api.getcliptext());
-	else
-		return(NULL);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_setfont(int font, int force, int font_num)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setfont!=NULL)
-		return(cio_api.setfont(font,force,font_num));
-	else
-		return(0);
-}
-
-/* Optional */
-/* Return -1 if not implemented */
-CIOLIBEXPORT int ciolib_getfont(int font_num)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getfont!=NULL)
-		return(cio_api.getfont(font_num));
-	else
-		return(-1);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_loadfont(const char *filename)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.loadfont!=NULL)
-		return(cio_api.loadfont(filename));
-	else
-		return(0);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.get_window_info!=NULL)
-		return(cio_api.get_window_info(width,height,xpos,ypos));
-	else {
-		if(width)
-			*width=-1;
-		if(height)
-			*height=-1;
-		if(xpos)
-			*xpos=-1;
-		if(ypos)
-			*ypos=-1;
-	}
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_beep(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.beep)
-		cio_api.beep();
-	else
-		BEEP(440,100);
-	return;
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_getcustomcursor(int *start, int *end, int *range, int *blink, int *visible)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getcustomcursor)
-		cio_api.getcustomcursor(start,end,range,blink,visible);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setcustomcursor(int start, int end, int range, int blink, int visible)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setcustomcursor)
-		cio_api.setcustomcursor(start,end,range,blink,visible);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setvideoflags(int flags)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setvideoflags)
-		cio_api.setvideoflags(flags);
-}
-
-/* Optional */
-CIOLIBEXPORT int ciolib_getvideoflags(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getvideoflags)
-		return(cio_api.getvideoflags());
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setscaling(int new_value)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setscaling)
-		cio_api.setscaling(new_value);
-}
-
-/* Optional */
-/* Returns zero on error */
-CIOLIBEXPORT int ciolib_getscaling(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getscaling)
-		return(cio_api.getscaling());
-	return(1);
-}
-
-/* Optional */
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setpalette)
-		return(cio_api.setpalette(entry, r, g, b));
-	return(0);
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.attr2palette)
-		return cio_api.attr2palette(attr, fg, bg);
-	/*
-	 * TODO: If we want to be able to cross screens, we need some
-	 * mapping for non-plaette aware things.
-	 */
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.setpixel)
-		return cio_api.setpixel(x, y, colour);
-	return 0;
-}
-
-/* Returns NULL on failure */
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.getpixels)
-		return cio_api.getpixels(sx, sy, ex, ey, force);
-	return NULL;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.setpixels)
-		return cio_api.setpixels(sx, sy, ex, ey, x_off, y_off, pixels, mask);
-	return 0;
-}
-
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels)
-{
-	if (pixels == NULL)
-		return;
-
-	FREE_AND_NULL(pixels->pixels);
-	FREE_AND_NULL(pixels->pixelsb);
-	FREE_AND_NULL(pixels);
-}
-
-/* Returns NULL on failure */
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void)
-{
-	struct ciolib_screen *ret;
-	int vmode;
-	int i;
-
-	CIOLIB_INIT();
-
-	ret = malloc(sizeof(*ret));
-	if (ret == NULL)
-		return NULL;
-
-	ciolib_gettextinfo(&ret->text_info);
-	vmode = find_vmode(ret->text_info.currmode);
-	ret->vmem = malloc(ret->text_info.screenwidth * ret->text_info.screenheight * sizeof(struct vmem_cell));
-	if (ret->vmem == NULL) {
-		free(ret);
-		return NULL;
-	}
-
-	if (vmode != -1) {
-		ret->pixels = ciolib_getpixels(0, 0, vparams[vmode].charwidth * vparams[vmode].cols - 1, vparams[vmode].charheight * vparams[vmode].rows - 1, TRUE);
-	}
-	ciolib_vmem_gettext(1, 1, ret->text_info.screenwidth, ret->text_info.screenheight, ret->vmem);
-	ret->fg_colour = ciolib_fg;
-	ret->bg_colour = ciolib_bg;
-	for (i=0; i<5; i++)
-		ret->fonts[i] = ciolib_getfont(i);
-	ret->flags = ciolib_getvideoflags();
-	ciolib_get_modepalette(ret->palette);
-
-	return ret;
-}
-
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *scrn)
-{
-	if (scrn == NULL)
-		return;
-
-	ciolib_freepixels(scrn->pixels);
-	FREE_AND_NULL(scrn->vmem);
-	free(scrn);
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn)
-{
-	struct text_info ti;
-	int vmode;
-	int i;
-
-	CIOLIB_INIT();
-
-	ciolib_gettextinfo(&ti);
-
-	if (ti.currmode != scrn->text_info.currmode)
-		ciolib_textmode(scrn->text_info.currmode);
-	ciolib_set_modepalette(scrn->palette);
-	ciolib_vmem_puttext(1, 1, scrn->text_info.screenwidth, scrn->text_info.screenheight, scrn->vmem);
-	ciolib_textcolor(scrn->text_info.attribute);
-	ciolib_window(scrn->text_info.winleft, scrn->text_info.wintop, scrn->text_info.winright, scrn->text_info.winbottom);
-	vmode = find_vmode(scrn->text_info.currmode);
-	if (vmode != -1 && scrn->pixels != NULL)
-		ciolib_setpixels(0, 0, vparams[vmode].charwidth * vparams[vmode].cols - 1, vparams[vmode].charheight * vparams[vmode].rows - 1, 0, 0, scrn->pixels, NULL);
-	for (i=0; i<5; i++)
-		ciolib_setfont(scrn->fonts[i], FALSE, i);
-	ciolib_setvideoflags(scrn->flags);
-	ciolib_setcolour(scrn->fg_colour, scrn->bg_colour);
-	ciolib_gotoxy(scrn->text_info.curx, scrn->text_info.cury);
-	return 1;
-}
-
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg)
-{
-	ciolib_fg = fg;
-	ciolib_bg = bg;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t p[16])
-{
-	CIOLIB_INIT();
-
-	if (cio_api.get_modepalette)
-		return cio_api.get_modepalette(p);
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t p[16])
-{
-	CIOLIB_INIT();
-
-	if (cio_api.set_modepalette)
-		return cio_api.set_modepalette(p);
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT uint32_t ciolib_map_rgb(uint16_t r, uint16_t g, uint16_t b)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.map_rgb)
-		return cio_api.map_rgb(r,g,b);
-	return 0;
-}
-
-CIOLIBEXPORT void ciolib_replace_font(uint8_t id, char *name, void *data, size_t size)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.replace_font) {
-		cio_api.replace_font(id, name, data, size);
-		return;
-	}
-	free(name);
-	free(data);
-}
-
-CIOLIBEXPORT int ciolib_attrfont(uint8_t attr)
-{
-	int flags;
-	int font = 0;
-	CIOLIB_INIT();
-
-	flags = ciolib_getvideoflags();
-	if ((flags & CIOLIB_VIDEO_ALTCHARS) && (attr & 0x08))
-		font |= 1;
-	if ((flags & CIOLIB_VIDEO_BLINKALTCHARS) && (attr & 0x80))
-		font |= 2;
-	return ciolib_getfont(font+1);
-}
-
-/* Returns non-zero if fontnum is supported in this mode */
-CIOLIBEXPORT int ciolib_checkfont(int fontnum)
-{
-	int vmode;
-	struct text_info ti;
-
-	CIOLIB_INIT();
-
-	if (fontnum < 0 || fontnum > 255)
-		return 0;
-
-	// Font 0 is always supported.
-	if (fontnum == 0)
-		return 1;
-
-	ciolib_gettextinfo(&ti);
-	vmode = find_vmode(ti.currmode);
-
-	if (cio_api.checkfont != NULL)
-		return cio_api.checkfont(fontnum);
-	if (vmode == -1)
-		return 0;
-
-	if (cio_api.options & CONIO_OPT_FONT_SELECT) {
-		switch (vparams[vmode].charheight) {
-			case 8:
-				if (conio_fontdata[fontnum].eight_by_eight)
-					return 1;
-				return 0;
-			case 14:
-				if (conio_fontdata[fontnum].eight_by_fourteen)
-					return 1;
-				return 0;
-			case 16:
-				if (conio_fontdata[fontnum].eight_by_sixteen)
-					return 1;
-				return 0;
-			default:
-				return 0;
-		}
-	}
-	return 0;
-
-}
-
-CIOLIBEXPORT void
-ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font)
-{
-	CIOLIB_INIT();
-
-	if (cell == NULL)
-		return;
-	cell->ch = ch;
-	cell->font = font;
-	ciolib_set_vmem_attr(cell, attr);
-}
-
-CIOLIBEXPORT void
-ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr)
-{
-	CIOLIB_INIT();
-
-	if (cell == NULL)
-		return;
-	cell->legacy_attr = attr;
-	ciolib_attr2palette(attr, &cell->fg, &cell->bg);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setwinsize(int w, int h)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setwinsize)
-		cio_api.setwinsize(w, h);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setwinposition)
-		cio_api.setwinposition(x, y);
-}
-
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void)
-{
-	int font = ciolib_getfont(1);
-
-	if (font < 0)
-		return CIOLIB_CP437;
-	if (font >= sizeof(conio_fontdata) / sizeof(conio_fontdata[0]))
-		return CIOLIB_CP437;
-	return conio_fontdata[font].cp;
-}
-
-#if defined(__DARWIN__)
-#ifdef main
-#undef main
-#endif
-
-sem_t startsdl_sem;
-sem_t main_sem;
-int initsdl_ret = -1;
-
-struct main_args {
-	int argc;
-	char **argv;
-	int ret;
-	int no_sdl;
-};
-
-int CIOLIB_main(int, char **);
-void main_stub(void *argptr)
-{
-	struct main_args *args = (struct main_args *)argptr;
-	args->ret = CIOLIB_main(args->argc, args->argv);
-	args->no_sdl = 1;
-	sem_post(&startsdl_sem);
-	sem_post(&main_sem);
-	exit_sdl_con();
-}
-
-int main(int argc, char **argv)
-{
-	struct main_args ma = {argc, argv, -1, 0};
-	sem_init(&startsdl_sem, 0, 0);
-	sem_init(&main_sem, 0, 0);
-	initsdl_ret = init_sdl_video();
-	_beginthread(main_stub, 0, &ma);
-	if (!ma.no_sdl) {
-		if (initsdl_ret != -1) {
-			sem_wait(&startsdl_sem);
-			sdl_video_event_thread(NULL);
-		}
-	}
-	sem_wait(&main_sem);
-	return ma.ret;
-}
-#endif
-
-/* Returns non-zero on success */
-CIOLIBEXPORT uint32_t ciolib_mousepointer(enum ciolib_mouse_ptr type)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.mousepointer)
-		return cio_api.mousepointer(type);
-	return 0;
-}
diff --git a/ciolib/ciolib.h b/ciolib/ciolib.h
deleted file mode 100644
index ba56dfd..0000000
--- a/ciolib/ciolib.h
+++ /dev/null
@@ -1,707 +0,0 @@
-/* $Id: ciolib.h,v 1.125 2020/06/27 00:04:44 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CIOLIB_H_
-#define _CIOLIB_H_
-
-#include <string.h>	/* size_t */
-#if defined(__DARWIN__)
-#include <semwrap.h>
-#endif
-#include "gen_defs.h"
-#include "utf8_codepages.h"
-
-#ifdef CIOLIBEXPORT
-        #undef CIOLIBEXPORT
-#endif
-
-#ifdef _WIN32
-        #if defined(CIOLIB_IMPORTS) || defined(CIOLIB_EXPORTS)
-                #if defined(CIOLIB_IMPORTS)
-                        #define CIOLIBEXPORT __declspec( dllimport )
-                        #define CIOLIBEXPORTVAR __declspec( dllimport )
-                #else
-                        #define CIOLIBEXPORT __declspec( dllexport )
-                        #define CIOLIBEXPORTVAR __declspec( dllexport )
-                #endif
-        #else   /* self-contained executable */
-                #define CIOLIBEXPORT
-                #define CIOLIBEXPORTVAR	extern
-        #endif
-#elif defined __unix__
-        #define CIOLIBEXPORT
-        #define CIOLIBEXPORTVAR	extern
-#else
-        #define CIOLIBEXPORT
-        #define CIOLIBEXPORTVAR	extern
-#endif
-
-enum {
-	 CIOLIB_MODE_AUTO
-	,CIOLIB_MODE_CURSES
-	,CIOLIB_MODE_CURSES_IBM
-	,CIOLIB_MODE_CURSES_ASCII
-	,CIOLIB_MODE_ANSI
-	,CIOLIB_MODE_X
-	,CIOLIB_MODE_CONIO
-	,CIOLIB_MODE_CONIO_FULLSCREEN
-	,CIOLIB_MODE_SDL
-	,CIOLIB_MODE_SDL_FULLSCREEN
-};
-
-enum ciolib_mouse_ptr {
-	 CIOLIB_MOUSEPTR_ARROW
-	,CIOLIB_MOUSEPTR_BAR
-};
-
-#if defined(_WIN32)	/* presumably, Win32 */
-
-	#include <io.h>			/* isatty */
-
-#endif
-
-#ifndef __COLORS
-#define __COLORS
-
-enum {
-	 BLACK
-	,BLUE
-	,GREEN
-	,CYAN
-	,RED
-	,MAGENTA
-	,BROWN	
-	,LIGHTGRAY	
-	,DARKGRAY
-	,LIGHTBLUE	
-	,LIGHTGREEN	
-	,LIGHTCYAN
-	,LIGHTRED
-	,LIGHTMAGENTA
-	,YELLOW
-	,WHITE
-};
-
-#endif	/* __COLORS */
-
-#ifndef BLINK
-#define BLINK 128
-#endif
-
-#define CIOLIB_VIDEO_ALTCHARS             (1<<0)	// Attribute bit 3 selects alternate char set
-#define CIOLIB_VIDEO_NOBRIGHT             (1<<1)	// Attribute bit 3 does not increase intensity
-#define CIOLIB_VIDEO_BGBRIGHT             (1<<2)	// Attribute bit 7 selects high intensity background, not blink
-#define CIOLIB_VIDEO_BLINKALTCHARS        (1<<3)	// Attribute bit 7 selects alternate char set
-#define CIOLIB_VIDEO_NOBLINK              (1<<4)	// Attribute bit 7 has no effect
-#define CIOLIB_VIDEO_EXPAND               (1<<5)	// Use an extra blank column between characters from the font
-#define CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND (1<<6)	// Per VGA, when using CIOLIB_VIDEO_EXPAND, repeat the last column for chars 0xC0 - 0xDF inclusive
-
-enum text_modes
-{
-    /* DOS-compatible modes */
-
-    LASTMODE = -1,
-    BW40     = 0,
-    C40,
-    BW80,
-    C80,
-    MONO     = 7,
-
-    /* New Color modes */
-
-    C40X14   = 8,
-    C40X21,
-    C40X28,
-    C40X43,
-    C40X50,
-    C40X60,
-
-    C80X14,
-    C80X21,
-    C80X28,
-    C80X30,
-    C80X43,
-    C80X50,
-    C80X60,
-
-    /* New Black & White modes */
-
-    BW40X14,
-    BW40X21,
-    BW40X28,
-    BW40X43,
-    BW40X50,
-    BW40X60,
-
-    BW80X14,
-    BW80X21,
-    BW80X28,
-    BW80X43,
-    BW80X50,
-    BW80X60,
-
-    /* New Monochrome modes */
-
-    MONO14,             /* Invalid VGA mode */
-    MONO21,
-    MONO28,
-    MONO43,
-    MONO50,
-    MONO60,		// 38
-
-	/* New modes we've added 'cause they're cool */
-
-	ST132X37_16_9,
-	ST132X52_5_4,
-
-	/* New modes we've added 'cause they're stupid */
-	VGA80X25,
-
-	/* New modes we've added because DigitalMan bitched for DAYS! */
-	LCD80X25,
-
-	/* Cruft... */
-
-	C4350    = C80X50,	/* this is actually "64" in the "real" conio */
-
-    _ORIGMODE = 65,      /* original mode at program startup */
-
-	EGA80X25,	/* 80x25 in 640x350 screen */
-    C64_40X25 = 147,	/* Commodore 64 40x25 colour mode */
-    C128_40X25,		/* Commodore 128 40x25 colour mode */
-    C128_80X25,		/* Commodore 128 40x25 colour mode */
-	ATARI_40X24,	/* Atari 800 40x24 colour text mode */
-	ATARI_80X25,	/* Atari 800 XEP80 80x25 mono text mode */
-
-	/* VESA Modes */
-	VESA_132X21	= 235,
-	VESA_132X25	= 231,
-	VESA_132X28	= 228,
-	VESA_132X30	= 226,
-	VESA_132X34	= 222,
-	VESA_132X43	= 213,
-	VESA_132X50	= 206,
-	VESA_132X60	= 196,
-
-	/* Custom Mode */
-	CIOLIB_MODE_CUSTOM = 255,	// Last mode... if it's over 255, text_info can't hold it.
-};
-
-#define COLOR_MODE	C80
-
-enum
-{
-	_NOCURSOR,
-	_SOLIDCURSOR,
-	_NORMALCURSOR
-};
-
-struct text_info {
-	unsigned char winleft;        /* left window coordinate */
-	unsigned char wintop;         /* top window coordinate */
-	unsigned char winright;       /* right window coordinate */
-	unsigned char winbottom;      /* bottom window coordinate */
-	unsigned char attribute;      /* text attribute */
-	unsigned char normattr;       /* normal attribute */
-	unsigned char currmode;       /* current video mode:
-                                	 BW40, BW80, C40, C80, or C4350 */
-	unsigned char screenheight;   /* text screen's height */
-	unsigned char screenwidth;    /* text screen's width */
-	unsigned char curx;           /* x-coordinate in current window */
-	unsigned char cury;           /* y-coordinate in current window */
-};
-
-CIOLIBEXPORTVAR struct text_info cio_textinfo;
-CIOLIBEXPORTVAR uint32_t ciolib_fg;
-CIOLIBEXPORTVAR uint32_t ciolib_bg;
-
-struct mouse_event {
-	int event;
-	int bstate;
-	int kbsm;
-	int startx;
-	int starty;
-	int endx;
-	int endy;
-	int startx_res;
-	int starty_res;
-	int endx_res;
-	int endy_res;
-};
-
-struct conio_font_data_struct {
-        char 	*eight_by_sixteen;
-        char 	*eight_by_fourteen;
-        char 	*eight_by_eight;
-        char 	*desc;
-        enum ciolib_codepage cp;
-};
-
-CIOLIBEXPORTVAR struct conio_font_data_struct conio_fontdata[257];
-
-struct ciolib_pixels {
-	uint32_t	*pixels;
-	uint32_t	*pixelsb;
-	uint32_t	width;
-	uint32_t	height;
-};
-
-struct vmem_cell {
-	uint8_t legacy_attr;
-	uint8_t ch;
-	uint8_t font;
-	uint32_t fg;	// RGB 00RRGGBB High bit indicates palette colour
-	uint32_t bg;	// RGB 00RRGGBB High bit indicates palette colour
-};
-
-struct ciolib_screen {
-	uint32_t		fg_colour;
-	uint32_t		bg_colour;
-	int			flags;
-	int			fonts[5];
-	struct ciolib_pixels	*pixels;
-	struct vmem_cell	*vmem;
-	struct text_info	text_info;
-	uint32_t		palette[16];
-};
-
-#define CONIO_FIRST_FREE_FONT	43
-
-typedef struct {
-	int		mode;
-	int		mouse;
-	uint64_t	options;
-#define	CONIO_OPT_LOADABLE_FONTS	1
-#define CONIO_OPT_BLINK_ALT_FONT	2
-#define CONIO_OPT_BOLD_ALT_FONT		4
-#define CONIO_OPT_BRIGHT_BACKGROUND	8
-#define CONIO_OPT_PALETTE_SETTING	16
-#define CONIO_OPT_SET_PIXEL			32
-#define CONIO_OPT_CUSTOM_CURSOR		64
-#define CONIO_OPT_FONT_SELECT		128
-#define CONIO_OPT_SET_TITLE			256
-#define CONIO_OPT_SET_NAME			512
-#define CONIO_OPT_SET_ICON			1024
-#define CONIO_OPT_EXTENDED_PALETTE	2048
-#define CONIO_OPT_BLOCKY_SCALING	4096
-	void	(*clreol)		(void);
-	int		(*puttext)		(int,int,int,int,void *);
-	int		(*vmem_puttext)		(int,int,int,int,struct vmem_cell *);
-	int		(*gettext)		(int,int,int,int,void *);
-	int		(*vmem_gettext)		(int,int,int,int,struct vmem_cell *);
-	void	(*textattr)		(int);
-	int		(*kbhit)		(void);
-	void	(*delay)		(long);
-	int		(*wherex)		(void);
-	int		(*wherey)		(void);
-	int		(*putch)		(int);
-	void	(*gotoxy)		(int,int);
-	void	(*clrscr)		(void);
-	void	(*gettextinfo)	(struct text_info *);
-	void	(*setcursortype)(int);
-	int		(*getch)		(void);
-	int		(*getche)		(void);
-	void	(*beep)			(void);
-	void	(*highvideo)	(void);
-	void	(*lowvideo)		(void);
-	void	(*normvideo)	(void);
-	void	(*textmode)		(int);
-	int		(*ungetch)		(int);
-	int		(*movetext)		(int,int,int,int,int,int);
-	char	*(*cgets)		(char *);
-	int		(*cscanf)		(char *,...);
-	char	*(*getpass)		(const char *);
-	void	(*wscroll)		(void);
-	void	(*window)		(int,int,int,int);
-	void	(*delline)		(void);
-	void	(*insline)		(void);
-	int		(*cprintf)		(const char *,...);
-	int		(*cputs)		(const char *);
-	void	(*textbackground)	(int);
-	void	(*textcolor)	(int);
-	int		(*getmouse)		(struct mouse_event *mevent);
-	int		(*ungetmouse)	(struct mouse_event *mevent);
-	int		(*hidemouse)	(void);
-	int		(*showmouse)	(void);
-	int		(*mousepointer)	(enum ciolib_mouse_ptr);
-	void	(*settitle)		(const char *);
-	void	(*setname)		(const char *);
-	void	(*seticon)		(const void *, unsigned long);
-	void	(*copytext)		(const char *, size_t);
-	char 	*(*getcliptext)	(void);
-	void	(*suspend)		(void);
-	void	(*resume)		(void);
-	int		(*setfont)		(int font, int force, int font_num);
-	int		(*getfont)		(int font_num);
-	int		(*loadfont)		(const char *filename);
-	int		(*get_window_info)		(int* width, int* height, int* xpos, int* ypos);
-	void	(*getcustomcursor)	(int *startline, int *endline, int *range, int *blink, int *visible);
-	void	(*setcustomcursor)	(int startline, int endline, int range, int blink, int visible);
-	void	(*setvideoflags)	(int flags);
-	int		(*getvideoflags)	(void);
-	void	(*setscaling)	(int new_value);
-	int		(*getscaling)	(void);
-	int		*escdelay;
-	int		(*setpalette)	(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-	int		(*attr2palette)	(uint8_t attr, uint32_t *fg, uint32_t *bg);
-	int		(*setpixel)	(uint32_t x, uint32_t y, uint32_t colour);
-	struct ciolib_pixels *(*getpixels)(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-	int		(*setpixels)(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-	int 	(*get_modepalette)(uint32_t[16]);
-	int	(*set_modepalette)(uint32_t[16]);
-	uint32_t	(*map_rgb)(uint16_t r, uint16_t g, uint16_t b);
-	void	(*replace_font)(uint8_t id, char *name, void *data, size_t size);
-	int	(*checkfont)(int font_num);
-	void	(*setwinsize)	(int width, int height);
-	void	(*setwinposition)	(int x, int y);
-} cioapi_t;
-
-CIOLIBEXPORTVAR cioapi_t cio_api;
-CIOLIBEXPORTVAR int _wscroll;
-CIOLIBEXPORTVAR int directvideo;
-CIOLIBEXPORTVAR int hold_update;
-CIOLIBEXPORTVAR int puttext_can_move;
-CIOLIBEXPORTVAR int ciolib_reaper;
-CIOLIBEXPORTVAR char *ciolib_appname;
-CIOLIBEXPORTVAR int ciolib_initial_window_height;
-CIOLIBEXPORTVAR int ciolib_initial_window_width;
-
-#define _conio_kbhit()		kbhit()
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-CIOLIBEXPORT int initciolib(int mode);
-CIOLIBEXPORT void suspendciolib(void);
-
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
-CIOLIBEXPORT char * ciolib_cgets(char *str);
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...);
-CIOLIBEXPORT int ciolib_kbhit(void);
-CIOLIBEXPORT int ciolib_getch(void);
-CIOLIBEXPORT int ciolib_getche(void);
-CIOLIBEXPORT int ciolib_ungetch(int ch);
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info);
-CIOLIBEXPORT int ciolib_wherex(void);
-CIOLIBEXPORT int ciolib_wherey(void);
-CIOLIBEXPORT void ciolib_wscroll(void);
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y);
-CIOLIBEXPORT void ciolib_clreol(void);
-CIOLIBEXPORT void ciolib_clrscr(void);
-CIOLIBEXPORT int ciolib_cputs(const char *str);
-CIOLIBEXPORT int ciolib_cprintf(const char *fmat, ...);
-CIOLIBEXPORT void ciolib_textbackground(int colour);
-CIOLIBEXPORT void ciolib_textcolor(int colour);
-CIOLIBEXPORT void ciolib_highvideo(void);
-CIOLIBEXPORT void ciolib_lowvideo(void);
-CIOLIBEXPORT void ciolib_normvideo(void);
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT void ciolib_textattr(int a);
-CIOLIBEXPORT void ciolib_delay(long a);
-CIOLIBEXPORT int ciolib_putch(int a);
-CIOLIBEXPORT void ciolib_setcursortype(int a);
-CIOLIBEXPORT void ciolib_textmode(int mode);
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey);
-CIOLIBEXPORT void ciolib_delline(void);
-CIOLIBEXPORT void ciolib_insline(void);
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt);
-CIOLIBEXPORT void ciolib_settitle(const char *title);
-CIOLIBEXPORT void ciolib_setname(const char *title);
-CIOLIBEXPORT void ciolib_seticon(const void *icon,unsigned long size);
-CIOLIBEXPORT int ciolib_showmouse(void);
-CIOLIBEXPORT int ciolib_hidemouse(void);
-CIOLIBEXPORT int ciolib_mousepointeer(enum ciolib_mouse_ptr);
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen);
-CIOLIBEXPORT char * ciolib_getcliptext(void);
-CIOLIBEXPORT int ciolib_setfont(int font, int force, int font_num);
-CIOLIBEXPORT int ciolib_getfont(int font_num);
-CIOLIBEXPORT int ciolib_loadfont(const char *filename);
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos);
-CIOLIBEXPORT void ciolib_beep(void);
-CIOLIBEXPORT void ciolib_getcustomcursor(int *startline, int *endline, int *range, int *blink, int *visible);
-CIOLIBEXPORT void ciolib_setcustomcursor(int startline, int endline, int range, int blink, int visible);
-CIOLIBEXPORT void ciolib_setvideoflags(int flags);
-CIOLIBEXPORT int ciolib_getvideoflags(void);
-CIOLIBEXPORT void ciolib_setscaling(int flags);
-CIOLIBEXPORT int ciolib_getscaling(void);
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg);
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels);
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void);
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *);
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn);
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg);
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t[16]);
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t[16]);
-CIOLIBEXPORT uint32_t ciolib_map_rgb(uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT void ciolib_replace_font(uint8_t id, char *name, void *data, size_t size);
-CIOLIBEXPORT int ciolib_attrfont(uint8_t attr);
-CIOLIBEXPORT int ciolib_checkfont(int font_num);
-CIOLIBEXPORT void ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font);
-CIOLIBEXPORT void ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr);
-CIOLIBEXPORT void ciolib_setwinsize(int width, int height);
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y);
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void);
-
-/* DoorWay specific stuff that's only applicable to ANSI mode. */
-CIOLIBEXPORT void ansi_ciolib_setdoorway(int enable);
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef CIOLIB_NO_MACROS
-	#define cscanf					ciolib_cscanf
-	#define cprintf					ciolib_cprintf
-
-	#define movetext(a,b,c,d,e,f)	ciolib_movetext(a,b,c,d,e,f)
-	#define cgets(a)				ciolib_cgets(a)
-	#define kbhit()					ciolib_kbhit()
-	#define getch()					ciolib_getch()
-	#define getche()				ciolib_getche()
-	#define ungetch(a)				ciolib_ungetch(a)
-	#define gettextinfo(a)			ciolib_gettextinfo(a)
-	#define wherex()				ciolib_wherex()
-	#define wherey()				ciolib_wherey()
-	#define	wscroll()				ciolib_wscroll()
-	#define gotoxy(a,b)				ciolib_gotoxy(a,b)
-	#define clreol()				ciolib_clreol()
-	#define clrscr()				ciolib_clrscr()
-	#define cputs(a)				ciolib_cputs(a)
-	#define textbackground(a)		ciolib_textbackground(a)
-	#define textcolor(a)			ciolib_textcolor(a)
-	#define highvideo()				ciolib_highvideo()
-	#define lowvideo()				ciolib_lowvideo()
-	#define normvideo()				ciolib_normvideo()
-	#define puttext(a,b,c,d,e)		ciolib_puttext(a,b,c,d,e)
-	#define vmem_puttext(a,b,c,d,e)	ciolib_vmem_puttext(a,b,c,d,e)
-	#define gettext(a,b,c,d,e)		ciolib_gettext(a,b,c,d,e)
-	#define vmem_gettext(a,b,c,d,e)	ciolib_vmem_gettext(a,b,c,d,e)
-	#define textattr(a)				ciolib_textattr(a)
-	#define delay(a)				ciolib_delay(a)
-	#define putch(a)				ciolib_putch(a)
-	#define _setcursortype(a)		ciolib_setcursortype(a)
-	#define textmode(a)				ciolib_textmode(a)
-	#define window(a,b,c,d)			ciolib_window(a,b,c,d)
-	#define delline()				ciolib_delline()
-	#define insline()				ciolib_insline()
-	#define getpass(a)				ciolib_getpass(a)
-	#define getmouse(a)				ciolib_getmouse(a)
-	#define ungetmouse(a)			ciolib_ungetmouse(a)
-	#define	hidemouse()				ciolib_hidemouse()
-	#define showmouse()				ciolib_showmouse()
-	#define mousepointer(a)				ciolib_mousepointer(a)
-	#define setname(a)				ciolib_setname(a)
-	#define seticon(a,b)			ciolib_seticon(a,b)
-	#define settitle(a)				ciolib_settitle(a)
-	#define copytext(a,b)			ciolib_copytext(a,b)
-	#define getcliptext()			ciolib_getcliptext()
-	#define setfont(a,b,c)			ciolib_setfont(a,b,c)
-	#define getfont(a)				ciolib_getfont(a)
-	#define loadfont(a)				ciolib_loadfont(a)
-	#define get_window_info(a,b,c,d)	ciolib_get_window_info(a,b,c,d)
-	#define beep()				ciolib_beep()
-	#define getcustomcursor(a,b,c,d,e)	ciolib_getcustomcursor(a,b,c,d,e)
-	#define setcustomcursor(a,b,c,d,e)	ciolib_setcustomcursor(a,b,c,d,e)
-	#define setvideoflags(a)		ciolib_setvideoflags(a)
-	#define getvideoflags()			ciolib_getvideoflags()
-	#define setscaling(a)			ciolib_setscaling(a)
-	#define getscaling()			ciolib_getscaling()
-	#define setpalette(e,r,g,b)		ciolib_setpalette(e,r,g,b)
-	#define attr2palette(a,b,c)		ciolib_attr2palette(a,b,c)
-	#define setpixel(a,b,c)			ciolib_setpixel(a,b,c)
-	#define getpixels(a,b,c,d, e)		ciolib_getpixels(a,b,c,d, e)
-	#define setpixels(a,b,c,d,e,f,g,h)	ciolib_setpixels(a,b,c,d,e,f,g,h)
-	#define freepixels(a)			ciolib_freepixels(a)
-	#define savescreen()			ciolib_savescreen()
-	#define freescreen(a)			ciolib_freescreen(a)
-	#define restorescreen(a)		ciolib_restorescreen(a)
-	#define setcolour(a,b)			ciolib_setcolour(a,b)
-	#define get_modepalette(a)		ciolib_get_modepalette(a)
-	#define set_modepalette(a)		ciolib_set_modepalette(a)
-	#define map_rgb(a,b,c)			ciolib_map_rgb(a,b,c)
-	#define replace_font(a,b,c,d)	ciolib_replace_font(a,b,c,d)
-	#define attrfont(a)				ciolib_attrfont(a)
-	#define checkfont(a)			ciolib_checkfont(a)
-	#define set_vmem(a, b, c, d)		ciolib_set_vmem(a, b, c, d)
-	#define set_vmem_attr(a, b)		ciolib_set_vmem_attr(a, b)
-	#define setwinsize(a,b)			ciolib_setwinsize(a,b)
-	#define setwinposition(a,b)		ciolib_setwinposition(a,b)
-	#define getcodepage()			ciolib_getcodepage()
-#endif
-
-#ifdef WITH_SDL
-	#include <gen_defs.h>
-	#include <SDL.h>
-
-#if defined(_WIN32) || defined(__DARWIN__)
-	#ifdef main
-		#undef main
-	#endif
-	#define main	CIOLIB_main
-#endif
-
-#if defined(__DARWIN__)
-	extern sem_t main_sem;
-	extern sem_t startsdl_sem;
-	extern int initsdl_ret;
-#endif
-#endif
-
-#define CIOLIB_BUTTON_1	1
-#define CIOLIB_BUTTON_2	2
-#define CIOLIB_BUTTON_3	4
-#define CIOLIB_BUTTON_4	8
-#define CIOLIB_BUTTON_5	16
-
-#define CIOLIB_BUTTON(x)	(1<<(x-1))
-
-enum {
-	 CIOLIB_MOUSE_MOVE			/* 0 */
-	,CIOLIB_BUTTON_1_PRESS
-	,CIOLIB_BUTTON_1_RELEASE
-	,CIOLIB_BUTTON_1_CLICK
-	,CIOLIB_BUTTON_1_DBL_CLICK
-	,CIOLIB_BUTTON_1_TRPL_CLICK
-	,CIOLIB_BUTTON_1_QUAD_CLICK
-	,CIOLIB_BUTTON_1_DRAG_START
-	,CIOLIB_BUTTON_1_DRAG_MOVE
-	,CIOLIB_BUTTON_1_DRAG_END
-	,CIOLIB_BUTTON_2_PRESS			/* 10 */
-	,CIOLIB_BUTTON_2_RELEASE
-	,CIOLIB_BUTTON_2_CLICK
-	,CIOLIB_BUTTON_2_DBL_CLICK
-	,CIOLIB_BUTTON_2_TRPL_CLICK
-	,CIOLIB_BUTTON_2_QUAD_CLICK
-	,CIOLIB_BUTTON_2_DRAG_START
-	,CIOLIB_BUTTON_2_DRAG_MOVE
-	,CIOLIB_BUTTON_2_DRAG_END
-	,CIOLIB_BUTTON_3_PRESS
-	,CIOLIB_BUTTON_3_RELEASE		/* 20 */
-	,CIOLIB_BUTTON_3_CLICK
-	,CIOLIB_BUTTON_3_DBL_CLICK
-	,CIOLIB_BUTTON_3_TRPL_CLICK
-	,CIOLIB_BUTTON_3_QUAD_CLICK
-	,CIOLIB_BUTTON_3_DRAG_START
-	,CIOLIB_BUTTON_3_DRAG_MOVE
-	,CIOLIB_BUTTON_3_DRAG_END
-	,CIOLIB_BUTTON_4_PRESS
-	,CIOLIB_BUTTON_4_RELEASE
-	,CIOLIB_BUTTON_4_CLICK			/* 30 */
-	,CIOLIB_BUTTON_4_DBL_CLICK
-	,CIOLIB_BUTTON_4_TRPL_CLICK
-	,CIOLIB_BUTTON_4_QUAD_CLICK
-	,CIOLIB_BUTTON_4_DRAG_START
-	,CIOLIB_BUTTON_4_DRAG_MOVE
-	,CIOLIB_BUTTON_4_DRAG_END
-	,CIOLIB_BUTTON_5_PRESS
-	,CIOLIB_BUTTON_5_RELEASE
-	,CIOLIB_BUTTON_5_CLICK
-	,CIOLIB_BUTTON_5_DBL_CLICK		/* 40 */
-	,CIOLIB_BUTTON_5_TRPL_CLICK
-	,CIOLIB_BUTTON_5_QUAD_CLICK
-	,CIOLIB_BUTTON_5_DRAG_START
-	,CIOLIB_BUTTON_5_DRAG_MOVE
-	,CIOLIB_BUTTON_5_DRAG_END		/* 45 */
-};
-
-#define CIOLIB_BUTTON_PRESS(x)		((x-1)*9+1)
-#define CIOLIB_BUTTON_RELEASE(x)	((x-1)*9+2)
-#define CIOLIB_BUTTON_CLICK(x)		((x-1)*9+3)
-#define CIOLIB_BUTTON_DBL_CLICK(x)	((x-1)*9+4)
-#define CIOLIB_BUTTON_TRPL_CLICK(x)	((x-1)*9+5)
-#define CIOLIB_BUTTON_QUAD_CLICK(x)	((x-1)*9+6)
-#define CIOLIB_BUTTON_DRAG_START(x)	((x-1)*9+7)
-#define CIOLIB_BUTTON_DRAG_MOVE(x)	((x-1)*9+8)
-#define CIOLIB_BUTTON_DRAG_END(x)	((x-1)*9+9)
-
-#define CIOLIB_BUTTON_NUMBER(x)		((x+8)/9)
-
-#define CIOLIB_BUTTON_BASE(x)		(x!=CIOLIB_MOUSE_MOVE?x-9*(CIOLIB_BUTTON_NUMBER(x)-1):CIOLIB_MOUSE_MOVE)
-
-extern int ciolib_mouse_initialized;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-CIOLIBEXPORT void ciomouse_gotevent(int event, int x, int y, int x_res, int y_res);
-CIOLIBEXPORT int mouse_trywait(void);
-CIOLIBEXPORT int mouse_wait(void);
-CIOLIBEXPORT int mouse_pending(void);
-CIOLIBEXPORT int ciolib_getmouse(struct mouse_event *mevent);
-CIOLIBEXPORT int ciolib_ungetmouse(struct mouse_event *mevent);
-CIOLIBEXPORT void ciolib_mouse_thread(void *data);
-CIOLIBEXPORT uint64_t ciomouse_setevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_addevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_delevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_addevent(uint64_t event);
-CIOLIBEXPORT uint64_t ciomouse_delevent(uint64_t event);
-CIOLIBEXPORT uint32_t ciolib_mousepointer(enum ciolib_mouse_ptr type);
-CIOLIBEXPORT void mousestate(int *x, int *y, uint8_t *buttons);
-CIOLIBEXPORT void mousestate_res(int *x_res, int *y_res, uint8_t *buttons);
-#ifdef __cplusplus
-}
-#endif
-
-#define CIO_KEY_HOME      (0x47 << 8)
-#define CIO_KEY_UP        (0x48 << 8)
-#define CIO_KEY_END       (0x4f << 8)
-#define CIO_KEY_DOWN      (0x50 << 8)
-#define CIO_KEY_F(x)      ((x<11)?((0x3a+x) << 8):((0x7a+x) << 8))
-#define CIO_KEY_IC        (0x52 << 8)
-#define CIO_KEY_DC        (0x53 << 8)
-#define CIO_KEY_SHIFT_IC  (0x05 << 8)	/* Shift-Insert */
-#define CIO_KEY_SHIFT_DC  (0x07 << 8)	/* Shift-Delete */
-#define CIO_KEY_CTRL_IC   (0x04 << 8)	/* Ctrl-Insert */
-#define CIO_KEY_CTRL_DC   (0x06 << 8)	/* Ctrl-Delete */
-#define CIO_KEY_ALT_IC    (0xA2 << 8)	/* Alt-Insert */
-#define CIO_KEY_ALT_DC    (0xA3 << 8)	/* Alt-Delete */
-#define CIO_KEY_LEFT      (0x4b << 8)
-#define CIO_KEY_RIGHT     (0x4d << 8)
-#define CIO_KEY_PPAGE     (0x49 << 8)
-#define CIO_KEY_NPAGE     (0x51 << 8)
-#define CIO_KEY_SHIFT_F(x)((x<11)?((0x53 + x) << 8):((0x7c + x) << 8))
-#define CIO_KEY_CTRL_F(x) ((x<11)?((0x5d + x) << 8):((0x7e + x) << 8))
-#define CIO_KEY_ALT_F(x)  ((x<11)?((0x67 + x) << 8):((0x80 + x) << 8))
-#define CIO_KEY_BACKTAB   (0x0f << 8)
-
-#define CIO_KEY_MOUSE     0x7dE0	// This is the right mouse on Schneider/Amstrad PC1512 PC keyboards "F-14"
-#define CIO_KEY_QUIT	  0x7eE0	// "F-15"
-#define CIO_KEY_ABORTED   0x01E0	// ESC key by scancode
-
-#endif	/* Do not add anything after this line */
diff --git a/ciolib/ciolib.rc b/ciolib/ciolib.rc
deleted file mode 100644
index 015d875..0000000
--- a/ciolib/ciolib.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-/* ========================================================================= */
-/* Icons.                                                                    */
-/* ========================================================================= */
-
-1	ICON	"syncicon64.ico"
diff --git a/ciolib/conv2vid.pl b/ciolib/conv2vid.pl
deleted file mode 100755
index abe7555..0000000
--- a/ciolib/conv2vid.pl
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/perl
-
-use MIME::Decoder;
-
-my @fontfiles=glob("/usr/share/syscons/fonts/*.fnt");
-$decoder = new MIME::Decoder 'x-uuencode' or die "unsupported";
-
-my $fonts=0;
-
-open COUT, "> allfonts.c";
-print COUT "#include <stdio.h>		/* NULL */\n\n";
-print COUT "#include \"allfonts.h\"\n\n";
-my $started;
-my %fontdata;
-foreach my $fontfile (@fontfiles) {
-	my $width,$height;
-	my $decoded=`uudecode -o /dev/stdout $fontfile`;
-	my $bytes=length($decoded);
-	my $fname=$fontfile;
-	$fname =~ s/\.fnt$//;
-	$fname =~ s/^.*\///;
-	$fname =~ s/-/_/g;
-	if($fname =~ /([0-9]+)x([0-9]+)/) {
-		$width=$1;
-		$height=$2;
-	}
-
-	my $lines=0;
-	$started=0;
-	$fontdata{$fname}="\"";
-	while(length($decoded)) {
-		my $ch=substr($decoded,0,1);
-		$decoded=substr($decoded,1);
-		$fontdata{$fname}.='\x'.unpack("H2",$ch);
-		$lines++;
-		if($height && !($lines % $height)) {
-			if(length($decoded)) {
-				$fontdata{$fname}.="\"\n\t\t\"";
-			}
-		}
-	}
-	$fontdata{$fname}.="\"\n\t";
-	$fonts++;
-}
-
-open IN, "< /usr/share/syscons/fonts/INDEX.fonts";
-my %fonts;
-my %fontsizes;
-while (<IN>) {
-	next if(/^\s*#/);
-	chomp;
-	my ($filename, $lang, $desc) = split(/:/);
-	next unless ($lang eq 'en');
-	next if ($filename !~ /\.fnt$/);
-	$filename =~ s/\..*?$//;
-	$filename =~ s/-/_/g;
-	$filename =~ s/_(8x[0-9]*)$//;
-	if($1 eq '8x16') {
-		$fontsizes{$filename} |=1;
-	}
-	elsif($1 eq '8x14') {
-		$fontsizes{$filename} |=2;
-	}
-	elsif($1 eq '8x8') {
-		$fontsizes{$filename} |=4;
-	}
-	else {
-		print STDERR "Unknown font size: $1\n";
-	}
-	$desc =~ s/"/\\"/g;
-	$desc =~ s/\s+8x[0-9]*//g;
-	$desc =~ s/,\s*$//g;
-	$fonts{$filename}=$desc;
-}
-close IN;
-my $arraysize=(scalar keys %fonts)+1;
-print COUT "struct conio_font_data_struct conio_fontdata[".$arraysize."] = {\n";
-$started=0;
-foreach my $font (keys %fonts) {
-	if($started) {
-		print COUT "\t,{";
-	}
-	else {
-		print COUT "\t {";
-		$started=1;
-	}
-	if($fontsizes{$font} & 1) {
-		print COUT $fontdata{"$font\_8x16"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	if($fontsizes{$font} & 2) {
-		print COUT $fontdata{"$font\_8x14"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	if($fontsizes{$font} & 4) {
-		print COUT $fontdata{"$font\_8x8"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	print COUT "\"$fonts{$font}\"}\n";
-}
-print COUT "\t,{NULL, NULL, NULL, NULL}\n";
-print COUT "};\n";
-
-close COUT;
-
-open HOUT,"> allfonts.h";
-print HOUT <<ENDOFHEADER;
-#ifndef _ALLFONTS_H_
-#define _ALLFONTS_H_
-
-struct conio_font_data_struct {
-        char *eight_by_sixteen;
-        char *eight_by_fourteen;
-        char *eight_by_eight;
-        char *desc;
-};
-
-extern struct conio_font_data_struct conio_fontdata[$arraysize];
-
-#endif
-ENDOFHEADER
diff --git a/ciolib/cterm.c b/ciolib/cterm.c
deleted file mode 100644
index 66b7782..0000000
--- a/ciolib/cterm.c
+++ /dev/null
@@ -1,5609 +0,0 @@
-/* $Id: cterm.c,v 1.313 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/*
- * Coordinate systems in use here... text is 1-based.
- * "pixel"   the ciolib screen in pixels.  sixel commands happen here.
- * "screen"  the ciolib screen... gettext/puttext/movetext and mouse
- *           are in this space.
- * "absterm" position inside the full terminal area.  These coordinates
- *           are used when origin mode is off.
- * "term"    The scrolling region.  These coordinates are used when origin
- *           mode is on.
- * "curr"    Either absterm or term depending on the state of origin mode
- *           This is what's sent to and received from the remote, and
- *           matches the CTerm window.
- */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
- #include <xpprintf.h>	/* asprintf() on Win32 */
-#endif
-
-#include <genwrap.h>
-#include <xpbeep.h>
-#include <link_list.h>
-#ifdef __unix__
-	#include <xpsem.h>
-#endif
-#include <threadwrap.h>
-#if !(defined __BORLANDC__ || defined _MSC_VER)
- #include <stdbool.h>
-#else
- #define bool int
- enum { false, true };
-#endif
-
-
-#include "ciolib.h"
-
-#include "cterm.h"
-#include "vidmodes.h"
-#include "base64.h"
-#include <crc16.h>
-
-#define	BUFSIZE	2048
-
-const int cterm_tabs[]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145};
-
-const char *octave="C#D#EF#G#A#B";
-
-/* Characters allowed in music strings... if one that is NOT in here is
- * found, CTerm leaves music capture mode and tosses the buffer away */
-const char *musicchars="aAbBcCdDeEfFgGlLmMnNoOpPsStT0123456789.-+#<> ";
-const uint note_frequency[]={	/* Hz*1000 */
-/* Octave 0 (Note 1) */
-	 65406
-	,69296
-	,73416
-	,77782
-	,82407
-	,87307
-	,92499
-	,97999
-	,103820
-	,110000
-	,116540
-	,123470
-/* Octave 1 */
-	,130810
-	,138590
-	,146830
-	,155560
-	,164810
-	,174610
-	,185000
-	,196000
-	,207650
-	,220000
-	,233080
-	,246940
-/* Octave 2 */
-	,261620
-	,277180
-	,293660
-	,311130
-	,329630
-	,349230
-	,369990
-	,392000
-	,415300
-	,440000
-	,466160
-	,493880
-/* Octave 3 */
-	,523250
-	,554370
-	,587330
-	,622250
-	,659260
-	,698460
-	,739990
-	,783990
-	,830610
-	,880000
-	,932330
-	,987770
-/* Octave 4 */
-	,1046500
-	,1108700
-	,1174700
-	,1244500
-	,1318500
-	,1396900
-	,1480000
-	,1568000
-	,1661200
-	,1760000
-	,1864600
-	,1975500
-/* Octave 5 */
-	,2093000
-	,2217500
-	,2349300
-	,2489000
-	,2637000
-	,2793800
-	,2959900
-	,3136000
-	,3322400
-	,3520000
-	,3729300
-	,3951100
-/* Octave 6 */
-	,4186000
-	,4435000
-	,4698600
-	,4978000
-	,5274000
-	,5587000
-	,5920000
-	,6272000
-	,6644000
-	,7040000
-	,7458600
-	,7902200
-};
-
-struct note_params {
-	int notenum;
-	int	notelen;
-	int	dotted;
-	int	tempo;
-	int	noteshape;
-	int	foreground;
-};
-
-#ifdef CTERM_WITHOUT_CONIO
-	#define GOTOXY(x,y)				cterm->ciolib_gotoxy(cterm, x, y)
-	#define WHEREX()				cterm->ciolib_wherex(cterm)
-	#define WHEREY()				cterm->ciolib_wherey(cterm)
-	#define GETTEXT(a,b,c,d,e)		cterm->ciolib_gettext(cterm, a,b,c,d,e)
-	#define GETTEXTINFO(a)			cterm->ciolib_gettextinfo(cterm,a)
-	#define TEXTATTR(a)				cterm->ciolib_textattr(cterm,a)
-	#define SETCURSORTYPE(a)		cterm->ciolib_setcursortype(cterm,a)
-	#define MOVETEXT(a,b,c,d,e,f)	cterm->ciolib_movetext(cterm,a,b,c,d,e,f)
-	#define CLREOL()				cterm->ciolib_clreol(cterm)
-	#define CLRSCR()				cterm->ciolib_clrscr(cterm)
-	#define SETVIDEOFLAGS(a)		cterm->ciolib_setvideoflags(cterm,a)
-	#define GETVIDEOFLAGS()			cterm->ciolib_getvideoflags(cterm)
-	#define PUTCH(a)				cterm->ciolib_putch(cterm,a)
-	#define PUTTEXT(a,b,c,d,e)		cterm->ciolib_puttext(cterm,a,b,c,d,e)
-	#define WINDOW(a,b,c,d)			cterm->ciolib_window(cterm,a,b,c,d)
-	#define CPUTS(a)				cterm->ciolib_cputs(cterm,a)
-	#define SETFONT(a,b,c)			cterm->ciolib_setfont(cterm,a,b,c)
-#else
-	#define GOTOXY(x,y)				cterm->ciolib_gotoxy(x, y)
-	#define WHEREX()				cterm->ciolib_wherex()
-	#define WHEREY()				cterm->ciolib_wherey()
-	#define GETTEXT(a,b,c,d,e)		cterm->ciolib_gettext(a,b,c,d,e)
-	#define GETTEXTINFO(a)			cterm->ciolib_gettextinfo(a)
-	#define TEXTATTR(a)				cterm->ciolib_textattr(a)
-	#define SETCURSORTYPE(a)		cterm->ciolib_setcursortype(a)
-	#define MOVETEXT(a,b,c,d,e,f)	cterm->ciolib_movetext(a,b,c,d,e,f)
-	#define CLREOL()				cterm->ciolib_clreol()
-	#define CLRSCR()				cterm->ciolib_clrscr()
-	#define SETVIDEOFLAGS(a)		cterm->ciolib_setvideoflags(a)
-	#define GETVIDEOFLAGS()			cterm->ciolib_getvideoflags()
-	#define PUTCH(a)				cterm->ciolib_putch(a)
-	#define PUTTEXT(a,b,c,d,e)		cterm->ciolib_puttext(a,b,c,d,e)
-	#define WINDOW(a,b,c,d)			cterm->ciolib_window(a,b,c,d)
-	#define CPUTS(a)				cterm->ciolib_cputs(a)
-	#define SETFONT(a,b,c)			cterm->ciolib_setfont(a,b,c)
-#endif
-
-static void ctputs(struct cterminal *cterm, char *buf);
-static void cterm_reset(struct cterminal *cterm);
-
-#ifdef CTERM_WITHOUT_CONIO
-/***************************************************************/
-/* These funcions are used when conio is not                   */
-/* They are mostly copied from either ciolib.c or bitmap_con.c */
-/***************************************************************/
-#define BD	((struct buffer_data *)cterm->extra)
-#define CTERM_INIT()	while(BD==NULL) ciolib_init(cterm)
-
-struct buffer_data {
-	unsigned char	x;
-	unsigned char	y;
-	unsigned char	winleft;        /* left window coordinate */
-	unsigned char	wintop;         /* top window coordinate */
-	unsigned char	winright;       /* right window coordinate */
-	unsigned char	winbottom;      /* bottom window coordinate */
-	unsigned char	attr;    		  /* text attribute */
-	unsigned char	currmode;       /* current video mode */
-	unsigned char	cursor;
-	unsigned char 	*vmem;
-	int				vflags;
-};
-
-static void ciolib_init(struct cterminal *cterm)
-{
-	BD=malloc(sizeof(struct buffer_data));
-	if(!BD)
-		return
-	BD->x=1;
-	BD->y=1;
-	BD->winleft=1;
-	BD->wintop=1;
-	BD->winright=cterm->width;
-	BD->winbottom=cterm->height;
-	BD->attr=7;
-	BD->currmode=C80;	// TODO: Adjust based on size...
-	BD->cursor=_NORMALCURSOR;
-	BD->vmem=malloc(2*cterm->height*cterm->width);
-	if(BD->vmem==NULL) {
-		free(BD)
-		return;
-	}
-	BD->vflags=0;
-}
-
-static void ciolib_gotoxy(struct cterminal *cterm,int x,int y)
-{
-	CTERM_INIT();
-
-	if(x < 1
-			|| x > BD->winright-BD->winleft+1
-			|| y < 1
-			|| y > BD->winbottom-BD->wintop+1)
-		return;
-
-	BD->x=x;
-	BD->y=y;
-}
-
-static int ciolib_wherex(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->x
-}
-
-static int ciolib_wherey(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->y
-}
-
-static int ciolib_gettext(struct cterminal *cterm,int sx, int sy, int ex, int ey, void *fill)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=BD->vmem[y*cio_textinfo.screenwidth+x];
-			*(out++)=sch & 0xff;
-			*(out++)=sch >> 8;
-		}
-	}
-	return(1);
-}
-
-static void ciolib_gettextinfo(struct cterminal *cterm,struct text_info *ti)
-{
-	CTERM_INIT();
-	ti->winleft=>BD->winleft;
-	ti->wintop=BD->wintop;
-	ti->winright=BD->winright;
-	ti->winbottom=BD->winbottom;
-	ti->attribute=BD->attr;
-	ti->normattr=7;
-	ti->currmode=BD->currmode;
-	if (cterm->height > 0xff)
-		ti->screenheight = 0xff;
-	else
-		ti->screenheight = cterm->height;
-	if (cterm->width > 0xff)
-		ti->screenwidth = 0xff;
-	else
-		ti->screenwidth = cterm->width;
-	ti->curx=BD->x;
-	ti->cury=BD->y;
-}
-
-static void ciolib_textattr(struct cterminal *cterm,int attr)
-{
-	CTERM_INIT();
-	BD->attr=attr;
-}
-
-static void ciolib_setcursortype(struct cterminal *cterm,int cursor)
-{
-	CTERM_INIT();
-	BD->cursor=cursor;
-}
-
-static int ciolib_movetext(struct cterminal *cterm, int x, int y, int ex, int ey, int tox, int toy)
-{
-	int	direction=1;
-	int	cy;
-	int	sy;
-	int	destoffset;
-	int	sourcepos;
-	int width=ex-x+1;
-	int height=ey-y+1;
-
-	CTERM_INIT();
-	if(		   x<1
-			|| y<1
-			|| ex<1
-			|| ey<1
-			|| tox<1
-			|| toy<1
-			|| x>cterm->width
-			|| ex>cterm->width
-			|| tox>cterm->width
-			|| y>cterm->height
-			|| ey>cterm->height
-			|| toy>cterm->height)
-		return(0);
-
-	if(toy > y)
-		direction=-1;
-
-	sourcepos=(y-1)*cterm->width+(x-1);
-	destoffset=(((toy-1)*cterm->width+(tox-1))-sourcepos);
-
-	for(cy=(direction==-1?(height-1):0); cy<height && cy>=0; cy+=direction) {
-		sourcepos=((y-1)+cy)*cio_textinfo.screenwidth+(x-1);
-		memmove(&(BD->vmem[sourcepos+destoffset]), &(BD->vmem[sourcepos]), sizeof(BD->vmem[0])*width);
-	}
-	return(1);
-}
-
-static void conio_clreol(struct cterminal *cterm)
-{
-	int pos,x;
-	WORD fill=(BD->attr<<8)|space;
-
-	CTERM_INIT();
-	pos=(BD->y+BD->wintop-2)*cterm->width;
-	for(x=BD->x+BD->winleft-2; x<BD->right; x++)
-		BD->vmem[pos+x]=fill;
-}
-
-static void ciolib_clrscr(struct cterminal *cterm)
-{
-	int x,y;
-	WORD fill=(BD->attr<<8)|space;
-
-	CTERM_INIT();
-	for(y=cio_textinfo.wintop-1; y<cio_textinfo.winbottom; y++) {
-		for(x=BD->winleft-1; x<BD->winright; x++)
-			BD->vmem[y*cterm->width+x]=fill;
-	}
-}
-
-static void ciolib_setvideoflags(struct cterminal *cterm, int flags)
-{
-	CTERM_INIT();
-	BD->vflags=flags;
-}
-
-static int ciolib_getvideoflags(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->vflags;
-}
-
-static void ciolib_wscroll(struct cterminal *cterm)
-{
-	int os;
-
-	CTERM_INIT();
-	MOVETEXT(BD->winleft
-			,BD->wintop+1
-			,BD->winright
-			,BD->winbottom
-			,BD->winleft
-			,BD->wintop);
-	GOTOXY(cterm, 1,BD->winbottom-BD->wintop+1);
-	os=_wscroll;
-	_wscroll=0;
-	CLREOL(cterm);
-	_wscroll=os;
-	GOTOXY(cterm, BD->x,BD->y);
-}
-
-static int ciolib_putch(struct cterminal *cterm,int a)
-{
-	unsigned char a1=a;
-	unsigned char buf[2];
-	int i;
-
-	CTERM_INIT();
-	buf[0]=a1;
-	buf[1]=BD->attr;
-
-	switch(a1) {
-		case '\r':
-			GOTOXY(1,cio_textinfo.cury);
-			break;
-		case '\n':
-			if(BD->y==BD->winbottom-BD->wintop+1)
-				ciolib_wscroll(cterm);
-			else
-				GOTOXY(BD->x, BD->y+1);
-			break;
-		case '\b':
-			if(BD->x>1) {
-				GOTOXY(BD->x-1,BD->y);
-				buf[0]=' ';
-				PUTTEXT(BD->x+BD->winleft-1
-						,BD->y+BD->wintop-1
-						,BD->x+BD->winleft-1
-						,BD->y+BD->wintop-1
-						,buf);
-			}
-			break;
-		case 7:		/* Bell */
-			break;
-		case '\t':
-			for(i = 0; i < cterm->tab_count;i++) {
-				if(cterm->tabs[i] > BD->x) {
-					buf[0]=' ';
-					while(BD->x < cterm->tabs[i]) {
-						PUTTEXT(BD->x+BD->winleft-1
-								,BD->y+BD->wintop-1
-								,BD->x+BD->winleft-1
-								,BD->y+BD->wintop-1
-								,buf);
-						GOTOXY(BD->x+1,BD->y);
-						if(BD->x==cterm->width)
-							break;
-					}
-					break;
-				}
-			}
-			if(BD->x==cterm->width) {
-				GOTOXY(1,BD->y);
-				if(BD->y==BD->winbottom-BD->wintop+1)
-					ciolib_wscroll(cterm);
-				else
-					GOTOXY(BD->x, BD->y+1);
-			}
-			break;
-		default:
-			if(BD->y==BD->winbottom-BD->wintop+1
-					&& BD->x==BD->winright-BD->winleft+1) {
-				PUTTEXT(WHEREX()+BD->winleft-1
-						,WHEREY()+BD->wintop-1
-						,WHEREX()+BD->winleft-1
-						,WHEREY()+BD->wintop-1
-						,buf);
-				ciolib_wscroll(cterm);
-				GOTOXY(1, BD->winbottom-BD->wintop+1);
-			}
-			else {
-				if(BD->x==BD->winright-BD->winleft+1) {
-					PUTTEXT(WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,buf);
-					GOTOXY(1,BD->y+1);
-				}
-				else {
-					PUTTEXT(WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,buf);
-					GOTOXY(BD->x+1, BD->y);
-				}
-			}
-			break;
-	}
-
-	return(a1);
-}
-
-static int ciolib_puttext(struct cterminal *cterm,int sx, int sy, int ex, int ey, void *fill)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cterm->width
-			|| sy > cterm->height
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=*(out++);
-			sch |= (*(out++))<<8;
-			BD->vmem[y*cterm->width+x]=sch;
-		}
-	}
-	return(1);
-}
-
-static void ciolib_window(struct cterminal *cterm,int sx, int sy, int ex, int ey)
-{
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cterm->width
-			|| sy > cterm->height
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height)
-		return;
-	BD->winleft=sx;
-	BD->wintop=sy;
-	BD->winright=ex;
-	BD->winbottom=ey;
-	GOTOXY(1,1);
-}
-
-static int ciolib_cputs(struct cterminal *cterm, const char *str)
-{
-	int		pos;
-	int		ret=0;
-	int		olddmc;
-
-	CTERM_INIT();
-	for(pos=0;str[pos];pos++)
-	{
-		ret=str[pos];
-		if(str[pos]=='\n')
-			PUTCH('\r');
-		PUTCH(str[pos]);
-	}
-	GOTOXY(WHEREX(),WHEREY());
-	return(ret);
-}
-
-static int ciolib_setfont(struct cterminal *,int font, int force, int font_num)
-{
-	CTERM_INIT();
-	return -1;
-}
-#endif
-
-enum cterm_coordinates {
-	CTERM_COORD_SCREEN,
-	CTERM_COORD_ABSTERM,
-	CTERM_COORD_TERM,
-	CTERM_COORD_CURR,
-};
-
-#define SCR_MINX	1
-#define ABS_MINX	1
-#define TERM_MINX	1
-#define CURR_MINX	1
-
-#if 0
-static int
-scr_maxx(struct cterminal *cterm)
-{
-	struct text_info ti;
-
-	GETTEXTINFO(&ti);
-	return ti.screenwidth;
-}
-#endif
-//#define SCR_MAXX	coord_maxx(cterm, CTERM_COORD_SCREEN)
-#define ABS_MAXX	cterm->width
-#define TERM_MAXX	(cterm->right_margin - cterm->left_margin + 1)
-#define CURR_MAXX	((cterm->extattr & CTERM_EXTATTR_ORIGINMODE) ? TERM_MAXX : ABS_MAXX)
-
-#define SCR_MINY	1
-#define ABS_MINY	1
-#define TERM_MINY	1
-#define CURR_MINY	1
-
-
-#if 0
-static int
-scr_maxy(struct cterminal *cterm, enum cterm_coordinates coord)
-{
-	struct text_info ti;
-
-	GETTEXTINFO(&ti);
-	return ti.screenheight;
-}
-#endif
-//#define SCR_MAXY	scr_maxy(cterm)
-#define ABS_MAXY	cterm->height
-#define TERM_MAXY	(cterm->bottom_margin - cterm->top_margin + 1)
-#define CURR_MAXY	((cterm->extattr & CTERM_EXTATTR_ORIGINMODE) ? TERM_MAXY : ABS_MAXY)
-
-static void
-coord_conv_xy(struct cterminal *cterm, enum cterm_coordinates from_coord, 
-    enum cterm_coordinates to_coord, int *x, int *y)
-{
-	if (from_coord == to_coord)
-		return;
-
-	if (x) {
-		if (from_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				from_coord = CTERM_COORD_TERM;
-			else
-				from_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(from_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*x += cterm->left_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*x += cterm->x - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-		if (to_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				to_coord = CTERM_COORD_TERM;
-			else
-				to_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(to_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*x -= cterm->left_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*x -= cterm->x - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-	}
-	if (y) {
-		if (from_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				from_coord = CTERM_COORD_TERM;
-			else
-				from_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(from_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*y += cterm->top_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*y += cterm->y - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-		if (to_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				to_coord = CTERM_COORD_TERM;
-			else
-				to_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(to_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*y -= cterm->top_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*y -= cterm->y - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-	}
-}
-
-static void
-coord_get_xy(struct cterminal *cterm, enum cterm_coordinates coord, int *x, int *y)
-{
-	if (x)
-		*x = WHEREX();
-	if (y)
-		*y = WHEREY();
-
-	coord_conv_xy(cterm, CTERM_COORD_CURR, coord, x, y);
-}
-#define SCR_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_SCREEN, x, y)
-#define ABS_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_ABSTERM, x, y)
-#define TERM_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_TERM, x, y)
-#define CURR_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_CURR, x, y)
-void
-setwindow(struct cterminal *cterm)
-{
-	int col, row, max_col, max_row;
-
-	col = CURR_MINX;
-	row = CURR_MINY;
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &col, &row);
-	max_col = CURR_MAXX;
-	max_row = CURR_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &max_col, &max_row);
-	WINDOW(col, row, max_col, max_row);
-}
-
-void
-cterm_gotoxy(struct cterminal *cterm, int x, int y)
-{
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &x, &y);
-	GOTOXY(x, y);
-	ABS_XY(&cterm->xpos, &cterm->ypos);
-}
-
-static void
-insert_tabstop(struct cterminal *cterm, int pos)
-{
-	int i;
-	int *new_stops;
-
-	for (i = 0; i < cterm->tab_count && cterm->tabs[i] < pos; i++);
-	if (cterm->tabs[i] == pos)
-		return;
-
-	new_stops = realloc(cterm->tabs, (cterm->tab_count + 1) * sizeof(cterm->tabs[0]));
-	if (new_stops == NULL)
-		return;
-	cterm->tabs = new_stops;
-	if (i < cterm->tab_count)
-		memmove(&cterm->tabs[i + 1], &cterm->tabs[i], (cterm->tab_count - i) * sizeof(cterm->tabs[0]));
-	cterm->tabs[i] = pos;
-	cterm->tab_count++;
-}
-
-static void
-delete_tabstop(struct cterminal *cterm, int pos)
-{
-	int i;
-
-	for (i = 0; i < cterm->tab_count && cterm->tabs[i] <= pos; i++) {
-		if (cterm->tabs[i] == pos) {
-			memmove(&cterm->tabs[i], &cterm->tabs[i+1], (cterm->tab_count - i - 1) * sizeof(cterm->tabs[0]));
-			cterm->tab_count--;
-			return;
-		}
-	}
-	return;
-}
-
-static void tone_or_beep(double freq, int duration, int device_open)
-{
-	if(device_open)
-		xptone(freq,duration,WAVE_SHAPE_SINE_SAW_HARM);
-	else
-		xpbeep(freq,duration);
-}
-
-static void playnote_thread(void *args)
-{
-	/* Tempo is quarter notes per minute */
-	int duration;
-	int pauselen;
-	struct note_params *note;
-	int	device_open=FALSE;
-	struct cterminal *cterm=(struct cterminal *)args;
-
-
-	SetThreadName("PlayNote");
-	cterm->playnote_thread_running=TRUE;
-	while(1) {
-		if(device_open) {
-			if(!listSemTryWaitBlock(&cterm->notes,5000)) {
-				xptone_close();
-				listSemWait(&cterm->notes);
-			}
-		}
-		else
-			listSemWait(&cterm->notes);
-		note=listShiftNode(&cterm->notes);
-		if(note==NULL)
-			break;
-		device_open=xptone_open();
-		if(note->dotted)
-			duration=360000/note->tempo;
-		else
-			duration=240000/note->tempo;
-		duration/=note->notelen;
-		switch(note->noteshape) {
-			case CTERM_MUSIC_STACATTO:
-				pauselen=duration/4;
-				break;
-			case CTERM_MUSIC_LEGATO:
-				pauselen=0;
-				break;
-			case CTERM_MUSIC_NORMAL:
-			default:
-				pauselen=duration/8;
-				break;
-		}
-		duration-=pauselen;
-		if(note->notenum < 72 && note->notenum >= 0)
-			tone_or_beep(((double)note_frequency[note->notenum])/1000,duration,device_open);
-		else
-			tone_or_beep(0,duration,device_open);
-		if(pauselen)
-			tone_or_beep(0,pauselen,device_open);
-		if(note->foreground)
-			sem_post(&cterm->note_completed_sem);
-		free(note);
-	}
-	if (device_open)
-		xptone_close();
-	sem_post(&cterm->playnote_thread_terminated);
-	cterm->playnote_thread_running=FALSE;
-}
-
-static void play_music(struct cterminal *cterm)
-{
-	int		i;
-	char	*p;
-	char	*out;
-	int		offset;
-	char	note;
-	int		notelen;
-	char	numbuf[10];
-	int		dotted;
-	int		notenum;
-	struct	note_params *np;
-	int		fore_count;
-
-	if(cterm->quiet) {
-		cterm->music=0;
-		cterm->musicbuf[0]=0;
-		return;
-	}
-	p=cterm->musicbuf;
-	fore_count=0;
-	if(cterm->music==1) {
-		switch(toupper(*p)) {
-			case 'F':
-				cterm->musicfore=TRUE;
-				p++;
-				break;
-			case 'B':
-				cterm->musicfore=FALSE;
-				p++;
-				break;
-			case 'N':
-				if(!isdigit(*(p+1))) {
-					cterm->noteshape=CTERM_MUSIC_NORMAL;
-					p++;
-				}
-				break;
-			case 'L':
-				cterm->noteshape=CTERM_MUSIC_LEGATO;
-				p++;
-				break;
-			case 'S':
-				cterm->noteshape=CTERM_MUSIC_STACATTO;
-				p++;
-				break;
-		}
-	}
-	for(;*p;p++) {
-		notenum=0;
-		offset=0;
-		switch(toupper(*p)) {
-			case 'M':
-				p++;
-				switch(toupper(*p)) {
-					case 'F':
-						cterm->musicfore=TRUE;
-						break;
-					case 'B':
-						cterm->musicfore=FALSE;
-						break;
-					case 'N':
-						cterm->noteshape=CTERM_MUSIC_NORMAL;
-						break;
-					case 'L':
-						cterm->noteshape=CTERM_MUSIC_LEGATO;
-						break;
-					case 'S':
-						cterm->noteshape=CTERM_MUSIC_STACATTO;
-						break;
-					default:
-						p--;
-				}
-				break;
-			case 'T':						/* Tempo */
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->tempo=strtoul(numbuf,NULL,10);
-				if(cterm->tempo>255)
-					cterm->tempo=255;
-				if(cterm->tempo<32)
-					cterm->tempo=32;
-				break;
-			case 'O':						/* Octave */
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->octave=strtoul(numbuf,NULL,10);
-				if(cterm->octave>6)
-					cterm->octave=6;
-				break;
-			case 'L':
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->notelen=strtoul(numbuf,NULL,10);
-				if(cterm->notelen<1)
-					cterm->notelen=1;
-				if(cterm->notelen>64)
-					cterm->notelen=64;
-				break;
-			case 'N':						/* Note by number */
-				if(isdigit(*(p+1))) {
-					out=numbuf;
-					while(isdigit(*(p+1))) {
-						*(out++)=*(p+1);
-						p++;
-					}
-					*out=0;
-					notenum=strtoul(numbuf,NULL,10);
-				}
-				if(notenum==0) {
-					notenum=-1;
-					offset=1;
-				}
-				/* Fall-through */
-			case 'A':						/* Notes in current octave by letter */
-			case 'B':
-			case 'C':
-			case 'D':
-			case 'E':
-			case 'F':
-			case 'G':
-			case 'P':
-				note=toupper(*p);
-				notelen=cterm->notelen;
-				dotted=0;
-				i=1;
-				while(i) {
-					i=0;
-					if(*(p+1)=='+' || *(p+1)=='#') {	/* SHARP */
-						offset+=1;
-						p++;
-						i=1;
-					}
-					if(*(p+1)=='-') {					/* FLAT */
-						offset-=1;
-						p++;
-						i=1;
-					}
-					if(*(p+1)=='.') {					/* Dotted note (1.5*notelen) */
-						dotted=1;
-						p++;
-						i=1;
-					}
-					if(isdigit(*(p+1))) {
-						out=numbuf;
-						while(isdigit(*(p+1))) {
-							*(out++)=*(p+1);
-							p++;
-						}
-						*out=0;
-						notelen=strtoul(numbuf,NULL,10);
-						i=1;
-					}
-				}
-				if(note=='P') {
-					notenum=-1;
-					offset=0;
-				}
-				if(notenum==0) {
-					out=strchr(octave,note);
-					if(out==NULL) {
-						notenum=-1;
-						offset=1;
-					}
-					else {
-						notenum=cterm->octave*12+1;
-						notenum+=(out-octave);
-					}
-				}
-				notenum+=offset;
-				np=(struct note_params *)malloc(sizeof(struct note_params));
-				if(np!=NULL) {
-					np->notenum=notenum;
-					np->notelen=notelen;
-					np->dotted=dotted;
-					np->tempo=cterm->tempo;
-					np->noteshape=cterm->noteshape;
-					np->foreground=cterm->musicfore;
-					listPushNode(&cterm->notes, np);
-					if(cterm->musicfore)
-						fore_count++;
-				}
-				break;
-			case '<':							/* Down one octave */
-				cterm->octave--;
-				if(cterm->octave<0)
-					cterm->octave=0;
-				break;
-			case '>':							/* Up one octave */
-				cterm->octave++;
-				if(cterm->octave>6)
-					cterm->octave=6;
-				break;
-		}
-	}
-	cterm->music=0;
-	cterm->musicbuf[0]=0;
-	while(fore_count) {
-		sem_wait(&cterm->note_completed_sem);
-		fore_count--;
-	}
-	xptone_complete();
-}
-
-void
-cterm_clreol(struct cterminal *cterm)
-{
-	int x, y;
-	int rm;
-	struct vmem_cell *buf;
-	int i;
-	int width;
-
-	CURR_XY(&x, &y);
-	rm = CURR_MAXX;
-
-	width = rm - x + 1;
-	if (width < 1)
-		return;
-	buf = malloc(width * sizeof(*buf));
-	if (!buf)
-		return;
-	for (i = 0; i < width; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &x, &y);
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &rm, NULL);
-	vmem_puttext(x, y, rm, y, buf);
-	free(buf);
-}
-
-void
-cterm_clrblk(struct cterminal *cterm, int sx, int sy, int ex, int ey)
-{
-	int i;
-	struct vmem_cell *buf;
-	int chars = (ex - sx + 1) * (ey - sy + 1);
-
-	buf = malloc(chars * sizeof(*buf));
-	if (!buf)
-		return;
-	for (i = 0; i < chars ; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	vmem_puttext(sx, sy, ex, ey, buf);
-	free(buf);
-}
-
-static void
-scrolldown(struct cterminal *cterm)
-{
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int x,y;
-
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	MOVETEXT(minx, miny, maxx, maxy - 1, minx, miny + 1);
-	CURR_XY(&x, &y);
-	cterm_clrblk(cterm, minx, miny, minx + TERM_MAXX - 1, miny);
-	GOTOXY(x, y);
-}
-
-void
-cterm_scrollup(struct cterminal *cterm)
-{
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int x,y;
-	int getw;
-
-	cterm->backpos++;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	if(cterm->scrollback!=NULL) {
-		if(cterm->backpos>cterm->backlines) {
-			memmove(cterm->scrollback, cterm->scrollback + cterm->backwidth, cterm->backwidth * sizeof(*cterm->scrollback) * (cterm->backlines - 1));
-			cterm->backpos--;
-		}
-		getw = cterm->backwidth;
-		if (getw > cterm->width)
-			getw = cterm->width;
-		if (getw < cterm->backwidth) {
-			memset(cterm->scrollback + (cterm->backpos - 1) * cterm->backwidth, 0, sizeof(*cterm->scrollback) * cterm->backwidth);
-		}
-		vmem_gettext(cterm->x, miny, cterm->x + getw - 1, miny, cterm->scrollback + (cterm->backpos - 1) * cterm->backwidth);
-	}
-	MOVETEXT(minx, miny + 1, maxx, maxy, minx, miny);
-	CURR_XY(&x, &y);
-	cterm_clrblk(cterm, minx, maxy, minx + TERM_MAXX - 1, maxy);
-	GOTOXY(x, y);
-}
-
-static void
-cond_scrollup(struct cterminal *cterm)
-{
-	int x, y;
-
-	TERM_XY(&x, &y);
-	if (x >= TERM_MINX && x <= TERM_MAXX &&
-	    y >= TERM_MINY && y <= TERM_MAXY)
-		cterm_scrollup(cterm);
-}
-
-static void
-dellines(struct cterminal * cterm, int lines)
-{
-	int i;
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int sx,sy;
-	int x,y;
-
-	if(lines<1)
-		return;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	TERM_XY(&x, &y);
-	// Can't delete lines outside of window
-	if (x < TERM_MINX || x > TERM_MAXX || y < TERM_MINY || y > TERM_MAXY)
-		return;
-	SCR_XY(&sx, &sy);
-	MOVETEXT(minx, sy + lines, maxx, maxy, minx, sy);
-	for(i = TERM_MAXY - lines; i <= TERM_MAXY; i++) {
-		cterm_gotoxy(cterm, TERM_MINX, i);
-		cterm_clreol(cterm);
-	}
-	cterm_gotoxy(cterm, x, y);
-}
-
-static void
-clear2bol(struct cterminal * cterm)
-{
-	struct vmem_cell *buf;
-	int i;
-	int x, y;
-	int minx = CURR_MINX;
-
-	CURR_XY(&x, &y);
-	buf = malloc(x * sizeof(*buf));
-	for(i = 0; i < x; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &x, &y);
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &minx, NULL);
-	vmem_puttext(minx, y, x, y, buf);
-	free(buf);
-}
-
-void
-cterm_clearscreen(struct cterminal *cterm, char attr)
-{
-	int getw;
-
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	if(cterm->scrollback!=NULL) {
-		cterm->backpos+=cterm->height;
-		if(cterm->backpos>cterm->backlines) {
-			memmove(cterm->scrollback, cterm->scrollback + cterm->backwidth * (cterm->backpos - cterm->backlines), cterm->backwidth * sizeof(*cterm->scrollback) * (cterm->backlines - (cterm->backpos - cterm->backlines)));
-			cterm->backpos=cterm->backlines;
-		}
-		getw = cterm->backwidth;
-		if (getw > cterm->width)
-			getw = cterm->width;
-		if (getw < cterm->backwidth) {
-			memset(cterm->scrollback + (cterm->backpos - cterm->height) * cterm->backwidth, 0, sizeof(*cterm->scrollback) * cterm->backwidth * cterm->height);
-		}
-		vmem_gettext(cterm->x, cterm->y, cterm->x + getw - 1, cterm->y + cterm->height - 1,
-		    cterm->scrollback + (cterm->backpos - cterm->height) * cterm->backwidth);
-	}
-	CLRSCR();
-	GOTOXY(CURR_MINX, CURR_MINY);
-}
-
-/*
- * Parses an ESC sequence and returns it broken down
- */
-
-struct esc_seq {
-	char c1_byte;			// Character after the ESC.  If '[', ctrl_func and param_str will be non-NULL.
-					// For nF sequences (ESC I...I F), this will be NUL and ctrl_func will be
-					// non-NULL
-	char final_byte;		// Final Byte (or NUL if c1 function);
-	char *ctrl_func;		// Intermediate Bytes and Final Byte as NULL-terminated string.
-	char *param_str;		// The parameter bytes
-	int param_count;		// The number of parameters, or -1 if parameters were not parsed.
-	str_list_t param;		// The parameters as strings
-	uint64_t *param_int;	// The parameter bytes parsed as integers UINT64_MAX for default value.
-};
-
-struct sub_params {
-	int param_count;		// The number of parameters, or -1 if parameters were not parsed.
-	uint64_t *param_int;	// The parameter bytes parsed as integers UINT64_MAX for default value.
-};
-
-static bool parse_sub_parameters(struct sub_params *sub, struct esc_seq *seq, unsigned param)
-{
-	int i;
-	char *p;
-
-	sub->param_count = 1;
-	sub->param_int = NULL;
-
-	if (param >= seq->param_count)
-		return false;
-	for (p=seq->param[param]; *p; p++)
-		if (*p == ':')
-			sub->param_count++;
-	if (sub->param_count == 0)
-		return true;
-	sub->param_int = malloc(sub->param_count * sizeof(sub->param_int[0]));
-	if (sub->param_int == NULL)
-		return false;
-	p = seq->param[param];
-	for (i=0; i<sub->param_count; i++) {
-		p++;
-		sub->param_int[i] = strtoull(p, &p, 10);
-		if (*p != ':' && *p != 0) {
-			free(seq->param_int);
-			return false;
-		}
-	}
-	return true;
-}
-
-static void free_sub_parameters(struct sub_params *sub)
-{
-	FREE_AND_NULL(sub->param_int);
-}
-
-static bool parse_parameters(struct esc_seq *seq)
-{
-	char *p;
-	char *dup;
-	char *start = NULL;
-	bool last_was_sc = false;
-	int i;
-
-	if (seq == NULL)
-		return false;
-	if (seq->param_str == NULL)
-		return false;
-
-	dup = strdup(seq->param_str);
-	if (dup == NULL)
-		return false;
-	p = dup;
-
-	// First, skip past any private extension indicator...
-	if (*p >= 0x3c && *p <= 0x3f)
-		p++;
-
-	seq->param_count = 0;
-
-	seq->param = strListInit();
-
-	for (; *p; p++) {
-		/* Ensure it's a legal value */
-		if (*p < 0x30 || *p > 0x3b) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			free(dup);
-			return false;
-		}
-		/* Mark the start of the parameter */
-		if (start == NULL)
-			start = p;
-
-		if (*p == ';') {
-			/* End of parameter, add to string list */
-			last_was_sc = true;
-			*p = 0;
-			while(*start == '0' && start[1])
-				start++;
-			strListAppend(&seq->param, start, seq->param_count);
-			seq->param_count++;
-			start = NULL;
-		}
-		else
-			last_was_sc = false;
-	}
-	/* If the string ended with a semi-colon, there's a final zero-length parameter */
-	if (last_was_sc) {
-		strListAppend(&seq->param, "", seq->param_count);
-		seq->param_count++;
-	}
-	else if (start) {
-		/* End of parameter, add to string list */
-		*p = 0;
-		while(*start == '0' && start[1])
-			start++;
-		strListAppend(&seq->param, start, seq->param_count);
-		seq->param_count++;
-	}
-
-	seq->param_int = malloc(seq->param_count * sizeof(seq->param_int[0]));
-	if (seq->param_int == NULL) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			free(dup);
-			return false;
-	}
-
-	/* Now, parse all the integer values... */
-	for (i=0; i<seq->param_count; i++) {
-		if (seq->param[i][0] == 0 || seq->param[i][0] == ':') {
-			seq->param_int[i] = UINT64_MAX;
-			continue;
-		}
-		seq->param_int[i] = strtoull(seq->param[i], NULL, 10);
-		if (seq->param_int[i] == ULLONG_MAX) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			FREE_AND_NULL(seq->param_int);
-			free(dup);
-			return false;
-		}
-	}
-
-	free(dup);
-	return true;
-}
-
-static void seq_default(struct esc_seq *seq, int index, uint64_t val)
-{
-	char	tmpnum[24];
-
-	// Params not parsed
-	if (seq->param_count == -1)
-		return;
-
-	/* Do we need to add on to get defaults? */
-	if (index >= seq->param_count) {
-		uint64_t *np;
-
-		np = realloc(seq->param_int, (index + 1) * sizeof(seq->param_int[0]));
-		if (np == NULL)
-			return;
-		seq->param_int = np;
-		for (; seq->param_count <= index; seq->param_count++) {
-			if (seq->param_count == index) {
-				seq->param_int[index] = val;
-				sprintf(tmpnum, "%" PRIu64, val);
-				strListAppend(&seq->param, tmpnum, seq->param_count);
-			}
-			else {
-				seq->param_int[seq->param_count] = UINT64_MAX;
-				strListAppend(&seq->param, "", seq->param_count);
-			}
-		}
-		return;
-	}
-	if (seq->param_int[index] == UINT64_MAX) {
-		seq->param_int[index] = val;
-		sprintf(tmpnum, "%" PRIu64, val);
-		strListReplace(seq->param, index, tmpnum);
-	}
-}
-
-static void free_sequence(struct esc_seq * seq)
-{
-	if (seq == NULL)
-		return;
-	if (seq->param)
-		strListFree(&seq->param);
-	FREE_AND_NULL(seq->param_int);
-	seq->param_count = -1;
-	FREE_AND_NULL(seq->param_str);
-	FREE_AND_NULL(seq->ctrl_func);
-	free(seq);
-}
-
-/*
- * Returns true if the sequence is legal so far
- */
-
-static enum {
-	SEQ_BROKEN,
-	SEQ_INCOMPLETE,
-	SEQ_COMPLETE
-} legal_sequence(const char *seq, size_t max_len)
-{
-	size_t intermediate_len;
-
-	if (seq == NULL)
-		return SEQ_BROKEN;
-
-	if (seq[0] == 0)
-		goto incomplete;
-
-	/* Check that it's part of C1 set, part of the Independent control functions, or an nF sequence type (ECMA 35)*/
-	intermediate_len = strspn(&seq[0], " !\"#$%&'()*+,-./");
-	if (seq[intermediate_len] == 0)
-		goto incomplete;
-	if (seq[intermediate_len] < 0x30 || seq[intermediate_len] > 0x7e)
-		return SEQ_BROKEN;
-
-	/* Check if it's CSI */
-	if (seq[0] == '[') {
-		size_t parameter_len;
-
-		if (seq[1] >= '<' && seq[1] <= '?')
-			parameter_len = strspn(&seq[1], "0123456789:;<=>?");
-		else
-			parameter_len = strspn(&seq[1], "0123456789:;");
-
-		if (seq[1+parameter_len] == 0)
-			goto incomplete;
-
-		intermediate_len = strspn(&seq[1+parameter_len], " !\"#$%&'()*+,-./");
-		if (seq[1+parameter_len+intermediate_len] == 0)
-			goto incomplete;
-
-		if (seq[1+parameter_len+intermediate_len] < 0x40 || seq[1+parameter_len+intermediate_len] > 0x7e)
-			return SEQ_BROKEN;
-	}
-	return SEQ_COMPLETE;
-
-incomplete:
-	if (strlen(seq) >= max_len)
-		return SEQ_BROKEN;
-	return SEQ_INCOMPLETE;
-}
-
-static struct esc_seq *parse_sequence(const char *seq)
-{
-	struct esc_seq *ret;
-	size_t intermediate_len;
-
-	ret = calloc(1, sizeof(struct esc_seq));
-	if (ret == NULL)
-		return ret;
-	ret->param_count = -1;
-
-	/* Check that it's part of C1 set, part of the Independent control functions, or an nF sequence type (ECMA 35)*/
-	intermediate_len = strspn(&seq[0], " !\"#$%&'()*+,-./");
-	if (seq[intermediate_len] == 0)
-		goto fail;
-
-	/* Validate C1 final byte */
-	if (seq[intermediate_len] < 0x30 || seq[intermediate_len] > 0x7e)
-		goto fail;
-
-	if (intermediate_len == 0)
-		ret->c1_byte = seq[intermediate_len];
-
-	/* Check if it's CSI */
-	if (seq[0] == '[') {
-		size_t parameter_len;
-
-		parameter_len = strspn(&seq[1], "0123456789:;<=>?");
-		ret->param_str = malloc(parameter_len + 1);
-		if (!ret->param_str)
-			goto fail;
-		memcpy(ret->param_str, &seq[1], parameter_len);
-		ret->param_str[parameter_len] = 0;
-
-		intermediate_len = strspn(&seq[1+parameter_len], " !\"#$%&'()*+,-./");
-		if (seq[1+parameter_len+intermediate_len] < 0x40 || seq[1+parameter_len+intermediate_len] > 0x7e)
-			goto fail;
-		ret->ctrl_func = malloc(intermediate_len + 2);
-		if (!ret->ctrl_func)
-			goto fail;
-		memcpy(ret->ctrl_func, &seq[1+parameter_len], intermediate_len);
-
-		ret->final_byte = ret->ctrl_func[intermediate_len] = seq[1+parameter_len+intermediate_len];
-		/* Validate final byte */
-		if (ret->final_byte < 0x40 || ret->final_byte > 0x7e)
-			goto fail;
-
-		ret->ctrl_func[intermediate_len+1] = 0;
-
-		/*
-		 * Is this a private extension?
-		 * If so, return now, the caller can parse the parameter sequence itself
-		 * if the standard format is used.
-		 */
-		if (ret->param_str[0] >= 0x3c && ret->param_str[0] <= 0x3f)
-			return ret;
-
-		if (!parse_parameters(ret))
-			goto fail;
-	}
-	else {
-		ret->ctrl_func = malloc(intermediate_len + 2);
-		if (!ret->ctrl_func)
-			goto fail;
-		memcpy(ret->ctrl_func, seq, intermediate_len + 1);
-		ret->ctrl_func[intermediate_len + 1] = 0;
-	}
-	return ret;
-
-fail:
-	FREE_AND_NULL(ret->ctrl_func);
-	FREE_AND_NULL(ret->param_str);
-	free(ret);
-	return NULL;
-}
-
-static void parse_sixel_string(struct cterminal *cterm, bool finish)
-{
-	char *p = cterm->strbuf;
-	char *end;
-	int i, j, k;
-	int vmode;
-	int pos;
-	struct text_info ti;
- 	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-
-	if (cterm->strbuflen == 0) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	end = p+cterm->strbuflen-1;
-
-	if ((*end < '?' || *end > '~') && !finish)
-		return;
-
-	/*
-	 * TODO: Sixel interaction with scrolling margins...
-	 * This one is interesting because there is no real terminal
-	 * which supported left/right margins *and* sixel graphics.
-	 */
-	while (p <= end) {
-		if (*p >= '?' && *p <= '~') {
-			unsigned data = *p - '?';
-
-			cterm->sx_pixels_sent = 1;
-			GETTEXTINFO(&ti);
-			vmode = find_vmode(ti.currmode);
-			if (vmode == -1)
-				return;
-			if (cterm->sx_pixels == NULL) {
-				cterm->sx_pixels = malloc(sizeof(struct ciolib_pixels));
-				cterm->sx_pixels->pixels = malloc(sizeof(cterm->sx_pixels->pixels[0]) * cterm->sx_iv * ti.screenwidth * vparams[vmode].charwidth * 6);
-				cterm->sx_pixels->pixelsb = NULL;
-				cterm->sx_pixels->width = ti.screenwidth * vparams[vmode].charwidth;
-				cterm->sx_pixels->height = cterm->sx_iv * 6;
-				cterm->sx_mask = malloc((cterm->sx_iv * 6 * ti.screenwidth * vparams[vmode].charwidth * 6 + 7)/8);
-				memset(cterm->sx_mask, 0, (cterm->sx_iv * 6 * ti.screenwidth * vparams[vmode].charwidth * 6 + 7)/8);
-			}
-			if (cterm->sx_x == cterm->sx_left && cterm->sx_height && cterm->sx_width && cterm->sx_first_pass) {
-				/* Fill in the background of the line */
-				for (i = 0; i < (cterm->sx_height > 6 ? 6 : cterm->sx_height); i++) {
-					for (j = 0; j < cterm->sx_iv; j++) {
-						for (k = 0; k < cterm->sx_ih; k++) {
-							pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-							cterm->sx_pixels->pixels[pos] = cterm->sx_bg;
-							cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-						}
-					}
-				}
-			}
-			if (cterm->sx_x < ti.screenwidth * vparams[vmode].charwidth) {
-				for (i=0; i<6; i++) {
-					if (data & (1<<i)) {
-						for (j = 0; j < cterm->sx_iv; j++) {
-							for (k = 0; k < cterm->sx_ih; k++) {
-								pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-								cterm->sx_pixels->pixels[pos] = cterm->sx_fg;
-								cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-							}
-						}
-					}
-					else {
-						if (cterm->sx_first_pass && !cterm->sx_trans) {
-							for (j = 0; j < cterm->sx_iv; j++) {
-								for (k = 0; k < cterm->sx_ih; k++) {
-									pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-									cterm->sx_pixels->pixels[pos] = cterm->sx_bg;
-									cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-								}
-							}
-						}
-						else {
-							for (j = 0; j < cterm->sx_iv; j++) {
-								for (k = 0; k < cterm->sx_ih; k++) {
-									pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-									if (cterm->sx_first_pass)
-										cterm->sx_mask[pos/8] &= ~(0x80 >> (pos % 8));
-								}
-							}
-						}
-					}
-				}
-				if (cterm->sx_x > cterm->sx_row_max_x)
-					cterm->sx_row_max_x = cterm->sx_x;
-			}
-
-			cterm->sx_x+=cterm->sx_ih;
-			if (cterm->sx_repeat)
-				cterm->sx_repeat--;
-			if (!cterm->sx_repeat)
-				p++;
-		}
-		else {
-			switch(*p) {
-				case '"':	// Raster Attributes
-					if (!cterm->sx_pixels_sent) {
-						p++;
-						cterm->sx_iv = strtoul(p, &p, 10);
-						cterm->sx_height = cterm->sx_width = 0;
-						if (*p == ';') {
-							p++;
-							cterm->sx_ih = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							cterm->sx_width = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							cterm->sx_height = strtoul(p, &p, 10);
-						}
-					}
-					else
-						p++;
-					break;
-				case '!':	// Repeat
-					p++;
-					if (!*p)
-						continue;
-					cterm->sx_repeat = strtoul(p, &p, 10);
-					break;
-				case '#':	// Colour Introducer
-					p++;
-					if (!*p)
-						continue;
-					cterm->sx_fg = strtoul(p, &p, 10) + TOTAL_DAC_SIZE + palette_offset;
-					/* Do we want to redefine it while we're here? */
-					if (*p == ';') {
-						unsigned long t,r,g,b;
-
-						p++;
-						r=g=b=0;
-						t = strtoul(p, &p, 10);
-						if (*p == ';') {
-							p++;
-							r = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							g = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							b = strtoul(p, &p, 10);
-						}
-						if (t == 2)	// Only support RGB
-							setpalette(cterm->sx_fg, UINT16_MAX*r/100, UINT16_MAX*g/100, UINT16_MAX*b/100);
-					}
-					break;
-				case '$':	// Graphics Carriage Return
-					cterm->sx_x = cterm->sx_left;
-					cterm->sx_first_pass = 0;
-					p++;
-					break;
-				case '-':	// Graphics New Line
-					{
-						int max_row = TERM_MAXY;
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &max_row, NULL);
-						GETTEXTINFO(&ti);
-						vmode = find_vmode(ti.currmode);
-
-						if (vmode == -1)
-							return;
-						setpixels(cterm->sx_left, cterm->sx_y, cterm->sx_row_max_x, cterm->sx_y + 6 * cterm->sx_iv - 1, cterm->sx_left, 0, cterm->sx_pixels, cterm->sx_mask);
-						cterm->sx_row_max_x = 0;
-
-						if ((!(cterm->extattr & CTERM_EXTATTR_SXSCROLL)) && (((cterm->sx_y + 6 * cterm->sx_iv) + 6*cterm->sx_iv - 1) >= (cterm->y + max_row - 1) * vparams[vmode].charheight)) {
-							p++;
-							break;
-						}
-
-						cterm->sx_x = cterm->sx_left;
-						cterm->sx_y += 6*cterm->sx_iv;
-						if (cterm->sx_height)
-							cterm->sx_height -= cterm->sx_height > 6 ? 6 : cterm->sx_height;
-						while ((cterm->sx_y + 6 * cterm->sx_iv - 1) >= (cterm->y + max_row - 1) * vparams[vmode].charheight) {
-							cond_scrollup(cterm);
-							cterm->sx_y -= vparams[vmode].charheight;
-						}
-						cterm->sx_first_pass = 1;
-						p++;
-					}
-					break;
-				default:
-					p++;
-			}
-		}
-	}
-	cterm->strbuflen = 0;
-	if (finish)
-		goto all_done;
-	return;
-
-all_done:
-	GETTEXTINFO(&ti);
-	vmode = find_vmode(ti.currmode);
-
-	if (cterm->sx_row_max_x) {
-		setpixels(cterm->sx_left, cterm->sx_y, cterm->sx_row_max_x, cterm->sx_y + 6 * cterm->sx_iv - 1, cterm->sx_left, 0, cterm->sx_pixels, cterm->sx_mask);
-	}
-
-	*cterm->hold_update=cterm->sx_hold_update;
-
-	/* Finish off the background */
-	cterm->sx_x = cterm->sx_left;
-	cterm->sx_y += 6 * cterm->sx_iv;
-	if (cterm->sx_height)
-		cterm->sx_height -= cterm->sx_height > 6 ? 6 : cterm->sx_height;
-
-	if (cterm->sx_height && cterm->sx_width) {
-		struct ciolib_pixels px;
-
-		px.pixels = malloc(sizeof(px.pixels[0])*cterm->sx_width*cterm->sx_height*cterm->sx_iv*cterm->sx_ih);
-		px.height = cterm->sx_height;
-		px.width = cterm->sx_width;
-		for (i = 0; i<cterm->sx_height*cterm->sx_iv; i++) {
-			for (j = 0; j < cterm->sx_width*cterm->sx_ih; j++)
-				px.pixels[i*cterm->sx_width*cterm->sx_ih + j] = cterm->sx_bg;
-		}
-		setpixels(cterm->sx_x, cterm->sx_y, cterm->sx_x + cterm->sx_width - 1, cterm->sx_y + cterm->sx_height - 1, 0, 0, &px, NULL);
-		free(px.pixels);
-	}
-
-	if (cterm->extattr & CTERM_EXTATTR_SXSCROLL) {
-		if (vmode != -1) {
-			cterm->sx_x = cterm->sx_x / vparams[vmode].charwidth + 1;
-			cterm->sx_x -= (cterm->x - 1);
-
-			cterm->sx_y = (cterm->sx_y - 1) / vparams[vmode].charheight + 1;
-			cterm->sx_y -= (cterm->y - 1);
-
-			cterm_gotoxy(cterm, cterm->sx_x, cterm->sx_y);
-		}
-	}
-	else {
-		cterm_gotoxy(cterm, cterm->sx_start_x, cterm->sx_start_y);
-	}
-	cterm->cursor = cterm->sx_orig_cursor;
-	SETCURSORTYPE(cterm->cursor);
-	cterm->sixel = SIXEL_INACTIVE;
-	if (cterm->sx_pixels)
-		FREE_AND_NULL(cterm->sx_pixels->pixels);
-	FREE_AND_NULL(cterm->sx_pixels);
-	FREE_AND_NULL(cterm->sx_mask);
-}
-
-static int
-is_hex(char ch)
-{
-	if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F'))
-		return 1;
-	return 0;
-}
-
-static int
-get_hexstrlen(char *str, char *end)
-{
-	int ret = 0;
-
-	for (;str <= end; str++) {
-		if (is_hex(*str)) {
-			if (str == end)
-				return -1;
-			if (!is_hex(*(str+1)))
-				return -1;
-			ret++;
-			str++;
-		}
-		else
-			return ret;
-	}
-	return ret;
-}
-
-static int
-nibble_val(char ch)
-{
-	if (ch >= '0' && ch <= '9')
-		return ch - '0';
-	if (ch >= 'a' && ch <= 'f')
-		return (ch - 'a') + 10;
-	if (ch >= 'A' && ch <= 'F')
-		return (ch - 'A') + 10;
-	return -1;
-}
-
-static void
-get_hexstr(char *str, char *end, char *out)
-{
-	for (;str <= end; str++) {
-		if (is_hex(*str)) {
-			if (str == end)
-				return;
-			if (!is_hex(*(str+1)))
-				return;
-			*(out++) = nibble_val(*str) << 4 | nibble_val(*(str + 1));
-			str++;
-		}
-		else
-			return;
-	}
-}
-
-static void parse_macro_string(struct cterminal *cterm, bool finish)
-{
-	char *p = cterm->strbuf;
-	char *end;
-	int i;
-
-	if (cterm->strbuflen == 0) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	end = p+cterm->strbuflen-1;
-
-	if (*end >= '\x08' && *end <= '\x0d') {
-		cterm->strbuflen--;
-		if (finish)
-			goto all_done;
-		return;
-	}
-	if (cterm->macro_encoding == MACRO_ENCODING_ASCII) {
-		if ((*end >= ' ' && *end <= '\x7e') || (*end >= '\xa0' && *end <= '\xff')) {
-			if (finish)
-				goto all_done;
-			return;
-		}
-	}
-	if (cterm->macro_encoding == MACRO_ENCODING_HEX &&
-	    (is_hex(*end) || (*end == '!') || (*end == ';'))) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	cterm->macro = MACRO_INACTIVE;
-	return;
-
-all_done:
-	if (cterm->macro_del == MACRO_DELETE_ALL) {
-		for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-			FREE_AND_NULL(cterm->macros[i]);
-			cterm->macro_lens[i] = 0;
-		}
-	}
-	else {
-		FREE_AND_NULL(cterm->macros[cterm->macro_num]);
-		cterm->macro_lens[cterm->macro_num] = 0;
-	}
-	if (cterm->strbuflen == 0)
-		return;
-	if (cterm->macro_encoding == MACRO_ENCODING_ASCII) {
-		cterm->macros[cterm->macro_num] = malloc(cterm->strbuflen + 1);
-		if (cterm->macros[cterm->macro_num]) {
-			cterm->macro_lens[cterm->macro_num] = cterm->strbuflen;
-			memcpy(cterm->macros[cterm->macro_num], cterm->strbuf, cterm->strbuflen);
-			cterm->macros[cterm->macro_num][cterm->strbuflen] = 0;
-		}
-	}
-	else {
-		// Hex string...
-		int plen;
-		unsigned long ul;
-		size_t mlen = 0;
-		char *out;
-
-		// First, calculate the required length...
-		for (p = cterm->strbuf; p <= end;) {
-			if (*p == '!') {
-				if (p == end)
-					return;
-				p++;
-				if (p == end)
-					return;
-				if (*p == ';')
-					ul = 1;
-				else {
-					if (memchr(p, ';', cterm->strbuflen - (p - cterm->strbuf)) == NULL)
-						return;
-					ul = strtoul(p, &p, 10);
-					if (*p != ';')
-						return;
-					if (ul == ULONG_MAX)
-						return;
-					p++;
-				}
-				plen = get_hexstrlen(p, end);
-				p += plen * 2;
-				if (plen == -1)
-					return;
-				mlen += ul * plen;
-				if (p <= end) {
-					if (*p == ';')
-						p++;
-					else
-						return;
-				}
-			}
-			else {
-				plen = get_hexstrlen(p, end);
-				if (plen == -1)
-					return;
-				p += plen * 2;
-				mlen += plen;
-			}
-		}
-		cterm->macros[cterm->macro_num] = malloc(mlen + 1);
-		if (cterm->macros[cterm->macro_num] == NULL)
-			return;
-		cterm->macro_lens[cterm->macro_num] = mlen;
-		out = cterm->macros[cterm->macro_num];
-		for (p = cterm->strbuf; p <= end;) {
-			if (*p == '!') {
-				p++;
-				if (*p == ';')
-					ul = 1;
-				else {
-					ul = strtoul(p, &p, 10);
-					p++;
-				}
-				plen = get_hexstrlen(p, end);
-				for (i = 0; i < ul; i++) {
-					get_hexstr(p, end, out);
-					out += plen;
-				}
-				p += plen * 2;
-				if (p <= end && *p == ';')
-					p++;
-			}
-			else {
-				plen = get_hexstrlen(p, end);
-				get_hexstr(p, end, out);
-				out += plen;
-				p += plen * 2;
-			}
-		}
-	}
-}
-
-static void save_extended_colour_seq(struct cterminal *cterm, int fg, struct esc_seq *seq, int seqoff, int count)
-{
-	char **str = fg ? &cterm->fg_tc_str : &cterm->bg_tc_str;
-
-	if (*str)
-		FREE_AND_NULL(*str);
-
-	switch (count) {
-		case 1:
-			asprintf(str, "%s", seq->param[seqoff]);
-			break;
-		case 2:
-			asprintf(str, "%s;%s", seq->param[seqoff], seq->param[seqoff+1]);
-			break;
-		case 3:
-			asprintf(str, "%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2]);
-			break;
-		case 5:
-			asprintf(str, "%s;%s;%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2], seq->param[seqoff+3], seq->param[seqoff+4]);
-			break;
-	}
-}
-
-static void parse_extended_colour(struct esc_seq *seq, int *i, struct cterminal *cterm, int fg)
-{
-	struct sub_params sub = {0};
-	uint32_t nc;
-	uint32_t *co;
- 	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-
-	if (seq == NULL || cterm == NULL || i == NULL)
-		return;
-	if (fg)
-		FREE_AND_NULL(cterm->fg_tc_str);
-	else
-		FREE_AND_NULL(cterm->bg_tc_str);
-	co = fg ? (&cterm->fg_color) : (&cterm->bg_color);
-	if (*i>=seq->param_count)
-		return;
-
-	if (seq->param[*i][2] == ':') {
-		// CSI 38 : 5 : X m variant
-		// CSI 38 : 2 : Z? : R : G : B m variant
-
-		if (parse_sub_parameters(&sub, seq, *i)) {
-			if (sub.param_count == 3 && sub.param_int[1] == 5) {
-				*co = sub.param_int[2];
-				save_extended_colour_seq(cterm, fg, seq, *i, 1);
-			}
-			else if (sub.param_int[1] == 2) {
-				if (sub.param_count == 5) {
-					nc = map_rgb(sub.param_int[2]<<8, sub.param_int[3]<<8, sub.param_int[4]<<8);
-					if (nc != UINT32_MAX)
-						*co = nc;
-					save_extended_colour_seq(cterm, fg, seq, *i, 1);
-				}
-				else if (sub.param_count > 5) {
-					nc = map_rgb(sub.param_int[3]<<8, sub.param_int[4]<<8, sub.param_int[5]<<8);
-					if (nc != UINT32_MAX)
-						*co = nc;
-					save_extended_colour_seq(cterm, fg, seq, *i, 1);
-				}
-			}
-		}
-	}
-	else if ((*i)+1 < seq->param_count && seq->param_int[(*i)+1] == 5 && seq->param[(*i)+1][1] == ':') {
-		// CSI 38 ; 5 : X m variant
-		if (parse_sub_parameters(&sub, seq, (*i)+1)) {
-			if (sub.param_count == 2)
-				*co = sub.param_int[1];
-			save_extended_colour_seq(cterm, fg, seq, *i, 2);
-			(*i)++;
-		}
-	}
-	else if ((*i)+2 < seq->param_count && seq->param_int[(*i)+1] == 5) {
-		// CSI 38 ; 5 ; X m variant
-		*co = seq->param_int[(*i)+2] + palette_offset;
-		save_extended_colour_seq(cterm, fg, seq, *i, 3);
-		*i+=2;
-	}
-	else if ((*i)+1 < seq->param_count && seq->param_int[(*i)+1] == 2 && seq->param[(*i)+1][1] == ':') {
-		// CSI 38 ; 2 : Z? : R : G : B m variant
-		if (parse_sub_parameters(&sub, seq, (*i)+1)) {
-			nc = UINT32_MAX;
-			if (sub.param_count > 4)
-				nc = map_rgb(sub.param_int[2]<<8, sub.param_int[3]<<8, sub.param_int[4]<<8);
-			else if (sub.param_count == 4)
-				nc = map_rgb(sub.param_int[1]<<8, sub.param_int[2]<<8, sub.param_int[3]<<8);
-			if (nc != UINT32_MAX)
-				*co = nc;
-			save_extended_colour_seq(cterm, fg, seq, *i, 2);
-			*i += 1;
-		}
-	}
-	else if ((*i)+4 < seq->param_count && seq->param_int[(*i)+1] == 2) {
-		// CSI 38 ; 2 ; R ; G ; B m variant
-		nc = map_rgb(seq->param_int[(*i)+2]<<8, seq->param_int[(*i)+3]<<8, seq->param_int[(*i)+4]<<8);
-		if (nc != UINT32_MAX)
-			*co = nc;
-		save_extended_colour_seq(cterm, fg, seq, *i, 5);
-		*i += 4;
-	}
-	free_sub_parameters(&sub);
-}
-
-static void
-do_tab(struct cterminal *cterm)
-{
-	int i;
-	int cx, cy, ox;
-	int lm, rm, bm;
-
-	rm = TERM_MAXX;
-	bm = TERM_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &rm, &bm);
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-
-	CURR_XY(&cx, &cy);
-	ox = cx;
-	for (i = 0; i < cterm->tab_count; i++) {
-		if (cterm->tabs[i] > cx) {
-			cx = cterm->tabs[i];
-			break;
-		}
-	}
-	if ((ox > rm && cx > CURR_MAXX) || (ox <= rm && cx > rm) || i == cterm->tab_count) {
-		cx = lm;
-		if (cy == bm) {
-			cond_scrollup(cterm);
-			cy = bm;
-		}
-		else if(cy < CURR_MAXY)
-			cy++;
-	}
-	GOTOXY(cx, cy);
-}
-
-static void
-do_backtab(struct cterminal *cterm)
-{
-	int i;
-	int cx, cy, ox;
-	int lm;
-
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-
-	CURR_XY(&cx, &cy);
-	ox = cx;
-	for (i = cterm->tab_count - 1; i >= 0; i--) {
-		if (cterm->tabs[i] < cx) {
-			cx = cterm->tabs[i];
-			break;
-		}
-	}
-	if (ox >= lm && cx < lm)
-		cx = lm;
-	GOTOXY(cx, cy);
-}
-
-static void
-adjust_currpos(struct cterminal *cterm, int xadj, int yadj, int scroll)
-{
-	int x, y;
-	int tx, ty;
-
-	/*
-	 * If we're inside the scrolling margins, we simply move inside
-	 * them, and scrolling works.
-	 */
-	TERM_XY(&tx, &ty);
-	if (tx >= TERM_MINX && tx <= TERM_MAXX &&
-	    ty >= TERM_MINY && ty <= TERM_MAXY) {
-		if (xadj == INT_MIN)
-			tx = TERM_MINX;
-		else
-			tx += xadj;
-		if (yadj == INT_MIN)
-			ty = TERM_MINX;
-		else
-			ty += yadj;
-		if (scroll) {
-			while(ty > TERM_MAXY) {
-				cterm_scrollup(cterm);
-				ty--;
-			}
-			while(ty < TERM_MINY) {
-				scrolldown(cterm);
-				ty++;
-			}
-		}
-		else {
-			if (ty > TERM_MAXY)
-				ty = TERM_MAXY;
-			if (ty < TERM_MINY)
-				ty = TERM_MINY;
-		}
-		if (tx > TERM_MAXX)
-			tx = TERM_MAXX;
-		if (tx < TERM_MINX)
-			tx = TERM_MINX;
-		cterm_gotoxy(cterm, tx, ty);
-		return;
-	}
-	/*
-	 * Outside of the scrolling margins, we can cross a margin
-	 * into the scrolling region, but can't cross going out.
-	 */
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &tx, &ty);
-	x = tx;
-	y = ty;
-	if (xadj == INT_MIN)
-		tx = TERM_MINX;
-	else
-		tx += xadj;
-	if (yadj == INT_MIN)
-		ty = TERM_MINX;
-	else
-		ty += yadj;
-	if (x <= cterm->right_margin && tx > cterm->right_margin)
-		tx = cterm->right_margin;
-	if (y <= cterm->bottom_margin && ty > cterm->bottom_margin)
-		ty = cterm->bottom_margin;
-	if (tx < cterm->left_margin && x >= cterm->left_margin)
-		tx = cterm->left_margin;
-	if (ty < cterm->top_margin && y >= cterm->top_margin)
-		ty = cterm->top_margin;
-	GOTOXY(tx, ty);
-}
-
-static int
-skypix_color(struct cterminal *cterm, int color)
-{
-	if (!cterm->skypix)
-		return color;
-	switch(color) {
-		case BLACK:
-			return 0;
-		case RED:
-			return 3;
-		case GREEN:
-			return 4;
-		case BROWN:
-			return 6;
-		case BLUE:
-			return 1;
-		case MAGENTA:
-			return 7;
-		case CYAN:
-			return 5;
-		case LIGHTGRAY:
-			return 2;
-		case DARKGRAY:
-			return 8;
-		case LIGHTRED:
-			return 11;
-		case LIGHTGREEN:
-			return 12;
-		case YELLOW:
-			return 14;
-		case LIGHTBLUE:
-			return 9;
-		case LIGHTMAGENTA:
-			return 15;
-		case LIGHTCYAN:
-			return 13;
-		case WHITE:
-			return 10;
-	}
-	return color;
-}
-
-static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *speed, char last)
-{
-	char	*p;
-	char	*p2;
-	char	tmp[1024];
-	int		i,j,k,l;
-	int	flags;
-	int		row,col;
-	int		row2,col2;
-	int		max_row;
-	int		max_col;
-	struct text_info ti;
-	struct esc_seq *seq;
-	uint32_t oldfg, oldbg;
-	bool updfg, updbg;
-	struct vmem_cell *vc;
-	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-	seq = parse_sequence(cterm->escbuf);
-	if (seq != NULL) {
-		switch(seq->c1_byte) {
-			case '[':
-				/* ANSI stuff */
-				p=cterm->escbuf+strlen(cterm->escbuf)-1;
-				if(seq->param_str[0]>=60 && seq->param_str[0] <= 63) {	/* Private extensions */
-					switch(seq->final_byte) {
-						case 'M':
-							if(seq->param_str[0] == '=' && parse_parameters(seq)) {	/* ANSI Music setup */
-								seq_default(seq, 0, 0);
-								switch(seq->param_int[0]) {
-									case 0:					/* Disable ANSI Music */
-										cterm->music_enable=CTERM_MUSIC_SYNCTERM;
-										break;
-									case 1:					/* BANSI (ESC[N) music only) */
-										cterm->music_enable=CTERM_MUSIC_BANSI;
-										break;
-									case 2:					/* ESC[M ANSI music */
-										cterm->music_enable=CTERM_MUSIC_ENABLED;
-										break;
-								}
-							}
-							break;
-						case 'S':		// XTerm graphics query
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								if (seq->param_int[0] == 2 && seq->param_int[1] == 1) {
-									struct text_info ti;
-									int vmode;
-
-									tmp[0] = 0;
-									GETTEXTINFO(&ti);
-									vmode = find_vmode(ti.currmode);
-									if (vmode != -1)
-										sprintf(tmp, "\x1b[?2;0;%u;%uS", vparams[vmode].charwidth*cterm->width, vparams[vmode].charheight*cterm->height);
-									if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-										strcat(retbuf, tmp);
-								}
-							}
-							break;
-						case 'c':
-							/* SyncTERM Device Attributes */
-							if (seq->param_str[0] == '<' && parse_parameters(seq)) {
-								seq_default(seq, 0, 0);
-								tmp[0] = 0;
-								for (i=0; i<seq->param_count; i++) {
-									switch (seq->param_int[i]) {
-										case 0:		/* Advanced features */
-											strcpy(tmp, "\x1b[<0");
-											if (cio_api.options & CONIO_OPT_LOADABLE_FONTS)
-												strcat(tmp, ";1");
-											if (cio_api.options & CONIO_OPT_BRIGHT_BACKGROUND)
-												strcat(tmp, ";2");
-											if (cio_api.options & CONIO_OPT_PALETTE_SETTING)
-												strcat(tmp, ";3");
-											if (cio_api.options & CONIO_OPT_SET_PIXEL)
-												strcat(tmp, ";4");
-											if (cio_api.options & CONIO_OPT_FONT_SELECT)
-												strcat(tmp, ";5");
-											if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-												strcat(tmp, ";6");
-											if (cio_api.mouse)
-												strcat(tmp, ";7");
-											strcat(tmp, "c");
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							break;
-						case 'h':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								for (i=0; i<seq->param_count; i++) {
-									switch(seq->param_int[i]) {
-										case 6:
-											cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-											setwindow(cterm);
-											break;
-										case 7:
-											cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-											break;
-										case 25:
-											cterm->cursor=_NORMALCURSOR;
-											SETCURSORTYPE(cterm->cursor);
-											break;
-										case 31:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_ALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 32:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_NOBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 33:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_BGBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 34:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 35:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_NOBLINK;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 69:
-											cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-											break;
-										case 80:
-											cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-											break;
-										case 9:
-										case 1000:
-										case 1001:
-										case 1002:
-										case 1003:
-										case 1004:
-										case 1005:
-										case 1006:
-										case 1007:
-										case 1015:
-											if (cterm->mouse_state_change)
-												cterm->mouse_state_change(seq->param_int[i], 1, cterm->mouse_state_change_cbdata);
-											break;
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							else if(!strcmp(seq->param_str,"=255"))
-								cterm->doorway_mode=1;
-							break;
-						case 'l':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								for (i=0; i<seq->param_count; i++) {
-									switch(seq->param_int[i]) {
-										case 6:
-											cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-											setwindow(cterm);
-											break;
-										case 7:
-											cterm->extattr &= ~(CTERM_EXTATTR_AUTOWRAP);
-											break;
-										case 25:
-											cterm->cursor=_NOCURSOR;
-											SETCURSORTYPE(cterm->cursor);
-											break;
-										case 31:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_ALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 32:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 33:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 34:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 35:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_NOBLINK;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 69:
-											cterm->extattr &= ~(CTERM_EXTATTR_DECLRMM);
-											break;
-										case 80:
-											cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-											break;
-										case 9:
-										case 1000:
-										case 1001:
-										case 1002:
-										case 1003:
-										case 1004:
-										case 1005:
-										case 1006:
-										case 1007:
-										case 1015:
-											if (cterm->mouse_state_change)
-												cterm->mouse_state_change(seq->param_int[i], 0, cterm->mouse_state_change_cbdata);
-											break;
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							else if(!strcmp(seq->param_str,"=255"))
-								cterm->doorway_mode=0;
-							break;
-						case 'n':	/* Query (extended) state information */
-							if (seq->param_str[0] == '=' && parse_parameters(seq)) {
-								int vidflags;
-
-								if(retbuf == NULL)
-									break;
-								tmp[0] = 0;
-								if (seq->param_count > 1)
-									break;
-								seq_default(seq, 0, 1);
-								switch(seq->param_int[0]) {
-									case 1:
-										sprintf(tmp, "\x1b[=1;%u;%u;%u;%u;%u;%un"
-											,CONIO_FIRST_FREE_FONT
-											,(uint8_t)cterm->setfont_result
-											,(uint8_t)cterm->altfont[0]
-											,(uint8_t)cterm->altfont[1]
-											,(uint8_t)cterm->altfont[2]
-											,(uint8_t)cterm->altfont[3]
-										);
-										break;
-									case 2:
-										vidflags = GETVIDEOFLAGS();
-										strcpy(tmp, "\x1b[=2");
-										if(cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-											strcat(tmp, ";6");
-										if (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)
-											strcat(tmp, ";7");
-										if (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";9");
-										if(cterm->cursor == _NORMALCURSOR)
-											strcat(tmp, ";25");
-										if(vidflags & CIOLIB_VIDEO_ALTCHARS)
-											strcat(tmp, ";31");
-										if(vidflags & CIOLIB_VIDEO_NOBRIGHT)
-											strcat(tmp, ";32");
-										if(vidflags & CIOLIB_VIDEO_BGBRIGHT)
-											strcat(tmp, ";33");
-										if(vidflags & CIOLIB_VIDEO_BLINKALTCHARS)
-											strcat(tmp, ";34");
-										if(vidflags & CIOLIB_VIDEO_NOBLINK)
-											strcat(tmp, ";35");
-										if (cterm->extattr & CTERM_EXTATTR_DECLRMM)
-											strcat(tmp, ";69");
-										if (cterm->extattr & CTERM_EXTATTR_SXSCROLL)
-											strcat(tmp, ";80");
-										if (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1000");
-										if (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1001");
-										if (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1002");
-										if (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1003");
-										if (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1004");
-										if (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1005");
-										if (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1006");
-										if (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1007");
-										if (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1015");
-										if (strlen(tmp) == 4) {	// Nothing set
-											strcat(tmp, ";");
-										}
-										strcat(tmp, "n");
-										break;
-									case 3:	/* Query font char dimensions */
-									{
-										struct text_info ti;
-										int vmode;
-
-										GETTEXTINFO(&ti);
-										vmode = find_vmode(ti.currmode);
-										if (vmode != -1)
-											sprintf(tmp, "\x1b[=3;%u;%un", vparams[vmode].charheight, vparams[vmode].charwidth);
-										break;
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							else if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								if(retbuf == NULL)
-									break;
-								seq_default(seq, 0, 1);
-								tmp[0] = 0;
-								switch(seq->param_int[0]) {
-									case 62: /* Query macro space available */
-									{
-										if (seq->param_count > 1)
-											break;
-										// Just fake it as int16_max
-										strcpy(tmp, "\x1b[32767*{");
-										break;
-									}
-									case 63: /* Quero macro space "checksum" */
-									{
-										uint16_t crc = 0;
-										if (seq->param_count > 2)
-											break;
-										seq_default(seq, 1, 1);
-										for (k = 0; k < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); k++) {
-											if (cterm->macros[k]) {
-												for (i = 0; i <= cterm->macro_lens[k]; i++)
-													crc = ucrc16(cterm->macros[k][i], crc);
-											}
-											else
-												crc = ucrc16(0, crc);
-										}
-										*tmp = 0;
-										snprintf(tmp, sizeof(tmp), "\x1bP%u!~%04X\x1b\\", (unsigned)seq->param_int[1], crc);
-										break;
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							break;
-						case 's':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								GETTEXTINFO(&ti);
-								flags = GETVIDEOFLAGS();
-								if(seq->param_count == 0) {
-									/* All the save stuff... */
-									cterm->saved_mode_mask |= (CTERM_SAVEMODE_AUTOWRAP|CTERM_SAVEMODE_CURSOR|CTERM_SAVEMODE_ALTCHARS|
-									    CTERM_SAVEMODE_NOBRIGHT|CTERM_SAVEMODE_BGBRIGHT|CTERM_SAVEMODE_ORIGIN|CTERM_SAVEMODE_SIXEL_SCROLL|
-									    CTERM_SAVEMODE_MOUSE_X10|CTERM_SAVEMODE_MOUSE_NORMAL|CTERM_SAVEMODE_MOUSE_HIGHLIGHT|
-									    CTERM_SAVEMODE_MOUSE_BUTTONTRACK|CTERM_SAVEMODE_MOUSE_ANY|CTERM_SAVEMODE_MOUSE_FOCUS|
-									    CTERM_SAVEMODE_MOUSE_UTF8|CTERM_SAVEMODE_MOUSE_SGR|CTERM_SAVEMODE_MOUSE_ALTSCROLL|CTERM_SAVEMODE_MOUSE_URXVT|CTERM_SAVEMODE_DECLRMM);
-									cterm->saved_mode &= ~(cterm->saved_mode_mask);
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)?CTERM_SAVEMODE_AUTOWRAP:0;
-									cterm->saved_mode |= (cterm->cursor==_NORMALCURSOR)?CTERM_SAVEMODE_CURSOR:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_ALTCHARS)?CTERM_SAVEMODE_ALTCHARS:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBRIGHT)?CTERM_SAVEMODE_NOBRIGHT:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_BGBRIGHT)?CTERM_SAVEMODE_BGBRIGHT:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_BLINKALTCHARS)?CTERM_SAVEMODE_BLINKALTCHARS:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBLINK)?CTERM_SAVEMODE_NOBLINK:0;
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)?CTERM_SAVEMODE_ORIGIN:0;
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_SXSCROLL)?CTERM_SAVEMODE_SIXEL_SCROLL:0;
-									cterm->saved_mode |= (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_X10 : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_NORMAL : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_HIGHLIGHT : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_BUTTONTRACK : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ANY : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_FOCUS : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_UTF8 : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_SGR : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ALTSCROLL : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_URXVT : 0);
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_DECLRMM) ? CTERM_SAVEMODE_DECLRMM : 0;
-									setwindow(cterm);
-									break;
-								}
-								else {
-									for (i=0; i<seq->param_count; i++) {
-										switch(seq->param_int[i]) {
-											case 6:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_ORIGIN;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_ORIGIN);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)?CTERM_SAVEMODE_ORIGIN:0;
-												setwindow(cterm);
-												break;
-											case 7:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_AUTOWRAP;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_AUTOWRAP);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)?CTERM_SAVEMODE_AUTOWRAP:0;
-												break;
-											case 9:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_X10;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_X10);
-												cterm->saved_mode |= (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_X10 : 0);
-												break;
-											case 25:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_CURSOR;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_CURSOR);
-												cterm->saved_mode |= (cterm->cursor==_NORMALCURSOR)?CTERM_SAVEMODE_CURSOR:0;
-												break;
-											case 31:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_ALTCHARS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_ALTCHARS);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_ALTCHARS)?CTERM_SAVEMODE_ALTCHARS:0;
-												break;
-											case 32:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_NOBRIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_NOBRIGHT);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBRIGHT)?CTERM_SAVEMODE_NOBRIGHT:0;
-												break;
-											case 33:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_BGBRIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_BGBRIGHT);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_BGBRIGHT)?CTERM_SAVEMODE_BGBRIGHT:0;
-												break;
-											case 34:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_BLINKALTCHARS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_BLINKALTCHARS);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_BLINKALTCHARS)?CTERM_SAVEMODE_BLINKALTCHARS:0;
-												break;
-											case 35:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_NOBLINK;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_NOBLINK);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBLINK)?CTERM_SAVEMODE_NOBLINK:0;
-												break;
-											case 69:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_DECLRMM;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_DECLRMM);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_DECLRMM) ? CTERM_SAVEMODE_DECLRMM : 0;
-												break;
-											case 80:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_SIXEL_SCROLL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_SIXEL_SCROLL);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_SXSCROLL)?CTERM_SAVEMODE_SIXEL_SCROLL:0;
-												break;
-											case 1000:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_NORMAL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_NORMAL);
-												cterm->saved_mode |= (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_NORMAL : 0);
-												break;
-											case 1001:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_HIGHLIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_HIGHLIGHT);
-												cterm->saved_mode |= (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_HIGHLIGHT : 0);
-												break;
-											case 1002:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_BUTTONTRACK;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_BUTTONTRACK);
-												cterm->saved_mode |= (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_BUTTONTRACK : 0);
-												break;
-											case 1003:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_ANY;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_ANY);
-												cterm->saved_mode |= (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ANY : 0);
-												break;
-											case 1004:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_FOCUS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_FOCUS);
-												cterm->saved_mode |= (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_FOCUS : 0);
-												break;
-											case 1005:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_UTF8;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_UTF8);
-												cterm->saved_mode |= (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_UTF8 : 0);
-												break;
-											case 1006:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_SGR;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_SGR);
-												cterm->saved_mode |= (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_SGR : 0);
-												break;
-											case 1007:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_ALTSCROLL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_ALTSCROLL);
-												cterm->saved_mode |= (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ALTSCROLL : 0);
-												break;
-											case 1015:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_URXVT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_URXVT);
-												cterm->saved_mode |= (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_URXVT : 0);
-												break;
-										}
-									}
-								}
-							}
-							break;
-						case 'u':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								GETTEXTINFO(&ti);
-								flags = GETVIDEOFLAGS();
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								if(seq->param_count == 0) {
-									/* All the save stuff... */
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_ORIGIN)
-											cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-										setwindow(cterm);
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_AUTOWRAP) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_AUTOWRAP)
-											cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_AUTOWRAP;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_SIXEL_SCROLL) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_SIXEL_SCROLL)
-											cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_CURSOR) {
-										cterm->cursor = (cterm->saved_mode & CTERM_SAVEMODE_CURSOR) ? _NORMALCURSOR : _NOCURSOR;
-										SETCURSORTYPE(cterm->cursor);
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_ALTCHARS) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_ALTCHARS)
-											flags |= CIOLIB_VIDEO_ALTCHARS;
-										else
-											flags &= ~CIOLIB_VIDEO_ALTCHARS;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_BLINKALTCHARS) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_BLINKALTCHARS)
-											flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-										else
-											flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBRIGHT) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_NOBRIGHT)
-											flags |= CIOLIB_VIDEO_NOBRIGHT;
-										else
-											flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBLINK) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_NOBLINK)
-											flags |= CIOLIB_VIDEO_NOBLINK;
-										else
-											flags &= ~CIOLIB_VIDEO_NOBLINK;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_BGBRIGHT) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_BGBRIGHT)
-											flags |= CIOLIB_VIDEO_BGBRIGHT;
-										else
-											flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-									}
-									SETVIDEOFLAGS(flags);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_X10)
-										cterm->mouse_state_change(9, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_X10, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_NORMAL)
-										cterm->mouse_state_change(1000, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_NORMAL, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_HIGHLIGHT)
-										cterm->mouse_state_change(1001, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_HIGHLIGHT, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_BUTTONTRACK)
-										cterm->mouse_state_change(1002, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_BUTTONTRACK, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ANY)
-										cterm->mouse_state_change(1003, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ANY, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_FOCUS)
-										cterm->mouse_state_change(1004, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_FOCUS, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_UTF8)
-										cterm->mouse_state_change(1005, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_UTF8, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_SGR)
-										cterm->mouse_state_change(1006, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_SGR, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ALTSCROLL)
-										cterm->mouse_state_change(1007, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ALTSCROLL, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_URXVT)
-										cterm->mouse_state_change(1015, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_URXVT, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_DECLRMM) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_DECLRMM)
-											cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_DECLRMM;
-									}
-									break;
-								}
-								else {
-									for (i=0; i<seq->param_count; i++) {
-										switch(seq->param_int[i]) {
-											case 6:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_ORIGIN)
-														cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-												}
-												setwindow(cterm);
-												break;
-											case 7:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_AUTOWRAP) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_AUTOWRAP)
-														cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_AUTOWRAP;
-												}
-												break;
-											case 9:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_X10)
-													cterm->mouse_state_change(9, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_X10, cterm->mouse_state_change_cbdata);
-												break;
-											case 25:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_CURSOR) {
-													cterm->cursor = (cterm->saved_mode & CTERM_SAVEMODE_CURSOR) ? _NORMALCURSOR : _NOCURSOR;
-													SETCURSORTYPE(cterm->cursor);
-												}
-												break;
-											case 31:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_ALTCHARS) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_ALTCHARS)
-														flags |= CIOLIB_VIDEO_ALTCHARS;
-													else
-														flags &= ~CIOLIB_VIDEO_ALTCHARS;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 32:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBRIGHT) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_NOBRIGHT)
-														flags |= CIOLIB_VIDEO_NOBRIGHT;
-													else
-														flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 33:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_BGBRIGHT) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_BGBRIGHT)
-														flags |= CIOLIB_VIDEO_BGBRIGHT;
-													else
-														flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 34:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_BLINKALTCHARS) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_BLINKALTCHARS)
-														flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-													else
-														flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 35:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBLINK) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_NOBLINK)
-														flags |= CIOLIB_VIDEO_NOBLINK;
-													else
-														flags &= ~CIOLIB_VIDEO_NOBLINK;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 69:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_DECLRMM) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_DECLRMM)
-														cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_DECLRMM;
-												}
-												break;
-											case 80:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_SIXEL_SCROLL) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_SIXEL_SCROLL)
-														cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-												}
-												break;
-											case 1000:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_NORMAL)
-													cterm->mouse_state_change(1000, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_NORMAL, cterm->mouse_state_change_cbdata);
-												break;
-											case 1001:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_HIGHLIGHT)
-													cterm->mouse_state_change(1001, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_HIGHLIGHT, cterm->mouse_state_change_cbdata);
-												break;
-											case 1002:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_BUTTONTRACK)
-													cterm->mouse_state_change(1002, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_BUTTONTRACK, cterm->mouse_state_change_cbdata);
-												break;
-											case 1003:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ANY)
-													cterm->mouse_state_change(1003, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ANY, cterm->mouse_state_change_cbdata);
-												break;
-											case 1004:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_FOCUS)
-													cterm->mouse_state_change(1004, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_FOCUS, cterm->mouse_state_change_cbdata);
-												break;
-											case 1005:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_UTF8)
-													cterm->mouse_state_change(1005, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_UTF8, cterm->mouse_state_change_cbdata);
-												break;
-											case 1006:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_SGR)
-													cterm->mouse_state_change(1006, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_SGR, cterm->mouse_state_change_cbdata);
-												break;
-											case 1007:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ALTSCROLL)
-													cterm->mouse_state_change(1007, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ALTSCROLL, cterm->mouse_state_change_cbdata);
-												break;
-											case 1015:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_URXVT)
-													cterm->mouse_state_change(1015, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_URXVT, cterm->mouse_state_change_cbdata);
-												break;
-										}
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							break;
-						case '{':
-							if(seq->param_str[0] == '=' && parse_parameters(seq)) {	/* Font loading */
-								seq_default(seq, 0, 255);
-								seq_default(seq, 1, 0);
-								if(seq->param_int[0]>255)
-									break;
-								cterm->font_read=0;
-								cterm->font_slot=seq->param_int[0];
-								switch(seq->param_int[1]) {
-									case 0:
-										cterm->font_size=4096;
-										break;
-									case 1:
-										cterm->font_size=3584;
-										break;
-									case 2:
-										cterm->font_size=2048;
-										break;
-									default:
-										cterm->font_size=0;
-										break;
-								}
-							}
-							break;
-					}
-					break;
-				}
-				else if (seq->ctrl_func[1]) {	// Control Function with Intermediate Character
-					// Shift left
-					if (strcmp(seq->ctrl_func, " @") == 0) {
-						row = TERM_MINY;
-						col = TERM_MINX;
-						max_row = TERM_MAXY;
-						max_col = TERM_MAXX;
-
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-						seq_default(seq, 0, 1);
-						i = seq->param_int[0];
-						if(i > TERM_MAXX)
-							i = TERM_MAXX;
-						MOVETEXT(col + i, row, max_col, max_row, col, row);
-						j = i * TERM_MAXY;
-						vc = malloc(j * sizeof(*vc));
-						if (vc != NULL) {
-							for(k=0; k < j; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							vmem_puttext(max_col - i + 1, row, max_col, max_row, vc);
-							free(vc);
-						}
-					}
-					// Shift right
-					else if (strcmp(seq->ctrl_func, " A") == 0) {
-						row = TERM_MINY;
-						col = TERM_MINX;
-						max_row = TERM_MAXY;
-						max_col = TERM_MAXX;
-
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-						seq_default(seq, 0, 1);
-						i = seq->param_int[0];
-						if(i > cterm->width)
-							i = cterm->width;
-						MOVETEXT(col, row, max_col - i, max_row, col + i, row);
-						j = i * TERM_MAXY;
-						vc = malloc(j * sizeof(*vc));
-						if (vc != NULL) {
-							for(k=0; k < j; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							vmem_puttext(col, row, col + i - 1, max_row, vc);
-							free(vc);
-						}
-					}
-					// Font Select
-					else if (strcmp(seq->ctrl_func, " D") == 0) {
-						seq_default(seq, 0, 0);
-						seq_default(seq, 1, 0);
-						switch(seq->param_int[0]) {
-							case 0:	/* Four fonts are currently supported */
-							case 1:
-							case 2:
-							case 3:
-								/* For compatibility with ciolib.c v1.136-v1.164 */
-								/* Feature introduced in CTerm v1.160, return value modified later */
-								if (SETFONT(seq->param_int[1],FALSE,seq->param_int[0]+1) == 0)
-									cterm->setfont_result = 1;
-								else
-									cterm->setfont_result = 0;
-								if(cterm->setfont_result == 0)
-									cterm->altfont[seq->param_int[0]] = seq->param_int[1];
-								break;
-						}
-					}
-					else if (strcmp(seq->ctrl_func, " d") == 0) {
-						if (seq->param_count > 0) {
-							delete_tabstop(cterm, seq->param_int[0]);
-						}
-					}
-					/* 
-					 * END OF STANDARD CONTROL FUNCTIONS
-					 * AFTER THIS IS ALL PRIVATE EXTENSIONS
-					 */
-					// Tab report
-					else if (strcmp(seq->ctrl_func, "$w") == 0) {
-						seq_default(seq, 0, 0);
-						if (seq->param_int[0] == 2) {
-							strcpy(tmp, "\x1bP2$u");
-							p2 = strchr(tmp, 0);
-							for (i = 0; i < cterm->tab_count && cterm->tabs[i] <= cterm->width; i++) {
-								if (i != 0)
-									*(p2++) = '/';
-								p2 += sprintf(p2, "%d", cterm->tabs[i]);
-							}
-							strcat(p2, "\x1b\\");
-							if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-								strcat(retbuf, tmp);
-						}
-					}
-					// Communication speed
-					else if (strcmp(seq->ctrl_func, "*r") == 0) {
-						/*
-						 * Ps1 			Comm Line 		Ps2 		Communication Speed
-						 * none, 0, 1 	Host Transmit 	none, 0 	Use default speed.
-						 * 2		 	Host Receive 	1 			300
-						 * 3 			Printer 		2 			600
-						 * 4		 	Modem Hi 		3 			1200
-						 * 5		 	Modem Lo 		4 			2400
-						 * 								5 			4800
-						 * 								6 			9600
-						 * 								7 			19200
-						 * 								8 			38400
-						 * 								9 			57600
-						 * 								10 			76800
-						 * 								11 			115200
-						 */
-						int newspeed=-1;
-
-						seq_default(seq, 0, 0);
-						seq_default(seq, 1, 0);
-
-						if (seq->param_int[0] < 2) {
-							switch(seq->param_int[1]) {
-								case 0:
-									newspeed=0;
-									break;
-								case 1:
-									newspeed=300;
-									break;
-								case 2:
-									newspeed=600;
-									break;
-								case 3:
-									newspeed=1200;
-									break;
-								case 4:
-									newspeed=2400;
-									break;
-								case 5:
-									newspeed=4800;
-									break;
-								case 6:
-									newspeed=9600;
-									break;
-								case 7:
-									newspeed=19200;
-									break;
-								case 8:
-									newspeed=38400;
-									break;
-								case 9:
-									newspeed=57600;
-									break;
-								case 10:
-									newspeed=76800;
-									break;
-								case 11:
-									newspeed=115200;
-									break;
-							}
-						}
-						if(newspeed >= 0)
-							*speed = newspeed;
-					}
-					else if (strcmp(seq->ctrl_func, "*y") == 0) {
-						if (seq->param_count >= 6) {
-							if (seq->param_int[0] != UINT64_MAX &&
-							    seq->param_int[0] <= UINT16_MAX &&
-							    seq->param_int[1] == 1 &&
-							    seq->param_int[2] != UINT64_MAX &&
-							    seq->param_int[3] != UINT64_MAX &&
-							    seq->param_int[4] != UINT64_MAX &&
-							    seq->param_int[5] != UINT64_MAX) {
-								struct ciolib_pixels *pix;
-								uint16_t crc;
-								int good = 0;
-								int vmode;
-								gettextinfo(&ti);
-								vmode = find_vmode(ti.currmode);
-								if (vmode != -1 &&
-								    (seq->param_int[3] > 0 && seq->param_int[3] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[2] > 0 && seq->param_int[2] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[5] > 0 && seq->param_int[5] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[4] > 0 && seq->param_int[4] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[2] <= seq->param_int[4]) &&
-								    (seq->param_int[3] <= seq->param_int[5]) &&
-								    (pix = getpixels(
-								      (seq->param_int[3] - 1 + cterm->x - 1)*vparams[vmode].charwidth, 
-								      (seq->param_int[2] - 1 + cterm->y - 1)*vparams[vmode].charheight, 
-								      (seq->param_int[5] + cterm->x - 1)*vparams[vmode].charwidth - 1, 
-								      (seq->param_int[4] + cterm->y - 1)*vparams[vmode].charheight - 1, true)) != NULL) {
-									crc = crc16((void *)pix->pixels, sizeof(pix->pixels[0])*pix->width*pix->height);
-									good = 1;
-									freepixels(pix);
-								}
-								else {
-									size_t sz = sizeof(struct vmem_cell) * (seq->param_int[2] - seq->param_int[4] + 1) * (seq->param_int[3] - seq->param_int[5] + 1);
-									struct vmem_cell *vm = malloc(sz);
-									if (vm != NULL) {
-										vmem_gettext(seq->param_int[3], seq->param_int[2], seq->param_int[5], seq->param_int[4], vm);
-										crc = crc16((void *)vm, sz);
-										good = 1;
-									}
-								}
-								if (good) {
-									*tmp = 0;
-									snprintf(tmp, sizeof(tmp), "\x1bP%u!~%04X\x1b\\", (unsigned)seq->param_int[0], crc);
-									if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-										strcat(retbuf, tmp);
-								}
-							}
-						}
-					}
-					else if (strcmp(seq->ctrl_func, "*z") == 0) {
-						if (seq->param_count > 0 && seq->param_int[0] <= 63) {
-							if (cterm->macros[seq->param_int[0]]) {
-								if ((cterm->in_macro & (1<<seq->param_int[0])) == 0) {
-									cterm->escbuf[0]=0;
-									cterm->sequence=0;
-									cterm->in_macro |= (1<<seq->param_int[0]);
-									cterm_write(cterm, cterm->macros[seq->param_int[0]], cterm->macro_lens[seq->param_int[0]], retbuf + strlen(retbuf), retsize - strlen(retbuf), speed);
-									cterm->in_macro &= ~(1<<seq->param_int[0]);
-								}
-							}
-						}
-					}
-				}
-				else {
-					switch(seq->final_byte) {
-						case '@':	/* Insert Char */
-							TERM_XY(&i, &j);
-							if (i < TERM_MINX || i > TERM_MAXX || j < TERM_MINY || j > TERM_MAXY)
-								break;
-							col = i;
-							row = j;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-							max_col = TERM_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, NULL);
-							seq_default(seq, 0, 1);
-							if(seq->param_int[0] < 1)
-								seq->param_int[0] = 1;
-							if(seq->param_int[0] > cterm->width - j)
-								seq->param_int[0] = cterm->width - j;
-							MOVETEXT(col, row, max_col - seq->param_int[0], row, col + seq->param_int[0], row);
-							for(l=0; l < seq->param_int[0]; l++)
-								PUTCH(' ');
-							cterm_gotoxy(cterm, i, j);
-							break;
-						case 'A':	/* Cursor Up */
-						case 'k':	/* Line Position Backward */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0, 0 - seq->param_int[0], 0);
-							break;
-						case 'B':	/* Cursor Down */
-						case 'e':	/* Line Position Forward */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0, seq->param_int[0], 0);
-							break;
-						case 'a':	/* Character Position Forward */
-						case 'C':	/* Cursor Right */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, seq->param_int[0], 0, 0);
-							break;
-						case 'j':	/* Character Position Backward */
-						case 'D':	/* Cursor Left */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0 - seq->param_int[0], 0, 0);
-							break;
-						case 'E':	/* Cursor next line */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, INT_MIN, seq->param_int[0], 0);
-							break;
-						case 'F':	/* Cursor preceding line */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, INT_MIN, 0 - seq->param_int[0], 0);
-							break;
-						case '`':
-						case 'G':	/* Cursor Position Absolute */
-							seq_default(seq, 0, 1);
-							CURR_XY(NULL, &row);
-							col = seq->param_int[0];
-							if(col >= CURR_MINX && col <= CURR_MAXX) {
-								GOTOXY(col, row);
-							}
-							break;
-						case 'f':	/* Character And Line Position */
-						case 'H':	/* Cursor Position */
-							seq_default(seq, 0, 1);
-							seq_default(seq, 1, 1);
-							row=seq->param_int[0];
-							col=seq->param_int[1];
-							if (row < CURR_MINY)
-								row = CURR_MINY;
-							if(col < CURR_MINX)
-								col = CURR_MINX;
-							if(row > CURR_MAXY)
-								row = CURR_MAXY;
-							if(col > CURR_MAXX)
-								col = CURR_MAXX;
-							GOTOXY(col, row);
-							break;
-						case 'I':	/* Cursor Forward Tabulation */
-						case 'Y':	/* Cursor Line Tabulation */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							for (i = 0; i < seq->param_int[0]; i++)
-								do_tab(cterm);
-							break;
-						case 'J':	/* Erase In Page */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									CLREOL();
-									CURR_XY(&col, &row);
-									for (i = row + 1; i <= TERM_MAXY; i++) {
-										cterm_gotoxy(cterm, TERM_MINY, i);
-										CLREOL();
-									}
-									GOTOXY(col, row);
-									break;
-								case 1:
-									clear2bol(cterm);
-									CURR_XY(&col, &row);
-									for (i = row - 1; i >= TERM_MINY; i--) {
-										cterm_gotoxy(cterm, TERM_MINX, i);
-										CLREOL();
-									}
-									GOTOXY(col, row);
-									break;
-								case 2:
-									cterm_clearscreen(cterm, (char)cterm->attr);
-									GOTOXY(CURR_MINX, CURR_MINY);
-									break;
-							}
-							break;
-						case 'K':	/* Erase In Line */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									CLREOL();
-									break;
-								case 1:
-									clear2bol(cterm);
-									break;
-								case 2:
-									CURR_XY(&col, &row);
-									cterm_gotoxy(cterm, CURR_MINX, row);
-									CLREOL();
-									GOTOXY(col, row);
-									break;
-							}
-							break;
-						case 'L':		/* Insert line */
-							TERM_XY(&col, &row);
-							if(row < TERM_MINY || row > TERM_MAXY || col < TERM_MINX || col > TERM_MAXX)
-								break;
-							seq_default(seq, 0, 1);
-							i = seq->param_int[0];
-							if(i > TERM_MAXY - row)
-								i = TERM_MAXY - row;
-							col2 = TERM_MINX;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col2, &row2);
-							max_col = TERM_MAXX;
-							max_row = TERM_MAXY;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-							if(i)
-								MOVETEXT(col2, row2, max_col, max_row - i, col2, row2 + i);
-							for (j = 0; j < i; j++) {
-								cterm_gotoxy(cterm, TERM_MINX, row+j);
-								cterm_clreol(cterm);
-							}
-							cterm_gotoxy(cterm, col, row);
-							break;
-						case 'M':	/* Delete Line (also ANSI music) */
-							if(cterm->music_enable==CTERM_MUSIC_ENABLED) {
-								cterm->music=1;
-							}
-							else {
-								TERM_XY(&col, &row);
-								if(col >= TERM_MINX && col <= TERM_MAXX && row >= TERM_MINY && row <= TERM_MAXY) {
-									seq_default(seq, 0, 1);
-									i = seq->param_int[0];
-									dellines(cterm, i);
-								}
-							}
-							break;
-						case 'N':	/* Erase In Field (also ANSI Music) */
-							/* BananANSI style... does NOT start with MF or MB */
-							/* This still conflicts (ANSI erase field) */
-							if(cterm->music_enable >= CTERM_MUSIC_BANSI)
-								cterm->music=2;
-							break;
-						case 'O':	/* TODO? Erase In Area */
-							break;
-						case 'P':	/* Delete char */
-							seq_default(seq, 0, 1);
-							TERM_XY(&col, &row);
-							if (col < TERM_MINX || col > TERM_MAXX || row < TERM_MINY || row > TERM_MAXY)
-								break;
-							i = seq->param_int[0];
-							if(i > TERM_MAXX - col + 1)
-								i = TERM_MAXX - col + 1;
-							max_col = TERM_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, NULL);
-							col2 = col;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col2, &row2);
-							MOVETEXT(col2 + i, row2, max_col, row2, col2, row2);
-							cterm_gotoxy(cterm, TERM_MAXX - i, row);
-							cterm_clreol(cterm);
-							cterm_gotoxy(cterm, col, row);
-							break;
-						case 'Q':	/* TODO? Select Editing Extent */
-							break;
-						case 'R':	/* TODO? Active Position Report */
-							break;
-						case 'S':	/* Scroll Up */
-							seq_default(seq, 0, 1);
-							for(j=0; j<seq->param_int[0]; j++)
-								cterm_scrollup(cterm);
-							break;
-						case 'T':	/* Scroll Down */
-							seq_default(seq, 0, 1);
-							for(j=0; j<seq->param_int[0]; j++)
-								scrolldown(cterm);
-							break;
-						case 'U':	/* TODO? Next Page */
-							break;
-						case 'V':	/* TODO? Preceding Page */
-							break;
-						case 'W':	/* TODO? Cursor Tabulation Control */
-							break;
-						case 'X':	/* Erase Character */
-							seq_default(seq, 0, 1);
-							i=seq->param_int[0];
-							CURR_XY(&col, &row);
-							if(i > CURR_MAXX - col)
-								i=CURR_MAXX - col;
-							vc=malloc(i * sizeof(*vc));
-							for(k=0; k < i; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							col2 = col;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &col2, &row2);
-							max_col = CURR_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &max_col, NULL);
-							vmem_puttext(col2, row2, col2 + i - 1, row2, vc);
-							free(vc);
-							break;
-						// for case 'Y': see case 'I':
-						case 'Z':	/* Cursor Backward Tabulation */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							for (i = 0; i < seq->param_int[0]; i++)
-								do_backtab(cterm);
-							break;
-						case '[':	/* TODO? Start Reversed String */
-							break;
-						case '\\':	/* TODO? Parallel Texts */
-							break;
-						case ']':	/* TODO? Start Directed String */
-							break;
-						case '^':	/* TODO? Select Implicit Movement Direction */
-							break;
-						case '_':	/* NOT DEFIFINED IN STANDARD */
-							break;
-						// for case '`': see case 'G':
-						// for case 'a': see case 'C':
-						case 'b':	/* Repeat */
-							if (last != 0) {
-								seq_default(seq, 0, 1);
-								i = seq->param_int[0];
-								if (i > 0) {
-									p2 = malloc(i+1);
-									if (p2) {
-										memset(p2, last, i);
-										p2[i] = 0;
-										ctputs(cterm, p2);
-										free(p2);
-									}
-								}
-							}
-							break;
-						case 'c':	/* Device Attributes */
-							seq_default(seq, 0, 0);
-							if(!seq->param_int[0]) {
-								if(retbuf!=NULL) {
-									if(strlen(retbuf) + strlen(cterm->DA)  < retsize)
-										strcat(retbuf,cterm->DA);
-								}
-							}
-							break;
-						case 'd':	/* Line Position Absolute */
-							seq_default(seq, 0, 1);
-							CURR_XY(&col, NULL);
-							row = seq->param_int[0];
-							if (row < CURR_MINY)
-								row = CURR_MINY;
-							if (row > CURR_MAXY)
-								row = CURR_MAXY;
-							GOTOXY(col, row);
-							break;
-						// for case 'e': see case 'B':
-						// for case 'f': see case 'H':
-						case 'g':	/* Tabulation Clear */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									delete_tabstop(cterm, WHEREX());
-									break;
-								case 3:
-									cterm->tab_count = 0;
-									break;
-							}
-							break;
-						case 'h':	/* TODO? Set Mode */
-							break;
-						case 'i':	/* ToDo?  Media Copy (Printing) */
-							break;
-						// for case 'j': see case 'D':
-						// for case 'k': see case 'A':
-						case 'l':	/* TODO? Reset Mode */
-							break;
-						case 'm':	/* Select Graphic Rendition */
-							seq_default(seq, 0, 0);
-							GETTEXTINFO(&ti);
-							flags = GETVIDEOFLAGS();
-							for (i=0; i < seq->param_count; i++) {
-								switch(seq->param_int[i]) {
-									case 0:
-										cterm->attr=ti.normattr;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 1:
-										if (!cterm->skypix)
-											cterm->attr|=8;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 2:
-										if (!cterm->skypix)
-											cterm->attr&=247;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 4:	/* Underscore */
-										break;
-									case 5:
-									case 6:
-										if (!cterm->skypix)
-											cterm->attr|=128;
-										if (flags & CIOLIB_VIDEO_BGBRIGHT) {
-											attr2palette(cterm->attr, NULL, &cterm->bg_color);
-											FREE_AND_NULL(cterm->bg_tc_str);
-										}
-										break;
-									case 7:
-										j=cterm->attr&112;
-										cterm->attr = (cterm->attr << 4) & 0x70;
-										cterm->attr |= j>>4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 8:
-										j=cterm->attr&112;
-										cterm->attr&=112;
-										cterm->attr |= j>>4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 22:
-										cterm->attr &= 0xf7;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 25:
-										cterm->attr &= 0x7f;
-										if (flags & CIOLIB_VIDEO_BGBRIGHT) {
-											attr2palette(cterm->attr, NULL, &cterm->bg_color);
-											FREE_AND_NULL(cterm->bg_tc_str);
-										}
-										break;
-									case 27:
-										i=cterm->attr&7;
-										j=cterm->attr&112;
-										cterm->attr &= 136;
-										cterm->attr |= j>>4;
-										cterm->attr |= i<<4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 30:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 0);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 31:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 4);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 32:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 2);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 33:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 6);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 34:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 1);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 35:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 5);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 36:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 3);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 38:
-										parse_extended_colour(seq, &i, cterm, 1);
-										break;
-									case 37:
-									case 39:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 7);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 49:
-									case 40:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 0) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 41:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 4) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 42:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 2) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 43:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 6) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 44:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 1) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 45:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 5) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 46:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 3) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 47:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 7) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 48:
-										parse_extended_colour(seq, &i, cterm, 0);
-										break;
-								}
-							}
-							TEXTATTR(cterm->attr);
-							setcolour(cterm->fg_color, cterm->bg_color);
-							break;
-						case 'n':	/* Device Status Report */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 5:
-									if(retbuf!=NULL) {
-										strcpy(tmp,"\x1b[0n");
-										if(strlen(retbuf)+strlen(tmp) < retsize)
-											strcat(retbuf,tmp);
-									}
-									break;
-								case 6:
-									if(retbuf!=NULL) {
-										CURR_XY(&col, &row);
-										sprintf(tmp,"\x1b[%d;%dR",row,col);
-										if(strlen(retbuf)+strlen(tmp) < retsize)
-											strcat(retbuf,tmp);
-									}
-									break;
-								case 255:
-									if (retbuf != NULL) {
-										sprintf(tmp, "\x1b[%d;%dR", CURR_MAXY, CURR_MAXX);
-										if (strlen(retbuf) + strlen(tmp) < retsize) {
-											strcat(retbuf, tmp);
-										}
-									}
-									break;
-							}
-							break;
-						case 'o': /* ToDo?  Define Area Qualification */
-							break;
-						/* 
-						 * END OF STANDARD CONTROL FUNCTIONS
-						 * AFTER THIS IS ALL PRIVATE EXTENSIONS
-						 */
-						case 'p': /* ToDo?  ANSI keyboard reassignment, pointer mode */
-							break;
-						case 'q': /* ToDo?  VT100 keyboard lights, cursor style, protection */
-							break;
-						case 'r': /* Scrolling reigon */
-							seq_default(seq, 0, 1);
-							seq_default(seq, 1, cterm->height);
-							row = seq->param_int[0];
-							max_row = seq->param_int[1];
-							if(row >= ABS_MINY && max_row > row && max_row <= ABS_MAXY) {
-								cterm->top_margin = row;
-								cterm->bottom_margin = max_row;
-								setwindow(cterm);
-								GOTOXY(CURR_MINX, CURR_MINY);
-							}
-							break;
-						case 's':
-							if (cterm->extattr & CTERM_EXTATTR_DECLRMM) {
-								seq_default(seq, 0, ABS_MINX);
-								seq_default(seq, 1, ABS_MAXX);
-								col = seq->param_int[0];
-								if (col == 0)
-									col = cterm->left_margin;
-								max_col = seq->param_int[1];
-								if (max_col == 0)
-									max_col = cterm->right_margin;
-								if(col >= ABS_MINX && max_col > col && max_col <= ABS_MAXX) {
-									cterm->left_margin = col;
-									cterm->right_margin = max_col;
-									setwindow(cterm);
-									GOTOXY(CURR_MINX, CURR_MINY);
-								}
-							}
-							else {
-								CURR_XY(&cterm->save_xpos, &cterm->save_ypos);
-							}
-							break;
-						case 't':
-							if (seq->param_count >= 4) {
-								uint32_t *c = NULL;
-								uint32_t nc;
-
-								if (seq->param_int[0] == 0)
-									c = &cterm->bg_color;
-								else if (seq->param_int[0] == 1)
-									c = &cterm->fg_color;
-								if (c == NULL)
-									break;
-								nc = map_rgb(seq->param_int[1]<<8, seq->param_int[2]<<8, seq->param_int[3]<<8);
-								if (nc != UINT32_MAX)
-									*c = nc;
-								setcolour(cterm->fg_color, cterm->bg_color);
-							}
-							break;
-						case 'u':
-							if(cterm->save_ypos>0 && cterm->save_ypos<=cterm->height
-									&& cterm->save_xpos>0 && cterm->save_xpos<=cterm->width) {
-								// TODO: What to do about the window when position is restored...
-								//       Absolute position stored?  Relative?
-								if(cterm->save_ypos < CURR_MINY || cterm->save_ypos > CURR_MAXY || cterm->save_xpos < CURR_MINX || cterm->save_xpos > CURR_MAXX)
-									break;
-								GOTOXY(cterm->save_xpos, cterm->save_ypos);
-							}
-							break;
-						case 'y':	/* ToDo?  VT100 Tests */
-							break;
-						case 'z':	/* ToDo?  Reset */
-							break;
-						case '|':	/* SyncTERM ANSI Music */
-							cterm->music=1;
-							break;
-					}
-				}
-				break;
-			case 'E':	// Next Line
-				adjust_currpos(cterm, INT_MIN, 1, 1);
-				break;
-			case 'H':
-				insert_tabstop(cterm, WHEREX());
-				break;
-			case 'M':	// Previous line
-				adjust_currpos(cterm, 0, -1, 1);
-				break;
-			case 'P':	// Device Control String - DCS
-				cterm->string = CTERM_STRING_DCS;
-				cterm->sixel = SIXEL_POSSIBLE;
-				cterm->macro = MACRO_POSSIBLE;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case 'X':	// Start Of String - SOS
-				cterm->string = CTERM_STRING_SOS;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case 'c':
-				CLRSCR();
-				cterm_reset(cterm);
-				cterm_gotoxy(cterm, CURR_MINX, CURR_MINY);
-				break;
-			case '\\':
-				if (cterm->strbuf) {
-					if (cterm->strbufsize == cterm->strbuflen-1) {
-						p = realloc(cterm->strbuf, cterm->strbufsize+1);
-						if (p == NULL) {
-							// SO CLOSE!
-							cterm->string = 0;
-						}
-						else {
-							cterm->strbuf = p;
-							cterm->strbufsize++;
-						}
-					}
-					cterm->strbuf[cterm->strbuflen] = 0;
-					switch (cterm->string) {
-						case CTERM_STRING_APC:
-							if (cterm->apc_handler)
-								cterm->apc_handler(cterm->strbuf, cterm->strbuflen, cterm->apc_handler_data);
-							break;
-						case CTERM_STRING_DCS:
-							if (cterm->sixel == SIXEL_STARTED)
-								parse_sixel_string(cterm, true);
-							else if (cterm->macro == MACRO_STARTED)
-								parse_macro_string(cterm, true);
-							else {
-								if (strncmp(cterm->strbuf, "CTerm:Font:", 11) == 0) {
-									cterm->font_slot = strtoul(cterm->strbuf+11, &p, 10);
-									if(cterm->font_slot < CONIO_FIRST_FREE_FONT)
-										break;
-									if (cterm->font_slot > 255)
-										break;
-									if (p && *p == ':') {
-										p++;
-										i = b64_decode(cterm->fontbuf, sizeof(cterm->fontbuf), p, 0);
-										p2 = malloc(i);
-										if (p2) {
-											memcpy(p2, cterm->fontbuf, i);
-											replace_font(cterm->font_slot, strdup("Remote Defined Font"), p2, i);
-										}
-									}
-								}
-								else if (strncmp(cterm->strbuf, "$q", 2) == 0) {
-									// DECRQSS - VT-420
-									switch (cterm->strbuf[2]) {
-										case 'm':
-											if (cterm->strbuf[3] == 0) {
-												strcpy(tmp, "\x1bP1$r0");
-												if (cterm->attr & 8)
-													strcat(tmp, ";1");
-												if (cterm->attr & 128)
-													strcat(tmp, ";5");
-												if (cterm->fg_tc_str == NULL) {
-													switch (cterm->attr & 7) {
-														case 0:
-															strcat(tmp, ";30");
-															break;
-														case 1:
-															strcat(tmp, ";34");
-															break;
-														case 2:
-															strcat(tmp, ";32");
-															break;
-														case 3:
-															strcat(tmp, ";36");
-															break;
-														case 4:
-															strcat(tmp, ";31");
-															break;
-														case 5:
-															strcat(tmp, ";35");
-															break;
-														case 6:
-															strcat(tmp, ";33");
-															break;
-													}
-												}
-												if (cterm->bg_tc_str == NULL) {
-													switch ((cterm->attr >> 4) & 7) {
-														case 1:
-															strcat(tmp, ";44");
-															break;
-														case 2:
-															strcat(tmp, ";42");
-															break;
-														case 3:
-															strcat(tmp, ";46");
-															break;
-														case 4:
-															strcat(tmp, ";41");
-															break;
-														case 5:
-															strcat(tmp, ";45");
-															break;
-														case 6:
-															strcat(tmp, ";43");
-															break;
-														case 7:
-															strcat(tmp, ";47");
-															break;
-													}
-												}
-												if (cterm->fg_tc_str) {
-													strcat(tmp, ";");
-													strcat(tmp, cterm->fg_tc_str);
-												}
-												if (cterm->bg_tc_str) {
-													strcat(tmp, ";");
-													strcat(tmp, cterm->bg_tc_str);
-												}
-												strcat(tmp, "m\x1b\\");
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 'r':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%d;%dr\x1b\\", cterm->top_margin, cterm->bottom_margin);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 's':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%d;%dr\x1b\\", cterm->left_margin, cterm->right_margin);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 't':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%dt\x1b\\", cterm->height);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case '$':
-											if (cterm->strbuf[3] == '|' && cterm->strbuf[4] == 0) {
-												sprintf(tmp, "\x1bP1$r%d$|\x1b\\", cterm->width);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case '*':
-											if (cterm->strbuf[3] == '|' && cterm->strbuf[4] == 0) {
-												sprintf(tmp, "\x1bP1$r%d$|\x1b\\", cterm->height);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										default:
-											if(retbuf!=NULL) {
-												strcpy(tmp,"\x1b[0n");
-												// TODO: If the string is too long, this is likely terrible.
-												if (strlen(retbuf)+5 < retsize)
-													strcat(retbuf, "\x1bP0$r");
-												if (strlen(retbuf)+strlen(&cterm->strbuf[2]) < retsize)
-													strcat(retbuf, &cterm->strbuf[2]);
-												if (strlen(retbuf)+2 < retsize)
-													strcat(retbuf, "\x1b_");
-											}
-									}
-								}
-							}
-							cterm->sixel = SIXEL_INACTIVE;
-							break;
-						case CTERM_STRING_OSC:
-							/* Is this an xterm Change Color(s)? */
-							if (cterm->strbuf[0] == '4' && cterm->strbuf[1] == ';') {
-								unsigned long index = ULONG_MAX;
-								char *seqlast;
-
-								p2 = &cterm->strbuf[2];
-								while ((p = strtok_r(p2, ";", &seqlast)) != NULL) {
-									p2=NULL;
-									if (index == ULONG_MAX) {
-										index = strtoull(p, NULL, 10);
-										if (index == ULONG_MAX || index > 13200)
-											break;
-									}
-									else {
-
-										if (strncmp(p, "rgb:", 4))
-											break;
-										char *p3;
-										char *p4;
-										char *collast;
-										uint16_t rgb[3];
-										int ccount = 0;
-										bool broken=false;
-
-										p4 = &p[4];
-										while (ccount < 3 && (p3 = strtok_r(p4, "/", &collast))!=NULL) {
-											p4 = NULL;
-											unsigned long v;
-											v = strtoul(p3, NULL, 16);
-											if (v > UINT16_MAX)
-												break;
-											switch(strlen(p3)) {
-												case 1:	// 4-bit colour
-													rgb[ccount] = v | (v<<4) | (v<<8) | (v<<12);
-													break;
-												case 2:	// 8-bit colour
-													rgb[ccount] = v | (v<<8);
-													break;
-												case 3:	// 12-bit colour
-													rgb[ccount] = (v & 0x0f) | (v<<4);
-													break;
-												case 4:
-													rgb[ccount] = v;
-													break;
-												default:
-													broken = true;
-													break;
-											}
-											ccount++;
-										}
-										if (ccount == 3 && !broken)
-											setpalette(index + palette_offset, rgb[0], rgb[1], rgb[2]);
-										index = ULONG_MAX;
-									}
-								}
-							}
-							else if (strncmp("104", cterm->strbuf, 3)==0) {
-								if (strlen(cterm->strbuf) == 3) {
-									// Reset all colours
-									for (i=0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++)
-										setpalette(i + palette_offset, dac_default[i].red << 8 | dac_default[i].red, dac_default[i].green << 8 | dac_default[i].green, dac_default[i].blue << 8 | dac_default[i].blue);
-								}
-								else if(cterm->strbuf[3] == ';') {
-									char *seqlast;
-									unsigned long pi;
-
-									p2 = &cterm->strbuf[4];
-									while ((p = strtok_r(p2, ";", &seqlast)) != NULL) {
-										p2=NULL;
-										pi = strtoull(p, NULL, 10);
-										if (pi < sizeof(dac_default)/sizeof(struct dac_colors))
-											setpalette(pi + palette_offset, dac_default[pi].red << 8 | dac_default[pi].red, dac_default[pi].green << 8 | dac_default[pi].green, dac_default[pi].blue << 8 | dac_default[pi].blue);
-									}
-								}
-							}
-							break;
-					}
-				}
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbufsize = cterm->strbuflen = 0;
-				cterm->string = 0;
-				break;
-			case ']':	// Operating System Command - OSC
-				cterm->string = CTERM_STRING_OSC;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case '^':	// Privacy Message - PM
-				cterm->string = CTERM_STRING_PM;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case '_':	// Application Program Command - APC
-				cterm->string = CTERM_STRING_APC;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-		}
-	}
-	free_sequence(seq);
-	cterm->escbuf[0]=0;
-	cterm->sequence=0;
-}
-
-static void
-c64_set_reverse(struct cterminal *cterm, int on)
-{
-	if (on != cterm->c64reversemode)
-		cterm->c64reversemode = on;
-}
-
-static uint8_t
-c64_get_attr(struct cterminal *cterm)
-{
-	if (cterm->c64reversemode)
-		return (cterm->attr >> 4 | cterm->attr << 4);
-	return cterm->attr;
-}
-
-static void
-cterm_reset(struct cterminal *cterm)
-{
-	int  i;
-	struct text_info ti;
-
-	cterm->altfont[0] = cterm->altfont[1] = cterm->altfont[2] = cterm->altfont[3] = getfont(1);
-	cterm->top_margin=1;
-	cterm->bottom_margin=cterm->height;
-	cterm->left_margin=1;
-	cterm->right_margin=cterm->width;
-	cterm->save_xpos=0;
-	cterm->save_ypos=0;
-	cterm->escbuf[0]=0;
-	cterm->sequence=0;
-	cterm->string = 0;
-	FREE_AND_NULL(cterm->strbuf);
-	cterm->strbuflen = 0;
-	cterm->strbufsize = 0;
-	cterm->musicbuf[0] = 0;
-	cterm->music_enable=CTERM_MUSIC_BANSI;
-	cterm->music=0;
-	cterm->tempo=120;
-	cterm->octave=4;
-	cterm->notelen=4;
-	cterm->noteshape=CTERM_MUSIC_NORMAL;
-	cterm->musicfore=TRUE;
-	cterm->backpos=0;
-	cterm->xpos = TERM_MINX;
-	cterm->ypos = TERM_MINY;
-	cterm->cursor=_NORMALCURSOR;
-	cterm->extattr = CTERM_EXTATTR_AUTOWRAP | CTERM_EXTATTR_SXSCROLL;
-	FREE_AND_NULL(cterm->tabs);
-	cterm->tabs = malloc(sizeof(cterm_tabs));
-	if (cterm->tabs) {
-		memcpy(cterm->tabs, cterm_tabs, sizeof(cterm_tabs));
-		cterm->tab_count = sizeof(cterm_tabs) / sizeof(cterm_tabs[0]);
-	}
-	else
-		cterm->tab_count = 0;
-	cterm->setfont_result = CTERM_NO_SETFONT_REQUESTED;
-	cterm->saved_mode = 0;
-	cterm->saved_mode_mask = 0;
-	cterm->c64reversemode = 0;
-	gettextinfo(&ti);
-	switch (ti.currmode) {
-		case C64_40X25:
-		case C128_40X25:
-		case C128_80X25:
-			cterm->attr = 15;
-			break;
-		default:
-			cterm->attr = ti.normattr;
-			break;
-	}
-	attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-	cterm->doorway_mode = 0;
-	cterm->doorway_char = 0;
-	FREE_AND_NULL(cterm->fg_tc_str);
-	FREE_AND_NULL(cterm->bg_tc_str);
-	cterm->sixel = SIXEL_INACTIVE;
-	cterm->sx_iv = 0;
-	cterm->sx_ih = 0;
-	cterm->sx_trans = 0;
-	cterm->sx_repeat = 0;
-	cterm->sx_left = 0;
-	cterm->sx_x = 0;
-	cterm->sx_y = 0;
-	cterm->sx_bg = 0;
-	cterm->sx_fg = 0;
-	cterm->sx_pixels_sent = 0;
-	cterm->sx_first_pass = 0;
-	cterm->sx_hold_update = 0;
-	cterm->sx_start_x = 0;
-	cterm->sx_start_y = 0;
-	cterm->sx_row_max_x = 0;
-	FREE_AND_NULL(cterm->sx_pixels);
-	cterm->sx_width = 0;
-	cterm->sx_height = 0;
-	FREE_AND_NULL(cterm->sx_mask);
-	for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-		FREE_AND_NULL(cterm->macros[i]);
-		cterm->macro_lens[i] = 0;
-	}
-	setwindow(cterm);
-
-	/* Set up tabs for ATASCII */
-	if(cterm->emulation == CTERM_EMULATION_ATASCII) {
-		for(i=0; i<cterm->tab_count; i++)
-			cterm->escbuf[cterm->tabs[i]]=1;
-	}
-
-	/* Set up a shadow palette */
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE) {
-		for (i=0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++)
-			setpalette(i + 16, dac_default[i].red << 8 | dac_default[i].red, dac_default[i].green << 8 | dac_default[i].green, dac_default[i].blue << 8 | dac_default[i].blue);
-	}
-
-	/* Reset mouse state */
-	if (cterm->mouse_state_change) {
-		cterm->mouse_state_change(9, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1000, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1001, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1002, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1003, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1004, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1005, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1006, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1007, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1015, 0, cterm->mouse_state_change_cbdata);
-	}
-}
-
-struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation)
-{
-	char	*revision="$Revision: 1.314 $";
-	char *in;
-	char	*out;
-	struct cterminal *cterm;
-
-	if((cterm=calloc(1, sizeof(struct cterminal)))==NULL)
-		return cterm;
-
-#ifndef CTERM_WITHOUT_CONIO
-	cterm->ciolib_gotoxy=ciolib_gotoxy;
-	cterm->ciolib_wherex=ciolib_wherex;
-	cterm->ciolib_wherey=ciolib_wherey;
-	cterm->ciolib_vmem_gettext=ciolib_vmem_gettext;
-	cterm->ciolib_gettext=ciolib_gettext;
-	cterm->ciolib_gettextinfo=ciolib_gettextinfo;
-	cterm->ciolib_textattr=ciolib_textattr;
-	cterm->ciolib_setcursortype=ciolib_setcursortype;
-	cterm->ciolib_movetext=ciolib_movetext;
-	cterm->ciolib_clreol=ciolib_clreol;
-	cterm->ciolib_clrscr=ciolib_clrscr;
-	cterm->ciolib_setvideoflags=ciolib_setvideoflags;
-	cterm->ciolib_getvideoflags=ciolib_getvideoflags;
-	cterm->ciolib_setscaling=ciolib_setscaling;
-	cterm->ciolib_getscaling=ciolib_getscaling;
-	cterm->ciolib_putch=ciolib_putch;
-	cterm->ciolib_puttext=ciolib_puttext;
-	cterm->ciolib_window=ciolib_window;
-	cterm->ciolib_cputs=ciolib_cputs;
-	cterm->ciolib_setfont=ciolib_setfont;
-	cterm->_wscroll=&_wscroll;
-	cterm->puttext_can_move=&puttext_can_move;
-	cterm->hold_update=&hold_update;
-#endif
-
-	cterm->x=xpos;
-	cterm->y=ypos;
-	cterm->height=height;
-	cterm->width=width;
-	cterm->backlines=backlines;
-	cterm->backwidth = backcols;
-	cterm->scrollback=scrollback;
-	cterm->log=CTERM_LOG_NONE;
-	cterm->logfile=NULL;
-	cterm->emulation=emulation;
-	cterm_reset(cterm);
-	if(cterm->scrollback!=NULL)
-		memset(cterm->scrollback, 0, cterm->backwidth * cterm->backlines * sizeof(*cterm->scrollback));
-	strcpy(cterm->DA,"\x1b[=67;84;101;114;109;");
-	out=strchr(cterm->DA, 0);
-	if(out != NULL) {
-		for(in=revision; *in; in++) {
-			if(isdigit(*in))
-				*(out++)=*in;
-			if(*in=='.')
-				*(out++)=';';
-		}
-		*out=0;
-	}
-	strcat(cterm->DA,"c");
-	/* Fire up note playing thread */
-	if(!cterm->playnote_thread_running) {
-		listInit(&cterm->notes, LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-		sem_init(&cterm->note_completed_sem,0,0);
-		sem_init(&cterm->playnote_thread_terminated,0,0);
-		_beginthread(playnote_thread, 0, cterm);
-	}
-
-	return cterm;
-}
-
-void cterm_start(struct cterminal *cterm)
-{
-	struct text_info ti;
-
-	if (!cterm->started) {
-		GETTEXTINFO(&ti);
-		switch (ti.currmode) {
-			case C64_40X25:
-			case C128_40X25:
-			case C128_80X25:
-				cterm->attr = 15;
-				break;
-			default:
-				cterm->attr = ti.normattr;
-				break;
-		}
-		attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-		FREE_AND_NULL(cterm->fg_tc_str);
-		FREE_AND_NULL(cterm->bg_tc_str);
-		cterm->fg_color += 16;
-		cterm->bg_color += 16;
-		TEXTATTR(cterm->attr);
-		ciolib_setcolour(cterm->fg_color, cterm->bg_color);
-		SETCURSORTYPE(cterm->cursor);
-		cterm->started=1;
-		setwindow(cterm);
-		cterm_clearscreen(cterm, cterm->attr);
-		cterm_gotoxy(cterm, 1, 1);
-	}
-}
-
-static void
-advance_char(struct cterminal *cterm, int *x, int *y, int move)
-{
-	int lm = cterm->left_margin;
-	int rm = cterm->right_margin;
-	int bm = cterm->bottom_margin;
-
-	if((*x == rm || *x == CURR_MAXX) && (!(cterm->extattr & CTERM_EXTATTR_AUTOWRAP))) {
-		GOTOXY(*x, *y);
-		return;
-	}
-	else {
-		if(*y == bm && (*x == rm || *x == CURR_MAXX)) {
-			cond_scrollup(cterm);
-			move = 1;
-			*x = lm;
-		}
-		else {
-			if(*x == rm || *x == CURR_MAXX) {
-				*x=lm;
-				if (*y < CURR_MAXY)
-					(*y)++;
-				if (move)
-					GOTOXY(*x, *y);
-			}
-			else {
-				(*x)++;
-			}
-		}
-	}
-	if (move)
-		GOTOXY(*x, *y);
-}
-
-static void
-ctputs(struct cterminal *cterm, char *buf)
-{
-	char *outp;
-	char *p;
-	int		oldscroll;
-	int cx, cy;
-	int lm, rm, bm;
-
-	if (cterm->font_render) {
-		cterm->font_render(buf);
-		return;
-	}
-
-	outp = buf;
-	oldscroll = *cterm->_wscroll;
-	*cterm->_wscroll = 0;
-	CURR_XY(&cx, &cy);
-	if (cterm->log == CTERM_LOG_ASCII && cterm->logfile != NULL)
-		fputs(buf, cterm->logfile);
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-	rm = TERM_MAXX;
-	bm = TERM_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &rm, &bm);
-	for (p = buf; *p; p++) {
-		switch(*p) {
-			case '\r':
-				*p = 0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, INT_MIN, 0, 0);
-				CURR_XY(&cx, &cy);
-				break;
-			case '\n':
-				*p = 0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, 0, 1, 1);
-				CURR_XY(&cx, &cy);
-				break;
-			case '\b':
-				*p=0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, -1, 0, 0);
-				CURR_XY(&cx, &cy);
-				break;
-			case 7:		/* Bell */
-				break;
-			case '\t':
-				*p=0;
-				CPUTS(outp);
-				outp=p+1;
-				do_tab(cterm);
-				CURR_XY(&cx, &cy);
-				break;
-			default:
-				if (cx == cterm->right_margin || cx == CURR_MAXX) {
-					char ch;
-					ch = *(p + 1);
-					*(p + 1) = 0;
-					CPUTS(outp);
-					*(p+1) = ch;
-					outp = p + 1;
-				}
-				advance_char(cterm, &cx, &cy, 0);
-				break;
-		}
-	}
-	CPUTS(outp);
-	*cterm->_wscroll=oldscroll;
-}
-
-static void parse_sixel_intro(struct cterminal *cterm)
-{
-	size_t i;
-
-	if (cterm->sixel != SIXEL_POSSIBLE)
-		return;
-
-	i = strspn(cterm->strbuf, "0123456789;");
-
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] == 'q') {
-		int ratio, hgrid;
-		int vmode;
-		struct text_info ti;
-		char *p;
-
-		cterm->sixel = SIXEL_STARTED;
-		cterm->sx_repeat = 0;
-		cterm->sx_pixels_sent = 0;
-		cterm->sx_first_pass = 1;
-		cterm->sx_height = 0;
-		cterm->sx_width = 0;
-		cterm->sx_hold_update = *cterm->hold_update;
-		*cterm->hold_update = 0;
-
-		GETTEXTINFO(&ti);
-		vmode = find_vmode(ti.currmode);
-		if (vmode == -1) {
-			cterm->sixel = SIXEL_INACTIVE;
-			return;
-		}
-		attr2palette(ti.attribute, &cterm->sx_fg, &cterm->sx_bg);
-		if (cterm->extattr & CTERM_EXTATTR_SXSCROLL) {
-			TERM_XY(&cterm->sx_start_x, &cterm->sx_start_y);
-			cterm->sx_left = cterm->sx_x = (cterm->sx_start_x - 1) * vparams[vmode].charwidth;
-			cterm->sx_y = (cterm->sx_start_y - 1) * vparams[vmode].charheight;
-		}
-		else {
-			cterm->sx_x = cterm->sx_left = cterm->sx_y = 0;
-			TERM_XY(&cterm->sx_start_x, &cterm->sx_start_y);
-		}
-		cterm->sx_orig_cursor = cterm->cursor;
-		cterm->cursor = _NOCURSOR;
-		SETCURSORTYPE(cterm->cursor);
-		cterm_gotoxy(cterm, TERM_MINX, TERM_MINY);
-		*cterm->hold_update = 1;
-		cterm->sx_trans = hgrid = 0;
-		ratio = strtoul(cterm->strbuf, &p, 10);
-		if (*p == ';') {
-			p++;
-			cterm->sx_trans = strtoul(p, &p, 10);
-		}
-		if (*p == ';') {
-			p++;
-			hgrid = strtoul(p, &p, 10);
-		}
-		switch (ratio) {
-			default:
-			case 0:
-			case 1:
-				cterm->sx_iv = 2;
-				cterm->sx_ih = 1;
-				break;
-			case 2:
-				cterm->sx_iv = 5;
-				cterm->sx_ih = 1;
-				break;
-			case 3:
-			case 4:
-				cterm->sx_iv = 3;
-				cterm->sx_ih = 1;
-				break;
-			case 5:
-			case 6:
-				cterm->sx_iv = 2;
-				cterm->sx_ih = 1;
-				break;
-			case 7:
-			case 8:
-			case 9:
-				cterm->sx_iv = 1;
-				cterm->sx_ih = 1;
-				break;
-		}
-		cterm->strbuflen = 0;
-	}
-	else if (cterm->strbuf[i] != 'q')
-		cterm->sixel = SIXEL_INACTIVE;
-}
-
-static void parse_macro_intro(struct cterminal *cterm)
-{
-	size_t i;
-
-	if (cterm->macro != MACRO_POSSIBLE)
-		return;
-
-	i = strspn(cterm->strbuf, "0123456789;");
-
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] != '!') {
-		cterm->macro = MACRO_INACTIVE;
-		return;
-	}
-	i++;
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] == 'z') {
-		char *p;
-		unsigned long res;
-
-		// Parse parameters...
-		cterm->macro_num = -1;
-		cterm->macro_del = MACRO_DELETE_OLD;
-		cterm->macro_encoding = MACRO_ENCODING_ASCII;
-		res = strtoul(cterm->strbuf, &p, 10);
-		if (res != ULONG_MAX)
-			cterm->macro_num = res;
-		if (*p == ';') {
-			p++;
-			res = strtoul(p, &p, 10);
-			if (res != ULONG_MAX)
-				cterm->macro_del = res;
-			else
-				cterm->macro_del = -1;
-		}
-		if (*p == ';') {
-			p++;
-			res = strtoul(p, &p, 10);
-			if (res != ULONG_MAX)
-				cterm->macro_encoding = res;
-			else
-				cterm->macro_encoding = -1;
-		}
-		if (cterm->macro_num < 0 || cterm->macro_num > 63)
-			cterm->macro = MACRO_INACTIVE;
-		else if (cterm->macro_del < 0 || cterm->macro_del > 1)
-			cterm->macro = MACRO_INACTIVE;
-		else if (cterm->macro_encoding < 0 || cterm->macro_encoding > 1)
-			cterm->macro = MACRO_INACTIVE;
-		else {
-			cterm->macro = MACRO_STARTED;
-			cterm->strbuflen = 0;
-		}
-	}
-	else if (cterm->strbuf[i] != 'z')
-		cterm->macro = MACRO_INACTIVE;
-}
-
-#define ustrlen(s)	strlen((const char *)s)
-#define uctputs(c, p)	ctputs(c, (char *)p)
-#define ustrcat(b, s)	strcat((char *)b, (const char *)s)
-
-CIOLIBEXPORT char* cterm_write(struct cterminal * cterm, const void *vbuf, int buflen, char *retbuf, size_t retsize, int *speed)
-{
-	const unsigned char *buf = (unsigned char *)vbuf;
-	unsigned char ch[2];
-	unsigned char prn[BUFSIZE];
-	int i, j, k, x, y;
-	int sx, sy, ex, ey;
-	struct text_info	ti;
-	int	olddmc;
-	int oldptnm;
-	uint32_t palette[16];
-	int mpalette;
-	struct vmem_cell tmpvc[1];
-	int orig_fonts[4];
-	char lastch = 0;
- 	int palette_offset = 0;
-
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	/* Now rejigger the current modes palette... */
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-	mpalette = get_modepalette(palette);
-	if (mpalette) {
-		for (i=0; i < 16; i++)
-			palette[i] += palette_offset;
-		set_modepalette(palette);
-	}
-	
-	/* Deedle up the fonts */
-	orig_fonts[0] = getfont(1);
-	orig_fonts[1] = getfont(2);
-	orig_fonts[2] = getfont(3);
-	orig_fonts[3] = getfont(4);
-	setfont(cterm->altfont[0], FALSE, 1);
-	setfont(cterm->altfont[1], FALSE, 2);
-	setfont(cterm->altfont[2], FALSE, 3);
-	setfont(cterm->altfont[3], FALSE, 4);
-
-	oldptnm=*cterm->puttext_can_move;
-	*cterm->puttext_can_move=1;
-	olddmc=*cterm->hold_update;
-	*cterm->hold_update=1;
-	if(retbuf!=NULL)
-		retbuf[0]=0;
-	GETTEXTINFO(&ti);
-	setwindow(cterm);
-	x = cterm->xpos;
-	y = cterm->ypos;
-	coord_conv_xy(cterm, CTERM_COORD_ABSTERM, CTERM_COORD_CURR, &x, &y);
-	GOTOXY(x, y);
-	TEXTATTR(cterm->attr);
-	setcolour(cterm->fg_color, cterm->bg_color);
-	SETCURSORTYPE(cterm->cursor);
-	ch[1]=0;
-	if(buflen==-1)
-		buflen=ustrlen(buf);
-	switch(buflen) {
-		case 0:
-			break;
-		default:
-			if(cterm->log==CTERM_LOG_RAW && cterm->logfile != NULL)
-				fwrite(buf, buflen, 1, cterm->logfile);
-			prn[0]=0;
-			for(j=0;j<buflen;j++) {
-				if(ustrlen(prn) >= sizeof(prn)-sizeof(cterm->escbuf)) {
-					uctputs(cterm, prn);
-					prn[0]=0;
-				}
-				ch[0]=buf[j];
-				if (cterm->string && !cterm->sequence) {
-					switch (cterm->string) {
-						case CTERM_STRING_DCS:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_APC:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_OSC:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_PM:
-							/* 0x08-0x0d, 0x20-0x7e */
-							if (ch[0] < 8 || (ch[0] > 0x0d && ch[0] < 0x20) || ch[0] > 0x7e) {
-								if (ch[0] == 27) {
-									uctputs(cterm, prn);
-									prn[0]=0;
-									cterm->sequence=1;
-									break;
-								}
-								else {
-									cterm->string = 0;
-									/* Just toss out the string and this char */
-									FREE_AND_NULL(cterm->strbuf);
-									cterm->strbuflen = cterm->strbufsize = 0;
-									cterm->sixel = SIXEL_INACTIVE;
-								}
-							}
-							else {
-								if (cterm->strbuf) {
-									cterm->strbuf[cterm->strbuflen++] = ch[0];
-									if (cterm->strbuflen == cterm->strbufsize) {
-										char *p;
-
-										cterm->strbufsize *= 2;
-										if (cterm->strbufsize > 1024 * 1024 * 512) {
-											FREE_AND_NULL(cterm->strbuf);
-											cterm->strbuflen = cterm->strbufsize = 0;
-										}
-										else {
-											p = realloc(cterm->strbuf, cterm->strbufsize);
-											if (p == NULL) {
-												FREE_AND_NULL(cterm->strbuf);
-												cterm->strbuflen = cterm->strbufsize = 0;
-											}
-											else
-												cterm->strbuf = p;
-										}
-									}
-									cterm->strbuf[cterm->strbuflen] = 0;
-									switch(cterm->sixel) {
-										case SIXEL_STARTED:
-											parse_sixel_string(cterm, false);
-											break;
-										case SIXEL_POSSIBLE:
-											parse_sixel_intro(cterm);
-											break;
-									}
-									switch(cterm->macro) {
-										case MACRO_STARTED:
-											parse_macro_string(cterm, false);
-											break;
-										case MACRO_POSSIBLE:
-											parse_macro_intro(cterm);
-											break;
-									}
-								}
-							}
-							break;
-						case CTERM_STRING_SOS:
-							/* Anything but SOS or ST (ESC X or ESC \) */
-							if ((ch[0] == 'X' || ch[0] == '\\') && 
-							    cterm->strbuf && cterm->strbuflen &&
-							    cterm->strbuf[cterm->strbuflen-1] == '\x1b') {
-								cterm->strbuflen--;
-								cterm->string = 0;
-								FREE_AND_NULL(cterm->strbuf);
-								cterm->strbuflen = cterm->strbufsize = 0;
-								if (retbuf) {
-									cterm_write(cterm, "\x1b", 1, retbuf+strlen(retbuf), retsize-strlen(retbuf), speed);
-									cterm_write(cterm, &ch[0], 1, retbuf+strlen(retbuf), retsize-strlen(retbuf), speed);
-								}
-							}
-							else {
-								if (cterm->strbuf == NULL) {
-									cterm->string = 0;
-									cterm->strbuflen = cterm->strbufsize = 0;
-								}
-								else {
-									cterm->strbuf[cterm->strbuflen++] = ch[0];
-									if (cterm->strbuflen == cterm->strbufsize) {
-										char *p;
-
-										cterm->strbufsize *= 2;
-										if (cterm->strbufsize > 1024 * 1024 * 512) {
-											FREE_AND_NULL(cterm->strbuf);
-											cterm->string = 0;
-											cterm->strbuflen = cterm->strbufsize = 0;
-										}
-										else {
-											p = realloc(cterm->strbuf, cterm->strbufsize);
-											if (p == NULL) {
-												cterm->string = 0;
-												FREE_AND_NULL(cterm->strbuf);
-												cterm->strbuflen = cterm->strbufsize = 0;
-											}
-											else
-												cterm->strbuf = p;
-										}
-									}
-									cterm->strbuf[cterm->strbuflen] = 0;
-								}
-							}
-							break;
-					}
-				}
-				else if(cterm->font_size) {
-					cterm->fontbuf[cterm->font_read++]=ch[0];
-					if(cterm->font_read == cterm->font_size) {
-#ifndef CTERM_WITHOUT_CONIO
-						char *buf2;
-
-						if((buf2=(char *)malloc(cterm->font_size))!=NULL) {
-							memcpy(buf2,cterm->fontbuf,cterm->font_size);
-							if(cterm->font_slot >= CONIO_FIRST_FREE_FONT && cterm->font_slot < 256) {
-								replace_font(cterm->font_slot, strdup("Remote Defined Font"), buf2, cterm->font_size);
-							}
-							else
-								FREE_AND_NULL(buf2);
-						}
-#endif
-						cterm->font_size=0;
-					}
-				}
-				else if(cterm->sequence) {
-					ustrcat(cterm->escbuf,ch);
-					switch(legal_sequence(cterm->escbuf, sizeof(cterm->escbuf)-1)) {
-						case SEQ_BROKEN:
-							/* Broken sequence detected */
-							ustrcat(prn,"\033");
-							ustrcat(prn,cterm->escbuf);
-							cterm->escbuf[0]=0;
-							cterm->sequence=0;
-							if(ch[0]=='\033') {	/* Broken sequence followed by a legal one! */
-								if(prn[0])	/* Don't display the ESC */
-									prn[ustrlen(prn)-1]=0;
-								uctputs(cterm, prn);
-								prn[0]=0;
-								cterm->sequence=1;
-							}
-							break;
-						case SEQ_INCOMPLETE:
-							break;
-						case SEQ_COMPLETE:
-							do_ansi(cterm, retbuf, retsize, speed, lastch);
-							lastch = 0;
-							break;
-					}
-				}
-				else if (cterm->music) {
-					if(ch[0]==14) {
-						*cterm->hold_update=0;
-						*cterm->puttext_can_move=0;
-						CURR_XY(&x, &y);
-						GOTOXY(x, y);
-						SETCURSORTYPE(cterm->cursor);
-						*cterm->hold_update=1;
-						*cterm->puttext_can_move=1;
-						play_music(cterm);
-					}
-					else {
-						if(strchr(musicchars,ch[0])!=NULL)
-							ustrcat(cterm->musicbuf,ch);
-						else {
-							/* Kill non-music strings */
-							cterm->music=0;
-							cterm->musicbuf[0]=0;
-						}
-					}
-				}
-				else {
-					if(cterm->emulation == CTERM_EMULATION_ATASCII) {
-						if(cterm->attr==7) {
-							switch(buf[j]) {
-								case 27:	/* ESC */
-									cterm->attr=1;
-									break;
-								case 28:	/* Up (TODO: Wraps??) */
-									CURR_XY(&x, &y);
-									y--;
-									if(y < CURR_MINY)
-										y = CURR_MINY;
-									GOTOXY(x, y);
-									break;
-								case 29:	/* Down (TODO: Wraps??) */
-									CURR_XY(&x, &y);
-									y++;
-									if(y > CURR_MAXY)
-										y = CURR_MAXY;
-									GOTOXY(x, y);
-									break;
-								case 30:	/* Left (TODO: Wraps around to same line?) */
-									CURR_XY(&x, &y);
-									x--;
-									if(x < CURR_MINX)
-										y = CURR_MINX;
-									GOTOXY(x, y);
-									break;
-								case 31:	/* Right (TODO: Wraps around to same line?) */
-									CURR_XY(&x, &y);
-									x++;
-									if(x > CURR_MAXX)
-										y = CURR_MAXX;
-									GOTOXY(x, y);
-									break;
-								case 125:	/* Clear Screen */
-									cterm_clearscreen(cterm, cterm->attr);
-									break;
-								case 126:	/* Backspace (TODO: Wraps around to previous line?) */
-											/* DOES NOT delete char, merely erases */
-									CURR_XY(&x, &y);
-									x--;
-									if (x < CURR_MINX) {
-										y--;
-										if (y < CURR_MINY)
-											break;
-										y = CURR_MAXY;
-									}
-									GOTOXY(x, y);
-									PUTCH(32);
-									GOTOXY(x, y);
-									break;
-								/* We abuse the ESC buffer for tab stops */
-								case 127:	/* Tab (Wraps around to next line) */
-									CURR_XY(&x, &y);
-									for (k = x + 1; k <= CURR_MAXX; k++) {
-										if(cterm->escbuf[k]) {
-											x = k;
-											break;
-										}
-									}
-									if (k > CURR_MAXX) {
-										x = CURR_MINX;
-										y++;
-										if(y > CURR_MAXY) {
-											cond_scrollup(cterm);
-											y = CURR_MAXY;
-										}
-									}
-									GOTOXY(x, y);
-									break;
-								case 155:	/* Return */
-									adjust_currpos(cterm, INT_MIN, +1, 1);
-									break;
-								case 156:	/* Delete Line */
-									dellines(cterm, 1);
-									adjust_currpos(cterm, INT_MIN, 0, 0);
-									break;
-								case 157:	/* Insert Line */
-									CURR_XY(&x, &y);
-									if (y < CURR_MAXY) {
-										sx = CURR_MINX;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										ey = CURR_MAXY;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, &ey);
-										MOVETEXT(sx, sy, ex, ey - 1, sx, sy + 1);
-									}
-									GOTOXY(CURR_MINX, y);
-									cterm_clreol(cterm);
-									break;
-								case 158:	/* Clear Tab */
-									cterm->escbuf[WHEREX()]=0;
-									break;
-								case 159:	/* Set Tab */
-									cterm->escbuf[WHEREX()]=1;
-									break;
-								case 253:	/* Beep */
-									if(!cterm->quiet) {
-										#ifdef __unix__
-											PUTCH(7);
-										#else
-											MessageBeep(MB_OK);
-										#endif
-									}
-									break;
-								case 254:	/* Delete Char */
-									CURR_XY(&x, &y);
-									if(x < CURR_MAXX) {
-										sx = x;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-										MOVETEXT(sx + 1, sy, ex, sy, sx, sy);
-									}
-									GOTOXY(CURR_MAXX, k);
-									cterm_clreol(cterm);
-									GOTOXY(x, y);
-									break;
-								case 255:	/* Insert Char */
-									CURR_XY(&x, &y);
-									if(x < CURR_MAXX) {
-										sx = x;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-										MOVETEXT(sx, sy, ex - 1, sy, sx + 1, sy);
-									}
-									PUTCH(32);
-									GOTOXY(x, y);
-									break;
-								default:
-									ch[0] = buf[j];
-									ch[1] = cterm->attr;
-									SCR_XY(&sx, &sy);
-									PUTTEXT(sx, sy, sx, sy, ch);
-									ch[1]=0;
-									CURR_XY(&x, &y);
-									advance_char(cterm, &x, &y, 1);
-									break;
-							}
-						}
-						else {
-							switch(buf[j]) {
-								case 155:	/* Return */
-									adjust_currpos(cterm, INT_MIN, +1, 1);
-									break;
-								default:
-									/* Translate to screen codes */
-									k=buf[j];
-									if(k < 32) {
-										k +=64;
-									}
-									else if(k < 96) {
-										k -= 32;
-									}
-									else if(k < 128) {
-										/* No translation */
-									}
-									else if(k < 160) {
-										k +=64;
-									}
-									else if(k < 224) {
-										k -= 32;
-									}
-									else if(k < 256) {
-										/* No translation */
-									}
-									ch[0] = k;
-									ch[1] = cterm->attr;
-									SCR_XY(&sx, &sy);
-									PUTTEXT(sx, sy, sx, sy, ch);
-									ch[1]=0;
-									CURR_XY(&x, &y);
-									advance_char(cterm, &x, &y, 1);
-									break;
-							}
-							cterm->attr=7;
-						}
-					}
-					else if(cterm->emulation == CTERM_EMULATION_PETASCII) {
-						switch(buf[j]) {
-							case 5:		/* White */
-							case 28:	/* Red */
-							case 30:	/* Green */
-							case 31:	/* Blue */
-							case 129:	/* Orange */
-							case 144:	/* Black */
-							case 149:	/* Brown */
-							case 150:	/* Light Red */
-							case 151:	/* Dark Gray */
-							case 152:	/* Grey */
-							case 153:	/* Light Green */
-							case 154:	/* Light Blue */
-							case 155:	/* Light Gray */
-							case 156:	/* Purple */
-							case 158:	/* Yellow */
-							case 159:	/* Cyan */
-								cterm->attr &= 0xf0;
-								if (ti.currmode == C64_40X25 || ti.currmode == C128_40X25) {
-									switch(buf[j]) {
-										case 5:		/* White/Bright White */
-											cterm->attr |= 1;
-											break;
-										case 28:	/* Red*/
-											cterm->attr |= 2;
-											break;
-										case 30:	/* Green */
-											cterm->attr |= 5;
-											break;
-										case 31:	/* Blue */
-											cterm->attr |= 6;
-											break;
-										case 129:	/* Orange/Magenta */
-											cterm->attr |= 8;
-											break;
-										case 144:	/* Black */
-											cterm->attr |= 0;
-											break;
-										case 149:	/* Brown */
-											cterm->attr |= 9;
-											break;
-										case 150:	/* Light Red/Bright Red */
-											cterm->attr |= 10;
-											break;
-										case 151:	/* Dark Gray/Cyan */
-											cterm->attr |= 11;
-											break;
-										case 152:	/* Grey/Bright Black */
-											cterm->attr |= 12;
-											break;
-										case 153:	/* Light Green/Bright Green */
-											cterm->attr |= 13;
-											break;
-										case 154:	/* Light Blue/Bright Blue */
-											cterm->attr |= 14;
-											break;
-										case 155:	/* Light Gray/White */
-											cterm->attr |= 15;
-											break;
-										case 156:	/* Purple/Bright Magenta */
-											cterm->attr |= 4;
-											break;
-										case 158:	/* Yellow/Bright Yellow */
-											cterm->attr |= 7;
-											break;
-										case 159:	/* Cyan/Bright Cyan */
-											cterm->attr |= 3;
-											break;
-									}
-								}
-								else {
-									// C128 80-column
-									switch(buf[j]) {
-										case 5:		/* White/Bright White */
-											cterm->attr |= 15;
-											break;
-										case 28:	/* Red*/
-											cterm->attr |= 4;
-											break;
-										case 30:	/* Green */
-											cterm->attr |= 2;
-											break;
-										case 31:	/* Blue */
-											cterm->attr |= 1;
-											break;
-										case 129:	/* Orange/Magenta */
-											cterm->attr |= 5;
-											break;
-										case 144:	/* Black */
-											cterm->attr |= 0;
-											break;
-										case 149:	/* Brown */
-											cterm->attr |= 6;
-											break;
-										case 150:	/* Light Red/Bright Red */
-											cterm->attr |= 12;
-											break;
-										case 151:	/* Dark Gray/Cyan */
-											cterm->attr |= 3;
-											break;
-										case 152:	/* Grey/Bright Black */
-											cterm->attr |= 8;
-											break;
-										case 153:	/* Light Green/Bright Green */
-											cterm->attr |= 10;
-											break;
-										case 154:	/* Light Blue/Bright Blue */
-											cterm->attr |= 9;
-											break;
-										case 155:	/* Light Gray/White */
-											cterm->attr |= 7;
-											break;
-										case 156:	/* Purple/Bright Magenta */
-											cterm->attr |= 13;
-											break;
-										case 158:	/* Yellow/Bright Yellow */
-											cterm->attr |= 14;
-											break;
-										case 159:	/* Cyan/Bright Cyan */
-											cterm->attr |= 11;
-											break;
-									}
-								}
-								TEXTATTR(cterm->attr);
-								attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-								FREE_AND_NULL(cterm->fg_tc_str);
-								FREE_AND_NULL(cterm->bg_tc_str);
-								break;
-
-							/* Movement */
-							case 13:	/* "\r\n" and disabled reverse. */
-								c64_set_reverse(cterm, 0);
-								/* Fall-through */
-							case 141:
-								adjust_currpos(cterm, INT_MIN, 0, 0);
-								/* Fall-through */
-							case 17:
-								adjust_currpos(cterm, 0, 1, 1);
-								break;
-							case 147:
-								cterm_clearscreen(cterm, cterm->attr);
-								/* Fall through */
-							case 19:
-								adjust_currpos(cterm, INT_MIN, INT_MIN, 0);
-								break;
-							case 20:	/* Delete (Wrapping backspace) */
-								CURR_XY(&x, &y);
-								if(x == CURR_MINX) {
-									if (y == CURR_MINY)
-										break;
-									x = CURR_MINX;
-									GOTOXY(x, k-1);
-								}
-								else
-									GOTOXY(--x, k);
-								if(x < CURR_MAXX) {
-									sx = x;
-									sy = y;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-									ex = CURR_MAXX;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-									MOVETEXT(sx + 1, sy, ex, sy, sx, sy);
-								}
-								GOTOXY(CURR_MAXX, y);
-								cterm_clreol(cterm);
-								GOTOXY(x, y);
-								break;
-							case 157:	/* Cursor Left (wraps) */
-								CURR_XY(&x, &y);
-								if (x == CURR_MINX) {
-									if(y > CURR_MINY)
-										GOTOXY(CURR_MAXX, y - 1);
-								}
-								else
-									GOTOXY(x - 1, y);
-								break;
-							case 29:	/* Cursor Right (wraps) */
-								CURR_XY(&x, &y);
-								if (x == CURR_MAXX) {
-									if (y == CURR_MAXY) {
-										cond_scrollup(cterm);
-										GOTOXY(CURR_MINX, y);
-									}
-									else
-										GOTOXY(CURR_MINX, y + 1);
-								}
-								else
-									GOTOXY(x + 1, y);
-								break;
-							case 145:	/* Cursor Up (No scroll */
-								adjust_currpos(cterm, 0, -1, 0);
-								break;
-							case 148:	/* Insert TODO verify last column */
-										/* CGTerm does nothing there... we */
-										/* Erase under cursor. */
-								CURR_XY(&x, &y);
-								if (x <= CURR_MAXX) {
-									sx = x;
-									sy = y;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-									ex = CURR_MAXX;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-									MOVETEXT(sx, sy, ex - 1, sy, sx + 1, sy);
-								}
-								PUTCH(' ');
-								GOTOXY(x, y);
-								break;
-
-							/* Font change... whee! */
-							case 14:	/* Lower case font */
-								if(ti.currmode == C64_40X25) {
-									SETFONT(33,FALSE,1);
-									cterm->altfont[0] = 33;
-								}
-								else {	/* Assume C128 */
-									SETFONT(35,FALSE,1);
-									cterm->altfont[0] = 35;
-								}
-								break;
-							case 142:	/* Upper case font */
-								if(ti.currmode == C64_40X25) {
-									SETFONT(32,FALSE,1);
-									cterm->altfont[0] = 32;
-								}
-								else {	/* Assume C128 */
-									SETFONT(34,FALSE,1);
-									cterm->altfont[0] = 34;
-								}
-								break;
-							case 18:	/* Reverse mode on */
-								c64_set_reverse(cterm, 1);
-								break;
-							case 146:	/* Reverse mode off */
-								c64_set_reverse(cterm, 0);
-								break;
-
-							/* Extras */
-							case 7:			/* Beep */
-								if(!cterm->quiet) {
-									#ifdef __unix__
-										PUTCH(7);
-									#else
-										MessageBeep(MB_OK);
-									#endif
-								}
-								break;
-							// 0x0f - Flashing on (C128 80-column only)
-							// 0x8f - Flashing off (C128 80-column only)
-							// 0x02 - Flashing on (C128 80-column only)
-							// 0x82 - Flashing off (C128 80-column only)
-							default:
-								k=buf[j];
-								if(k<32 || (k > 127 && k < 160)) {
-									break;
-								}
-								ch[0] = k;
-								ch[1] = c64_get_attr(cterm);
-								SCR_XY(&sx, &sy);
-								PUTTEXT(sx, sy, sx, sy, ch);
-								ch[1]=0;
-								CURR_XY(&x, &y);
-								advance_char(cterm, &x, &y, 1);
-								break;
-						}
-					}
-					else {	/* ANSI-BBS */
-						if(cterm->doorway_char) {
-							uctputs(cterm, prn);
-							tmpvc[0].ch = ch[0];
-							tmpvc[0].legacy_attr=cterm->attr;
-							tmpvc[0].fg = cterm->fg_color;
-							tmpvc[0].bg = cterm->bg_color;
-							tmpvc[0].font = ciolib_attrfont(cterm->attr);
-							SCR_XY(&sx, &sy);
-							vmem_puttext(sx, sy, sx, sy, tmpvc);
-							ch[1]=0;
-							CURR_XY(&x, &y);
-							advance_char(cterm, &x, &y, 1);
-							cterm->doorway_char=0;
-						}
-						else {
-							switch(buf[j]) {
-								case 0:
-									lastch = 0;
-									if(cterm->doorway_mode)
-										cterm->doorway_char=1;
-									break;
-								case 7:			/* Beep */
-									lastch = 0;
-									uctputs(cterm, prn);
-									prn[0]=0;
-									if(cterm->log==CTERM_LOG_ASCII && cterm->logfile != NULL)
-										fputs("\x07", cterm->logfile);
-									if(!cterm->quiet) {
-										#ifdef __unix__
-											PUTCH(7);
-										#else
-											MessageBeep(MB_OK);
-										#endif
-									}
-									break;
-								case 12:		/* ^L - Clear screen */
-									lastch = 0;
-									uctputs(cterm, prn);
-									prn[0]=0;
-									if(cterm->log==CTERM_LOG_ASCII && cterm->logfile != NULL)
-										fputs("\x0c", cterm->logfile);
-									cterm_clearscreen(cterm, (char)cterm->attr);
-									GOTOXY(CURR_MINX, CURR_MINY);
-									break;
-								case 27:		/* ESC */
-									uctputs(cterm, prn);
-									prn[0]=0;
-									cterm->sequence=1;
-									break;
-								default:
-									lastch = ch[0];
-									ustrcat(prn,ch);
-							}
-						}
-					}
-				}
-			}
-			uctputs(cterm, prn);
-			prn[0]=0;
-			break;
-	}
-	ABS_XY(&cterm->xpos, &cterm->ypos);
-
-	*cterm->hold_update=olddmc;
-	*cterm->puttext_can_move=oldptnm;
-	CURR_XY(&x, &y);
-	GOTOXY(x, y);
-	SETCURSORTYPE(cterm->cursor);
-
-	/* Now rejigger the current modes palette... */
-	if (mpalette) {
-		for (i=0; i < 16; i++)
-			palette[i] -= palette_offset;
-		set_modepalette(palette);
-	}
-
-	/* De-doodle the fonts */
-	setfont(orig_fonts[0], FALSE, 1);
-	setfont(orig_fonts[1], FALSE, 2);
-	setfont(orig_fonts[2], FALSE, 3);
-	setfont(orig_fonts[3], FALSE, 4);
-
-	return(retbuf);
-}
-
-int cterm_openlog(struct cterminal *cterm, char *logfile, int logtype)
-{
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	cterm->logfile=fopen(logfile, "ab");
-	if(cterm->logfile==NULL)
-		return(0);
-	cterm->log=logtype;
-	return(1);
-}
-
-void cterm_closelog(struct cterminal *cterm)
-{
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	if(cterm->logfile != NULL)
-		fclose(cterm->logfile);
-	cterm->logfile=NULL;
-	cterm->log=CTERM_LOG_NONE;
-}
-
-FILE *dbg;
-void cterm_end(struct cterminal *cterm, int free_fonts)
-{
-	int i;
-
-	if(cterm) {
-		cterm_closelog(cterm);
-#ifdef CTERM_WITHOUT_CONIO
-		FREE_AND_NULL(BD->vmem);
-		FREE_AND_NULL(BD);
-#else
-		if (free_fonts) {
-			for(i=CONIO_FIRST_FREE_FONT; i < 256; i++) {
-				FREE_AND_NULL(conio_fontdata[i].eight_by_sixteen);
-				FREE_AND_NULL(conio_fontdata[i].eight_by_fourteen);
-				FREE_AND_NULL(conio_fontdata[i].eight_by_eight);
-				FREE_AND_NULL(conio_fontdata[i].desc);
-			}
-		}
-#endif
-		if(cterm->playnote_thread_running) {
-			if(sem_trywait(&cterm->playnote_thread_terminated)==-1) {
-				listSemPost(&cterm->notes);
-				sem_wait(&cterm->playnote_thread_terminated);
-			}
-			sem_destroy(&cterm->playnote_thread_terminated);
-			sem_destroy(&cterm->note_completed_sem);
-			listFree(&cterm->notes);
-		}
-
-		FREE_AND_NULL(cterm->strbuf);
-		FREE_AND_NULL(cterm->tabs);
-		FREE_AND_NULL(cterm->fg_tc_str);
-		FREE_AND_NULL(cterm->bg_tc_str);
-		FREE_AND_NULL(cterm->sx_pixels);
-		FREE_AND_NULL(cterm->sx_mask);
-		for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-			FREE_AND_NULL(cterm->macros[i]);
-		}
-
-		free(cterm);
-	}
-}
diff --git a/ciolib/cterm.h b/ciolib/cterm.h
deleted file mode 100644
index 3b1b7a1..0000000
--- a/ciolib/cterm.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* $Id: cterm.h,v 1.64 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CTERM_H_
-#define _CTERM_H_
-
-#include <stdio.h>	/* FILE* */
-#include <link_list.h>
-#include <semwrap.h>
-#include "ciolib.h"
-
-typedef enum {
-	 CTERM_MUSIC_NORMAL
-	,CTERM_MUSIC_LEGATO
-	,CTERM_MUSIC_STACATTO
-} cterm_noteshape_t;
-
-typedef enum {
-	 CTERM_LOG_NONE
-	,CTERM_LOG_ASCII
-	,CTERM_LOG_RAW
-} cterm_log_t;
-
-typedef enum {
-	 CTERM_EMULATION_ANSI_BBS
-	,CTERM_EMULATION_PETASCII
-	,CTERM_EMULATION_ATASCII
-} cterm_emulation_t;
-
-typedef enum {
-	CTERM_MUSIC_SYNCTERM,
-	CTERM_MUSIC_BANSI,
-	CTERM_MUSIC_ENABLED
-} cterm_music_t;
-
-#define CTERM_LOG_MASK	0x7f
-#define CTERM_LOG_PAUSED	0x80
-
-#define CTERM_NO_SETFONT_REQUESTED	99
-
-struct cterminal {
-	/* conio stuff */
-	int	x;		// X position of the left side on the screen
-	int	y;		// Y position of the top pn the screen
-	int setfont_result;
-	int altfont[4];	// The font slots successfully assigned to the 4 alt-font styles/attributes
-
-	/* emulation mode */
-	cterm_emulation_t	emulation;
-	int					height;			// Height of the terminal buffer
-	int					width;			// Width of the terminal buffer
-	int					top_margin;
-	int					bottom_margin;
-	int					left_margin;
-	int					right_margin;
-	int					quiet;			// No sounds are made
-	struct vmem_cell	*scrollback;
-	int					backlines;		// Number of lines in scrollback
-	int					backwidth;		// Number of columns in scrollback
-	char				DA[1024];		// Device Attributes
-#define	CTERM_SAVEMODE_AUTOWRAP			0x001
-#define CTERM_SAVEMODE_CURSOR			0x002
-#define	CTERM_SAVEMODE_ALTCHARS			0x004
-#define CTERM_SAVEMODE_NOBRIGHT			0x008
-#define CTERM_SAVEMODE_BGBRIGHT			0x010
-#define CTERM_SAVEMODE_SIXEL_SCROLL		0x020
-#define CTERM_SAVEMODE_ORIGIN			0x040
-#define	CTERM_SAVEMODE_BLINKALTCHARS		0x080
-#define CTERM_SAVEMODE_NOBLINK			0x100
-#define CTERM_SAVEMODE_MOUSE_X10		0x200
-#define CTERM_SAVEMODE_MOUSE_NORMAL		0x400
-#define CTERM_SAVEMODE_MOUSE_HIGHLIGHT		0x500
-#define CTERM_SAVEMODE_MOUSE_BUTTONTRACK	0x1000
-#define CTERM_SAVEMODE_MOUSE_ANY		0x2000
-#define CTERM_SAVEMODE_MOUSE_FOCUS		0x4000
-#define CTERM_SAVEMODE_MOUSE_UTF8		0x8000
-#define CTERM_SAVEMODE_MOUSE_SGR		0x10000
-#define CTERM_SAVEMODE_MOUSE_ALTSCROLL		0x20000
-#define CTERM_SAVEMODE_MOUSE_URXVT		0x40000
-#define CTERM_SAVEMODE_DECLRMM			0x80000
-	int32_t				saved_mode;
-	int32_t				saved_mode_mask;
-
-	/* emulation state */
-	int					started;		// Indicates that conio functions are being called
-	int					c64reversemode;	// Commodore 64 reverse mode state
-	unsigned char		attr;			// Current attribute
-	uint32_t			fg_color;
-	uint32_t			bg_color;
-	unsigned int		extattr;		// Extended attributes
-#define CTERM_EXTATTR_AUTOWRAP		0x0001
-#define CTERM_EXTATTR_ORIGINMODE	0x0002
-#define CTERM_EXTATTR_SXSCROLL		0x0004
-#define CTERM_EXTATTR_DECLRMM		0x0008
-	int					save_xpos;		// Saved position (for later restore)
-	int					save_ypos;
-	int					sequence;		// An escape sequence is being parsed
-	int					string;
-#define CTERM_STRING_APC	1
-#define CTERM_STRING_DCS	2
-#define CTERM_STRING_OSC	3
-#define CTERM_STRING_PM		4
-#define CTERM_STRING_SOS	5
-	char				*strbuf;
-	size_t				strbuflen;
-	size_t				strbufsize;
-	char				escbuf[1024];
-	cterm_music_t		music_enable;	// The remotely/locally controled music state
-	char				musicbuf[1024];
-	int					music;			// ANSI music is being parsed
-	int					tempo;
-	int					octave;
-	int					notelen;
-	cterm_noteshape_t	noteshape;
-	int					musicfore;
-	int					playnote_thread_running;
-	link_list_t			notes;
-	sem_t				playnote_thread_terminated;
-	sem_t				note_completed_sem;
-	int					backpos;
-	int					xpos;
-	int					ypos;
-	cterm_log_t			log;
-	FILE*				logfile;
-	char				fontbuf[4097];	// Remote font
-	int					font_read;		// Current position in fontbuf
-	int					font_slot;
-	int					font_size;		// Bytes
-	int					doorway_mode;
-	int					doorway_char;	// Indicates next char is a "doorway" mode char
-	int					cursor;			// Current cursor mode (Normal or None)
-	char				*fg_tc_str;
-	char				*bg_tc_str;
-	int					*tabs;
-	int					tab_count;
-
-	/* Sixel state */
-	int					sixel;			// Sixel status
-#define SIXEL_INACTIVE	0
-#define SIXEL_POSSIBLE	1
-#define SIXEL_STARTED	2
-	int					sx_iv;			// Vertical size
-	int					sx_ih;			// Horizontal size
-	int					sx_trans;		// "Transparent" background
-	unsigned long		sx_repeat;		// Repeat count
-	unsigned			sx_left;		// Left margin (0-based pixel offset)
-	unsigned			sx_x, sx_y;		// Current position
-	uint32_t			sx_fg, sx_bg;	// Current colour set
-	int					sx_pixels_sent;	/* If any pixels have been sent... 
-										   Raster Attributes are ignore if this is true. */
-	int					sx_first_pass;	// First pass through a line
-	int					sx_hold_update;	// hold_update value to restore on completion
-	int					sx_start_x;		// Starting X position
-	int					sx_start_y;		// Starting Y position
-	int					sx_row_max_x;	// Max right size of this sixel line
-	struct ciolib_pixels *sx_pixels;
-	unsigned long		sx_width;		// Width from raster attributes
-	unsigned long		sx_height;		// REMAINING heigh from raster attributes
-	uint8_t				*sx_mask;
-	int					sx_orig_cursor;	// Original value of cterm->cursor
-
-	/* APC Handler */
-	void				(*apc_handler)(char *strbuf, size_t strlen, void *cbdata);
-	void				*apc_handler_data;
-
-	/* Mouse state change callback */
-	void (*mouse_state_change)(int parameter, int enable, void *cbdata);
-	void *mouse_state_change_cbdata;
-	int (*mouse_state_query)(int parameter, void *cbdata);
-	void *mouse_state_query_cbdata;
-
-	/* Macros */
-	char *macros[64];
-	size_t macro_lens[64];
-	uint64_t in_macro;
-	int macro;
-#define MACRO_INACTIVE	0
-#define MACRO_POSSIBLE	1
-#define MACRO_STARTED	2
-	int macro_num;
-	int macro_del;
-#define MACRO_DELETE_OLD	0
-#define MACRO_DELETE_ALL	1
-	int macro_encoding;
-#define MACRO_ENCODING_ASCII	0
-#define MACRO_ENCODING_HEX	1
-
-	/* Alternate font renderer */
-	void (*font_render)(char *str);
-	int skypix;
-
-	/* conio function pointers */
-#ifdef CTERM_WITHOUT_CONIO
-	void	(*ciolib_gotoxy)		(struct cterminal *,int,int);
-	int		(*ciolib_wherex)		(struct cterminal *);
-	int		(*ciolib_wherey)		(struct cterminal *);
-	int		(*ciolib_gettext)		(struct cterminal *,int,int,int,int,void *);
-	void	(*ciolib_gettextinfo)	(struct cterminal *,struct text_info *);
-	void	(*ciolib_textattr)		(struct cterminal *,int);
-	void	(*ciolib_setcursortype)	(struct cterminal *,int);
-	int		(*ciolib_movetext)		(struct cterminal *,int,int,int,int,int,int);
-	void	(*ciolib_clreol)		(struct cterminal *);
-	void	(*ciolib_clrscr)		(struct cterminal *);
-	void	(*ciolib_setvideoflags)	(struct cterminal *,int flags);
-	int		(*ciolib_getvideoflags)	(struct cterminal *);
-	void	(*ciolib_setscaling)	(struct cterminal *,int new_value);
-	int		(*ciolib_getscaling)	(struct cterminal *);
-	int		(*ciolib_putch)			(struct cterminal *,int);
-	int		(*ciolib_puttext)		(struct cterminal *,int,int,int,int,void *);
-	void	(*ciolib_window)		(struct cterminal *,int,int,int,int);
-	int		(*ciolib_cputs)			(struct cterminal *,const char *);
-	int		(*ciolib_setfont)		(struct cterminal *,int font, int force, int font_num);
-#else
-	void	(*ciolib_gotoxy)		(int,int);
-	int		(*ciolib_wherex)		(void);
-	int		(*ciolib_wherey)		(void);
-	int		(*ciolib_gettext)		(int,int,int,int,void *);
-	int		(*ciolib_vmem_gettext)	(int,int,int,int,struct vmem_cell *);
-	void	(*ciolib_gettextinfo)	(struct text_info *);
-	void	(*ciolib_textattr)		(int);
-	void	(*ciolib_setcursortype)	(int);
-	int		(*ciolib_movetext)		(int,int,int,int,int,int);
-	void	(*ciolib_clreol)		(void);
-	void	(*ciolib_clrscr)		(void);
-	void	(*ciolib_setvideoflags)	(int flags);
-	int		(*ciolib_getvideoflags)	(void);
-	void	(*ciolib_setscaling)		(int new_value);
-	int		(*ciolib_getscaling)		(void);
-	int		(*ciolib_putch)			(int);
-	int		(*ciolib_puttext)		(int,int,int,int,void *);
-	int		(*ciolib_vmem_puttext)	(int,int,int,int,struct vmem_cell *);
-	void	(*ciolib_window)		(int,int,int,int);
-	int		(*ciolib_cputs)			(const char *);
-	int		(*ciolib_setfont)		(int font, int force, int font_num);
-#endif
-	int 	*_wscroll;
-	int		*puttext_can_move;
-	int		*hold_update;
-	void	*extra;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CIOLIBEXPORT struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation);
-CIOLIBEXPORT char* cterm_write(struct cterminal *cterm, const void *buf, int buflen, char *retbuf, size_t retsize, int *speed);
-CIOLIBEXPORT int cterm_openlog(struct cterminal *cterm, char *logfile, int logtype);
-CIOLIBEXPORT void cterm_closelog(struct cterminal *cterm);
-CIOLIBEXPORT void cterm_end(struct cterminal *cterm, int free_fonts);
-CIOLIBEXPORT void cterm_clearscreen(struct cterminal *cterm, char attr);
-CIOLIBEXPORT void cterm_start(struct cterminal *cterm);
-void cterm_gotoxy(struct cterminal *cterm, int x, int y);
-void setwindow(struct cterminal *cterm);
-void cterm_clreol(struct cterminal *cterm);
-void cterm_scrollup(struct cterminal *cterm);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/cterm.txt b/ciolib/cterm.txt
deleted file mode 100644
index f045623..0000000
--- a/ciolib/cterm.txt
+++ /dev/null
@@ -1,1283 +0,0 @@
-$Id: cterm.txt,v 1.79 2020/04/28 19:39:13 deuce Exp $
-
-CTerm terminal characteristics:
-------------------------------
-
-End of line behaviour (wrapping):
-The cursor is moved to the first character of the next line
-as soon as a character is written to the last column of the
-current line, not on the next character.  A tab will wrap
-to the next line only if the current cursor position is the
-last character on the line.
-
-I'm often asked why I don't use VT semantics for wrapping.
-The primary reason is that the person asking almost certainly
-doesn't know what the VT semantics are, they just want
-SyncTERM to behave the same as some other terminal they like.
-
-Not only have the VT semantics never been properly
-implemented in any terminal, they even varied between
-different actual hardware VT terminals.  Luckily, everything
-is on the internet now, so you can see the details and results
-here: https://github.com/mattiase/wraptest
-
-Control characters:
-
-0x00 - NUL:
-	In doorway mode, indicates that the next character is
-	a literal character.  The IBM CP437 character will
-	be displayed.  This allows ESC and other control
-	characters to be placed on the screen.
-
-0x07 - BEL:
-	Beep
-
-0x08 - BS:
-	Non-destructive backspace.  Moves cursor position to
-	the previous column unless the current column is the
-	first, in which case no operation is performed.
-
-0x09 - HT:
-	Moves to the next horizontal tab stop.  Does not overwrite
-	any characters in between.  If there are no tab stops left
-	in the line, moves to the first position of the next line.
-	If the starting position is on the last line, will perform
-	a scroll, filling the new line at bottom with the current
-	attribute.
-
-0x0A - LF:
-	Move cursor position to same column of the next row.
-	If current row is the last row, scrolls the screen up
-	and fills the new row with the current attribute.
-
-0x0D - CR:
-	Move cursor position to column 1 of the current line
-
-Control Codes:
---------------
-
-Control codes are in the following format:
-ESC {'0' (ZERO) to '~'}
-	Legal combinations which are not handled are silently dropped.
-
-ESC E	Next Line (NEL)
-	Moves to the line home position of the next line.
-	(Same as CR LF)
-
-ESC H	Set Tab (HTS)
-	Sets a tab stop at the current column
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-ESC M	Reverse Line Feed (RI)
-	Move up one line
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-ESC P	Device Control String (DCS)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	Supported DCS string values:
-		"CTerm:Font:p1:<b64>"
-		Indicates the string is a loadable font. (CTerm 1.213)
-
-		p1 is a font slot number, which must be higher than the last
-		default defined font (See CSI sp D for list of predefined
-		fonts). <b64> is the base64 encoded font data.  Font size is
-		deduced from the size of the data.  This replaces the now
-		deprecated CSI = Ps1 ; Ps2 {
-
-
-		[ p1 [ ; p2 ] ] q
-		Defaults:  p1 = 0  p2 = 0
-		Indicates the string is a sixel sequence.
-
-		p1 selects the vertical height of a single pixel.  This
-		may be overridden by the raster attributes command, and
-		is deprecated.  Supported values
-		
-			Value      Vertical Size
-			-----      -------------
-			0,1,5,6    2 pixels
-			2          5 pixels
-			3,4        3 pixels
-			7,8,9      1 pixel
-
-		p2 indicates if unset sixels should be set to the current
-		background colour.  If p2 is 1, positions specified as 0
-		remain at their current colour.
-
-		Any additional parameters are ignored.
-
-		The rest of the string is made up of sixel data characters and
-		sixel control functions.  Sixel data characters are in the
-		rage of '?' (0x3f) to '~' (0x7e).  Each sixel data character
-		represents six vertical pixels.  The data is extracted by
-		subtracting 0x3f from the ASCII value of the character.
-		The least significant bit is the topmost pixel.
-
-                Sixel Control Functions
-                ! Pn X
-			Graphics Repeat Introducer
-			The character X is repeated Pn times.
-		" p1 ; p2 [ ; p3 [ ; p4 ] ]
-			Raster Attributes
-			p1 indicates the vertical size in pixels of each
-			sixel.  p2 indicates the horizontal size in pixels.
-			p3 and p4 define the height and width (in sixels)
-			respectively of a block to fill with the background
-			colour.  This block may not extend past the current
-			bottom of the screen.  If any pixel data characters
-			proceed this command, it is ignored.
-		# p1
-			Colour Select
-			Selects the current foreground colour from the
-			sixel palette.
-		# p1 ; p2 ; p3 ; p4 ; p5
-			Palette map
-			Defines sixel palette entry p1 and sets it as the
-			current foreground colour.  p2 specifies the colour
-			space to define the colour in, the only supported
-			value is 2.  p3, p4, and p5 specify the red, green,
-			and blue content as a percentage (0-100).
-		$
-			Graphics Carriage Return
-			Returns the active position to the left border of
-			the same sixel row.  Generally, one pass per colour
-			is used.  In passes after the first one, sixels
-			with a value of zero are not overwritten with the
-			background colour.
-		-
-			Graphics New Line
-			Moves the active position to the left border of the
-			next sixel row.
-
-
-		$ q pt
-		Request Status String (DECRQSS)
-
-		pt is the intermediate and/or final characters of a control
-		function to query the status of.  The terminal will send a
-		response in the format
-
-		DCS p1 $ r pt ST
-
-		p1 is 1 if the terminal supports querying the control
-		function and 0 if it does not.
-
-		pt is the characters in the control function except the CSI
-		characters.
-
-		Currently supported values of p1:
-
-		m	Request SGR parameters
-		r	Request top and bottom margins
-		s	Request left and right margins
-		t	Request height in lines
-		$|	Request width in columns
-		*|	Request height in lines
-
-
-		p1 [ ; p2 [ ; p3 ] ! z
-		Define Macro (DECDMAC)
-		Defaults: p2 = 0  p3 = 0
-		
-		Sets a macro to be replayed using CSI Pn * z
-
-		p1 is the macro number to set, and make be between 0 and
-		63 inclusive.
-
-		If p2 is zero, the macro numbered p1 will be deleted. If
-		p2 is one, all macros are deleted.
-		
-		If p3 is zero, the macro is defined using ASCII characters
-		(0x20 - 0x7e and 0xa0 - 0xff only) if p3 is one, the macro
-		is defined using hex pairs.
-		
-		When the macro is defined using hex pairs, a repeat
-		sequence may be included in the format of ! Pn ; D..D ;
-		Pn specifies the number of repeats (default of one instance)
-		D..D is the sequence of pairs to send Pn times.  The 
-		terminating ; may be left out if the sequence to be
-		repeated ends at the end of the string.
-
-ESC X	Start Of String (SOS)
-	As the above strings, but may contain any characters except
-	a Start Of String sequence or a String Terminator sequence.
-	The string is currently ignored.
-
-ESC \	String Terminator (ST)
-
-ESC ]	Operating System Command (OSC)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	Supported OSC values:
-		4;(pX;pY)...
-		Specifies one or more palette redefinitions.
-		pX is the palette index, and pY is the colour definition
-		Color format:
-			rgb:R/G/B
-			Where R, G, and B are a sequence of one to four
-			hex digits representing the value of the
-			red, green, and blue channels respectively.
-
-		SOURCE: xterm
-
-		104 [ ; Ps ... ]
-		Resets palette entry to default.  If the entire string
-		is "104", resets all colours.  Otherwise, only each index
-		separated by a semicolon is reset.
-
-		SOURCE: xterm
-
-ESC ^	Privacy Message (PM)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	The string is currently ignored.
-
-ESC _	Application Program String (APS)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	The string is currently ignored.
-
-ESC c	Reset to Initial State (RIS)
-	Resets all the terminal settings, clears the screen, and homes
-	the cursor.
-
-Control Sequences:
-------------------
-
-Control sequences start with the Control Sequence Introducer which is
-ESC [  CSI will be used to express this from now on.
-
-Control sequences are in the following format:
-CSI {'0' (ZERO) to '?'}{SPACE to '/'}{'@' to '~'}
-	There may be multiple characters from the {'0' (ZERO) to '?'}
-	and {SPACE to '/'} before the terminating {'@' to '~'} character.
-
-	Legal combinations not handled are silently dropped.
-	Illegal combinations are displayed.
-
-Sequence Parameters:
-	Parameters are expressed by the {'0' (ZERO) to '?'} character set.
-	Sequences which use parameters use decimal parameters separated by
-	a ';'.  The use of a ':' from the set is reserved.
-	If the parameter string begins with '<', '=', '>', or '?' then
-	this is a non-standard extension to the ANSI spec.
-
-	Pn          Indicates a single numeric parameter
-	Pn1 ; Pn2   Two numeric parameters
-	Pn...       Any number of numeric parameters
-	Ps          Single selective parameter
-	Ps1 ; Ps1   Two selective parameters
-	Ps...       Any numer of selective parameters
-
-	If a default is defined, the parameter is optional
-
-CSI Pn @ (ICH)
-	Insert Character(s)
-	Defaults: Pn = 1
-	Moves text from the current position to the right edge Pn characters
-	to the right, with rightmost characters going off-screen and the
-	resulting hole being filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP @ (SL)
-	Scroll Left
-	Defaults: Pn = 1
-	Shifts the contents of the screen left Pn columns(s) with
-	leftmost columns going off-screen and the resulting hole being
-	filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn A (CUU)
-	Cursor Up
-	Defaults: Pn = 1
-	Moves the cursor position up Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP A (SR)
-	Scroll Right
-	Defaults: Pn = 1
-	Shifts the contents of the screen right Pn columns(s) with
-	rightmost columns going off-screen and the resulting hole being
-	filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn B (CUD)
-	Cursor Down
-	Defaults: Pn = 1
-	Moves the cursor position down Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn C (CUF)
-	Cursor Right
-	Defaults: Pn = 1
-	Moves the cursor position right Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn D (CUB)
-	Cursor Left
-	Defaults: Pn = 1
-	Moves the cursor position left Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps1 ; Ps2 sp D (FNT)
-	Font Selection
-	Defaults: Ps1 = 0  Ps2 = 0
-	"sp" indicates a single space character.
-	Sets font Ps1 to be the one indicated by Ps2.  Currently four fonts are
-	supported.  Ps2 must be between 0 and 255.  Not all output types support
-	font selection.  Only X11 and SDL currently do.
-	Supported Ps1 values:
-		0  - Default font
-		1  - Font selected by the high intensity bit when CSI ? 31 h
-		     is enabled
-		2  - Font selected by the blink intensity bit when CSI ? 34 h
-		     is enabled
-		3  - Font selected by both the high intensity and blink bits
-		     when both CSI ? 31 h and CSI ? 34 h are enabled
-	Currently included fonts are:
-		0  - Codepage 437 English
-		1  - Codepage 1251 Cyrillic, (swiss)
-		2  - Russian koi8-r
-		3  - ISO-8859-2 Central European
-		4  - ISO-8859-4 Baltic wide (VGA 9bit mapped)
-		5  - Codepage 866 (c) Russian
-		6  - ISO-8859-9 Turkish
-		7  - haik8 codepage (use only with armscii8 screenmap)
-		8  - ISO-8859-8 Hebrew
-		9  - Ukrainian font koi8-u
-		10 - ISO-8859-15 West European, (thin)
-		11 - ISO-8859-4 Baltic (VGA 9bit mapped)
-		12 - Russian koi8-r (b)
-		13 - ISO-8859-4 Baltic wide
-		14 - ISO-8859-5 Cyrillic
-		15 - ARMSCII-8 Character set
-		16 - ISO-8859-15 West European
-		17 - Codepage 850 Multilingual Latin I, (thin)
-		18 - Codepage 850 Multilingual Latin I
-		19 - Codepage 885 Norwegian, (thin)
-		20 - Codepage 1251 Cyrillic
-		21 - ISO-8859-7 Greek
-		22 - Russian koi8-r (c)
-		23 - ISO-8859-4 Baltic
-		24 - ISO-8859-1 West European
-		25 - Codepage 866 Russian
-		26 - Codepage 437 English, (thin)
-		27 - Codepage 866 (b) Russian
-		28 - Codepage 885 Norwegian
-		29 - Ukrainian font cp866u
-		30 - ISO-8859-1 West European, (thin)
-		31 - Codepage 1131 Belarusian, (swiss)
-		32 - Commodore 64 (UPPER)
-		33 - Commodore 64 (Lower)
-		34 - Commodore 128 (UPPER)
-		35 - Commodore 128 (Lower)
-		36 - Atari
-		37 - P0T NOoDLE (Amiga)
-		38 - mO'sOul (Amiga)
-		39 - MicroKnight Plus (Amiga)
-		40 - Topaz Plus (Amiga)
-		41 - MicroKnight (Amiga)
-		42 - Topaz (Amiga)
-
-	Not all fonts are supported in all modes.  If a font is not supported
-	in the current mode, no action is taken, but there should be a
-	non-zero 'Font Selection result' value in the Font State Report.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn E (CNL)
-	Cursor Next Line
-	Defaults: Pn = 1
-	Moves the cursor to the first column of the line Pn down from the
-	current position. Attempting to move past the screen boundaries
-	stops the cursor at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn F (CPL)
-	Cursor Preceding Line
-	Defaults: Pn = 1
-	Moves the cursor to the first column of the row Pn up from the
-	current position.  Attempting to move past the screen boundaries
-	stops the cursor at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn G (CHA)
-	Cursor Character Absolute
-	Defaults: Pn = 1
-	Movies the cursor to column Pn of the current row.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn1 ; Pn2 H (CUP)
-	Cursor Position
-	Defaults: Pn1 = 1  Pn2 = 1
-	Moves the cursor to the Pn2th column of the Pn1th line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn I (CHT)
-	Cursor Forward Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the Pn-th next tab stop.
-	Basically the same as sending TAB Pn times.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps J (ED)
-	Erase in Page
-	Defaults: Ps = 0
-	Erases from the current screen according to the value of Ps
-	0 - Erase from the current position to the end of the screen.
-	1 - Erase from the current position to the start of the screen.
-	2 - Erase entire screen.  As a violation of ECMA-048, also moves
-	    the cursor to position 1/1 as a number of BBS programs assume
-	    this behaviour.
-	Erased characters are set to the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE BANSI.TXT
-
-CSI Ps K (EL)
-	Erase in Line
-	Defaults: Ps = 0
-	Erases from the current line according to the value pf Ps
-	0 - Erase from the current position to the end of the line.
-	1 - Erase from the current position to the start of the line.
-	2 - Erase entire line.
-	Erased characters are set to the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn L (IL)
-	Insert Line(s)
-	Defaults: Pn = 1
-	Inserts Pn lines at the current line position.  The current line and
-	those after it are scrolled down and the new empty lines are filled
-	with the current attribute.  If the cursor is not currently inside
-	the scrolling margins, has no effect.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn M (DL)
-	Delete Line(s) / "ANSI" Music
-	Defaults: Pn = 1
-	Deletes the current line and the Pn - 1 lines after it scrolling the
-	first non-deleted line up to the current line and filling the newly
-	empty lines at the end of the screen with the current attribute.
-	If the cursor is not currently inside the scrolling margins, has no
-	effect.
-	If "ANSI" Music is fully enabled (CSI = 2 M), performs "ANSI" music
-	instead.
-	See "ANSI" MUSIC section for more details.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE: BANSI.TXT
-
-CSI = Ps M (CTSAM)
-	CTerm Set ANSI Music
-	NON-STANDARD EXTENSION.
-	Defaults:  Ps = 0
-	Sets the current state of ANSI music parsing.
-	0 - Only CSI | will introduce an ANSI music string.
-	1 - Both CSI | and CSI N will introduce an ANSI music string.
-	2 - CSI |, CSI N, and CSI M will all introduce an ANSI music string.
-	    In this mode, Delete Line will not be available.
-
-	SOURCE: CTerm only.
-
-CSI N (BCAM)
-	BananaCom ANSI Music
-	"ANSI" Music / Not implemented.
-	If "ANSI" Music is set to BananaCom (CSI = 1 M) or fully enabled
-	(CSI = 2 M) performs "ANSI" music.  See "ANSI" MUSIC section for more
-	details.
-
-	SOURCE: BANSI.TXT
-
-CSI Pn P (DCH)
-	Delete Character
-	Defaults: Pn = 1
-	Deletes the character at the current position by shifting all
-	characters from the current column + p1 left to the current column.
-	Opened blanks at the end of the line are filled with the current
-	attribute.  If the cursor is not currently inside the scrolling
-	margins, has no effect.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn S (SU)
-	Scroll Up
-	Defaults: Pn = 1
-	Scrolls all text on the screen up Pn lines.  New lines emptied at the
-	bottom are filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI ? Ps1 ; Ps2 S (XTSRGA)
-	XTerm Set or Request Graphics Attribute
-	If Ps1 is 2, and Ps2 is 1, replies with the graphics screen information
-	in the following format: CSI ? 2 ; 0 ; Px ; Py S
-	Where Px is the width of the screen in pixels and Py is the height.
-
-	SOURCE: XTerm
-
-CSI Pn T (SD)
-	Scroll Down
-	Defaults: Pn = 1
-	Scrolls all text on the screen down Pn lines.  New lines emptied at the
-	top are filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI U
-	NON-STANDARD (Disabled in current code)
-	Clear screen with default attribute.
-	This code is *supposed* to go to the "next page" according to the
-	ANSI/ECMA specs with CSI V going to "previous page"
-
-	SOURCE: BANSI.TXT
-
-CSI Pn X (ECH)
-	Erase Character
-	Defaults: Pn = 1
-	Erase p1 characters starting at the current character.  Will not erase
-	past the end of line.
-	Erased characters are set to the current attribute.
-	This can erase across scroll margins.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn Y (CVT)
-	Cursor Line Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the Pn-th next tab stop.
-	Basically the same as sending TAB Pn times.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn Z (CBT)
-	Cursor Backward Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the p1th preceding tab stop.  Will not go past the
-	start of the line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn ` (HPA)
-	Character Position Absolute
-	Defaults: Pn = 1
-	Move the cursor to the specified position on the current row.
-	Will not go past the end of the line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn a (HPR)
-	Cursor Position Forward
-	Defaults: Pn = 1
-	Moves the cursor position forward Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn b (REP)
-	Repeat
-	Defaults: Pn = 1
-	Repeats the previous graphic character Pn times.  Will not repeat
-	escape sequences.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps c (DA)
-	Device Attributes
-	Defaults: Ps = 0
-	If Ps is 0, CTerm will reply with the sequence:
-        CSI = 67;84;101;114;109;pN c
-	64;84;101;114;109 is the ASCII values of the "CTerm" string.  pN is the
-	CVS revision ID of CTerm with dots converted to semi-colons
-	(e.g. "1;156").  Use the CVS revision to detect if a specific feature
-	is available.  If you are adding features to a forked version of cterm,
-	please do so by	adding an extra parameter to the end, not by
-	incrementing any existing one!
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI < Ps c (CTDA)
-	CTerm Device Attributes
-
-	Defaults: Ps = 0
-	If Pn is 0, CTerm will reply with the sequence:
-        CSI < 0 ; Ps... c
-
-	Possible values for Ps:
-	1 - Loadable fonts are availabe via Device Control Strings
-	2 - Palette entries may be modified via an Operating System Command
-	    string
-	3 - Pixel operations are supported (currently, sixel graphics)
-	4 - The current font may be selected via CSI Ps1 ; Ps2 sp D
-	5 - More than the standard 16 colours may by configured via
-	    Operating System Command strings
-	6 - Extended palette is available
-	7 - Mouse is available
-
-CSI Ps d (VPA)
-	Line Position Absolute
-	Defaults: Ps = 1
-	Moves to row specified by Ps.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP d (TSR)
-	Tab Stop Remove
-	Defaults: None
-	Removes a tab stop at postion Pn.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn e (VPR)
-	Line Position Forward
-	Defaults: Ps = 1
-	Moves forward Ps rows.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn1 ; Pn2 (HVP)
-	Character and Line Position
-	Defaults: Pn1 = 1  Pn2 = 1
-	Moves the cursor to the Pn2th column of the Pn1th line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps g (TBC)
-	Tabulation Clear
-	Defaults: Pn = 0
-	Deletes tab stops according to the values of P1:
-	0 - Deletes tab stop at current position.
-	3 - Deletes all tab stops.
-	5 - Deletes all tab stops.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI = 255 h (BCSET)
-	NON-STANDARD EXTENSION
-	Enable DoorWay Mode
-
-	SOURCE: BANSI.TXT
-
-CSI ? Ps... h (DECSET)
-	NON-STANDARD EXTENSION
-	Set Mode
-	Sets one or more mode.  The following modes are supported:
-
-	6 -  Enable origin mode.
-	     In this mode, position parameters are relative to the top left of
-	     the scrolling region, not the screen.  Defaults to reset.
-	     SOURCE: Digital VT102 User Guide
-	7 -  Enable auto wrap
-	     This is the normal mode in which a write to the last column of a
-	     row will move the cursor to the start of the next line triggering
-	     a scroll if required to create a new line.  Defaults to set.
-	     SOURCE: Digital VT102 User Guide
-	9 -  X10 compatible mouse reporting
-	     Mouse button presses will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	25 - Display the cursor.  Defaults to set.
-	     SOURCE: "Installing and Using the VT320 Video Terminal"
-	31 - Enable bright alt character set
-	     With this mode set, the bright (1) graphic rendition selects
-	     characters from an alternate character set.  Defaults to reset.
-	32 - Bright Intensity Disable
-	     This makes the bright intensity bit not control the intensity.
-	     Mostly for use with CSI ? 31 h to permit fonts in the same
-	     colours.  Defaults to reset.
-	33 - Blink to Bright Intensity Background
-	     With this mode set, the blink (5,6) graphic renditions cause the
-	     background colour to be high intensity rather than causing blink.
-	     Defaults to reset.
-	34 - Enable blink alt character set
-	     With this mode set, the blink (5, 6) graphic renditions selects
-	     characters from an alternate character set.  Defaults to reset
-	35 - Blink Disabled
-	     This makes the blink (5, 6) graphic renditions not cause the
-	     character to blink.  Mostly for use with CSI ? 34 h to permit
-	     fonts to be used without blinking.  Defaults to reset.
-	69 - DEC Left Right Margin Mode enabled
-	     Enables CSI s to set the left/right margins, and disables CSI s
-	     from saving the current cursor position.
-	80 - Sixel Scrolling Enabled
-	     When this is set, the sixel active position begins in the
-	     upper-left corner of the currently active text position.
-	     When the sixel active position reaches the bottom of the
-	     page, the page is scrolled up.  At the end of the sixel
-	     string, a sixel newline is appended, and the current cursor
-	     position is the one in which the bottom sixel is in.
-	     Defaults to set.
-	     SOURCE: VT330/VT340 Programmer Reference Manual
-	1000 -  Normal tracking mode mouse reporting
-	     Mouse button presses will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	1001 -  Highlight tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1002 -  Button-event tracking mode mouse reporting
-	     Mouse button presses and movement when a button is pressed
-	     will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     32 is added to the button number for movement events.
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	1003 -  Any-event tracking mode mouse reporting
-	     Mouse button presses and movement
-	     will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     32 is added to the button number for movement events.
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     If no button is pressed, it acts as though button 0 is.
-	     SOURCE: xterm
-	1004 -  Focus-event tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1005 -  UTF-8 encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1006 -  SGR encoded extended coordinates
-	     Instead of the CSI M method, the format of mouse reporting
-	     is change to CSI < Pb ; Px ; Py M for presses and
-	     CSI < Pb ; Px ; Py m for releases.
-	     Instead of CSI M
-	     Px and Py are one-based.
-	     Pb remains the same (32 added for movement)
-	     Button 3 is not used for release (separate code)
-	     SOURCE: xterm
-	1007 -  Alternate scroll mode
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1015 -  URXVT encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-
-CSI Pn j (HPB)
-	Character Position Backward
-	Defaults: Pn = 1
-	Moves the cursor position left Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn k (VPB)
-	Line Position Backward
-	Defaults: Pn = 1
-	Moves the cursor position up Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI = 255 l (BCRST)
-	NON-STANDARD EXTENSION
-	Disable DoorWay Mode
-
-	SOURCE: BANSI.TXT
-
-CSI ? Ps... l (DECRST)
-	NON-STANDARD EXTENSION
-	Reset Mode
-	Resets one or more mode.  The following modes are supported:
-
-	6 -  Origin Mode
-	     With this mode reset, position parameters are relative to the
-	     top left of the screen, not the scrolling region.  Defaults
-	     to reset.
-	     SOURCE: Digital VT102 User Guide
-	7 -  Disable auto wrap
-	     Resetting this mode causes a write to the last column of a to
-	     leave the cursor where it was before the write occurred,
-	     overwriting anything which was previously written to the same
-	     position.
-	     SOURCE: Digital VT102 User Guide
-	9 -  Disable X10 compatible mouse reporting
-	25 - Hide the cursor.  Defaults to set.
-	     SOURCE: "Installing and Using the VT320 Video Terminal"
-	31 - Disable bright alt character set
-	     With this mode reset, the bright (1) graphic rendition does not
-	     select an alternative font.  Defaults to reset.
-	32 - Bright Intensity Enable
-	     When reset, bright intensity graphics rendition behaves normally.
-	     Defaults to reset.
-	33 - Disable Blink to Bright Intensity Background
-	     With this mode set, the blink (5,6) graphic renditions do not
-	     affect the background colour.  Defaults to reset.
-	34 - Disable blink alt character set
-	     With this mode reset, the blink (5, 6) graphic renditions do not
-	     select characters from an alternate character set.  Defaults to
-	     reset.
-	35 - Blink Enable
-	     With this mode reset, the blink (5,6) graphic renditions behave
-	     normally (cause the characters to blink).  Defaults to reset.
-	69 - DEC Left Right Margin Mode disabled
-	     Disables CSI s from setting the left/right margins, and changes
-	     it back to saving the current cursor position.  The current
-	     left/right margins are maintained.
-	80 - Sixel Scrolling Disabled
-	     When this is reset, the sixel active position begins in the
-	     upper-left corner of the page.  Any commands that attempt to
-	     advance the sixel position past the bottom of the page are
-	     ignored.  At the end of the sixel string, the current cursor
-	     position is unchanged from where it was when the sixel string
-	     started.  Defaults to set.
-	     SOURCE: VT330/VT340 Programmer Reference Manual
-	1000 -  Disable Normal tracking mode mouse reporting
-	     SOURCE: xterm
-	1001 -  Disable Highlight tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1002 -  Disable Button-event tracking mode mouse reporting
-	     SOURCE: xterm
-	1003 -  Disable Any-event tracking mode mouse reporting
-	     SOURCE: xterm
-	1004 -  Disable Focus-event tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1005 -  Disable UTF-8 encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1006 -  Disable SGR encoded extended coordinates
-	     SOURCE: xterm
-	1007 -  Disable Alternate scroll mode
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1015 -  Disable URXVT encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-
-CSI Ps... m (SGR)
-	Select Graphic Rendition
-	Defaults: Ps1 = 0
-	Sets or clears one or more text attributes.  Unlimited parameters are
-	supported and are applied in received order.  The following are
-	supported:
-	                                        Blink Bold FG BG TF TB (Modified)
-	0 -  Default attribute, white on black     X    X  X  X  X  X
-	1 -  Bright Intensity                           X        X
-	2 -  Dim intensity                              X        X
-	5 -  Blink (By definition, slow blink)     X                X
-	6 -  Blink (By definition, fast blink)     X                X
-	     NOTE: Both blinks are the same speed.
-	7 -  Negative Image - Reverses FG and BG           X  X  X  X
-	8 -  Concealed characters, sets the                X     X  X
-	     foreground colour to the background
-	     colour.
-	22 - Normal intensity                           X        X
-	25 - Steady (Not blinking)                 X                X
-	27 - Positive Image - Reverses FG and BG           X  X  X  X
-	     NOTE: This should be a separate
-	           attribute than 7 but this
-	           implementation makes them equal
-	30 - Black foreground                              X     X
-	31 - Red foreground                                X     X
-	32 - Green foreground                              X     X
-	33 - Yellow foreground                             X     X
-	34 - Blue foreground                               X     X
-	35 - Magenta foreground                            X     X
-	36 - Cyan foreground                               X     X
-	37 - White foreground                              X     X
-	38 - Extended Foreground (see notes)                     X
-	39 - Default foreground (same as white)	           X     X
-	40 - Black background                                 X     X
-	41 - Red background                                   X     X
-	42 - Green background                                 X     X
-	43 - Yellow background                                X     X
-	44 - Blue background                                  X     X
-	45 - Magenta background                               X     X
-	46 - Cyan background                                  X     X
-	47 - White background                                 X     X
-	48 - Extended Background (see notes)                        X
-	49 - Default background (same as black)               X     X
-
-	All others are ignored.
-
-	Blink indicates the blink bit.
-	Bold indicates the bold bit.
-	FG indicates the foreground colour.
-	BG indicates the background colour.
-	TF indicates that the Tru Colour foreground is changed.
-	TB indicates that the Tru Colour background is changed.
-
-	NOTE: For 38 and 48, two additional formats are supported, a palette
-	selection and a direct colour selection.
-
-	For palette selection, an additional two parameters are required
-	after that value.  They are considered part of the 38/48, not separate
-	values.  The first additional parameter must be a 5.  The second
-	additional parameter specified the palette index to use.  To set the
-	foreground to orange, and the background to a fairly dark grey, you
-	would send:
-	CSI 38 ; 5 ; 214 ; 48 ; 5 ; 238 m
-
-	The default palette is the XTerm 256-colour palette.  See here:
-	https://jonasjacek.github.io/colors/
-
-	For direct colour selection, an additional four parameters are required
-	after that value.  They are considered part of the 38/48, not separate
-	values.  The first additional parameter must be a 2.  The second,
-	third, and fourth specify the R/G/B values respectively. CTerm handles
-	this with an internal temporary palette, so scrollback may not have the
-	correct colours.  The internal palette is large enough for all cells in
-	a 132x60 screen to have unique foreground and background colours
-	though, so the current screen should always be as expected.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE: XTerm
-
-CSI Ps n (DSR)
-	Device Status Report
-	Defaults: Ps = 0
-	A request for a status report.  CTerm handles the following three
-	requests:
-	5	- Request a DSR
-		  CTerm will always reply with CSI 0 n indicating 
-		  "ready, no malfunction detected"
-	6	- Request active cursor position
-		  CTerm will reply with CSI y ; x R where y is the current line
-		  and x is
-		  the current row.
-	255	- NON-STANDARD EXTENSION (BCDSR)
-		  Replies as though a CSI 6 n was received with the cursor in
-		  the bottom right corner.  i.e.: Returns the terminal size as
-		  a position report.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-		(parameters 5 and 6 only)
-	SOURCE: BANSI.TXT (parameter 255)
-
-CSI = Ps n (CTSMRR)
-	NON-STANDARD EXTENSION
-	State/Mode Request/Report
-	Defaults: Ps = 1
-
-	When Ps is 1, CTerm will respond with a Font State Report of the form
-	CSI = 1 ;pF ;pR ;pS0 ;pS1 ;pS2 ;pS3 n
-	pF is the first available loadable-font slot number
-	pR is the result of the previous "Font Selection" request:
-		0 = successful font selection
-		1 = failed font selection
-		99 = no font selection request has been received
-	pS0 - pS3 contain the font slots numbers of previously successful
-	"Font Selection" requests into the 4 available alternate-font
-	style/attribute values:
-		pS0 - normal attribute font slot
-		PS1 - high intensity foreground attribute font slot
-		PS2 - blink attribute font slot
-		PS3 - high intensity blink attribute font slot
-
-	When Ps is 2, CTerm will respond with a Mode Report of the form
-	CSI = 2[;pN [;pN] [...]] n
-	Where pN represent zero or more mode values set previously
-	(e.g. via CSI ? pN h).	Mode values cleared (disabled via CSI ? pN l)
-	will not be included in the set of values returned in the Mode
-	Report.  If no modes are currently set, an empty parameter will be
-	included as the first and only pN.
-
-	When Ps is 3, CTerm will respond with a Mode Report of the form
-	CSI = 3 ; pH ; pW n
-	Where pH is the height of a character cell in pixels, and pW is
-	the width of a character cell in pixels.
-
-	SOURCE: CTerm only.
-
-CSI ? Ps [ ; Pn ] n (DECDSR)
-
-	When Ps is 62 (DECMSR) and there is no Pn, CTerm will respond
-	with a Mode Report of the form
-	CSI 32767 * {
-	This indicates that 524,272 bytes are available for macro storage.
-	This is not actually true, SyncTERM will use all available memory
-	for macro storage, but some software checks this value, and some
-	parsers don't allow more than INT16_MAX parameter values.
-
-	When Ps is 63 (DECCKSR) Pn defaults to 1, and CTerm will respond
-	with a checksum of the defined macros in the form
-	DCS Pn ! xxxx ST
-	Where xxxx is the hex checksum.
-
-	SOURCE: VT420
-
-CSI Pn1 ; Pn2 r (DECSTBM)
-	NON-STANDARD EXTENSION.
-	Set Top and Bottom Margins
-	Defaults: Pn1 = 1
-	          Pn2 = last line on screen
-	Selects top and bottom margins, defining the scrolling region. Pn1 is
-	the line number of the first line in the scrolling region. Pn2 is the
-	line number of the bottom line.
-	
-	SOURCE: xterm
-
-CSI Ps1 ; Ps2 * r (DECSCS)
-	NON-STANDARD EXTENSION.
-	Set the output emulation speed (Select Communication Speed).
-	If Ps1 or Ps2 are omitted, causes output speed emulation to stop
-	Ps1 may be empty.
-	Sequence is ignored if Ps1 is not empty, 0, or 1.
-	The value of Ps2 sets the output speed emulation as follows:
-
-	Value		Speed
-	-----		-----
-	empty, 0	Unlimited
-	1		300
-	2		600
-	3		1200
-	4		2400
-	5		4800
-	6		9600
-	7		19200
-	8		38400
-	9		57600
-	10		76800
-	11		115200
-
-	SOURCE: VT4xx Specification from http://www.vt100.net/
-
-CSI ? Ps... s (CTSMS)
-	NON-STANDARD EXTENSION
-	Save Mode Setting
-	Saves the current mode states as specified by CSI ? l and CSI ? h.  If
-	Ps1 is omitted, saves all such states.  If one or more values of Ps is
-	included, saves only the specified states (arguments to CSI ? l/h).
-
-	SOURCE: SyncTERM only
-
-CSI Pn1 ; Pn2 s (DECSLRM)
-        (Only when DEC Left Right Margin Mode  - 69 - is enabled)
-	NON-STANDARD EXTENSION.
-	Set Left and Right Margins
-	Defaults: Pn1 = 1
-	          Pn2 = last column on screen
-	If either Pn1 or Pn2 is zero, the current setting is retained.
-	Selects left and right margins, defining the scrolling region. Pn1 is
-	the column number of the first column in the scrolling region. Pn2 is
-	the column number of the right column.
-
-	SOURCE: xterm
-
-CSI s (SCOSC)
-        (Only when DEC Left Right Margin Mode  - 69 - is disabled)
-	NON-STANDARD EXTENSION
-	Save Current Position
-	Saves the current cursor position for later restoring with CSI u
-	although this is non-standard, it's so widely used in the BBS world
-	that any terminal program MUST implement it.
-
-	SOURCE: ANSI.SYS
-
-CSI Ps ; Pn1 ; Pn2 ; Pn3 t (CT24BC)
-	NON-STANDARD EXTENSION
-	Select a 24-bit colour
-	If Ps is 0, sets the background colour.
-	If Ps is 1, sets the foreground colour.
-	Pn1, Pn2, Pn3 contains the RGB value to set.
-	CTerm handles this with an internal temporary palette, so scrollback
-	may not have the correct colours.  The internal palette is large
-	enough for all cells in a 132x60 screen to have unique foreground
-	and background colours though, so the current screen should always
-	be as expected.
-
-CSI ? Ps...  u (CTRMS)
-	NON-STANDARD EXTENSION
-	Restore Mode Setting
-	Saves the current mode states as specified by CSI ? l and CSI ? h.  If
-	Ps is omitted, saves all such states.  If one or more values of Ps is
-	included, restores all the specified states (arguments to CSI ? l/h)
-
-	SOURCE: SyncTERM only
-
-CSI u (SCORC)
-	NON-STANDARD EXTENSION
-	Restore Cursor Position
-	Move the cursor to the last position saved by CSI s.  If no position
-	has been saved, the cursor is not moved.
-
-	SOURCE: ANSI.SYS
-
-CSI 2 $ w (DECTABSR)
-	Request Tab Stop Report
-	Requests a list of tab stops.
-	The list is in the form:
-	
-	DCS 2 $ u Pt ST
-	
-	The string Pt is a list of tab stops separated by /s.
-	
-	SOURCE: VT320
-
-CSI Pn1 ; Ps ; Pn2 ; Pn3 ; Pn4 ; Pn5 * y (DECRQCRA)
-	Request Checksum of Rectangular Area
-	Returns a checksum for the specified rectangular area.
-	Pn1 is an ID that is returned in the response.
-	Ps MUST be 1
-	Pn2 specifies the top row of the rectangle
-	Pn3 specifies the left column of the rectangle
-	Pn4 specifies the bottom row of the rectangle
-	Pn5 specifies the right column of the rectangle
-	The return value is in the format of DCS Pn1 ! ~ xxxx ST
-	Where xxxx is the hex value of the checksum.
-
-	Source: VT420
-
-CSI Pn * z (DECINVM)
-	Invoke Macro
-	Invokes a macro.
-	Pn specifies the macro number.  If Pn is not 0..63, no action is
-	taken.
-
-CSI = Ps1 ; Ps2 { (CTOSF)
-	NON-STANDARD EXTENSION (Deprecated)
-	Defaults:  Ps1 = 255  Ps2 = 0
-	Indicates that a font block is following.
-	Ps1 indicates the font slot to place the loaded font into.  This must
-	be higher than the last default defined font (See CSI sp D for list
-	of predefined fonts)  Ps2 indicates font size according to the
-	following table:
-		0 - 8x16 font, 4096 bytes.
-		1 - 8x14 font, 3584 bytes.
-		2 - 8x8 font, 2048 bytes.
-
-	The DCS font string should be used instead as of CTerm 1.213
-
-	SOURCE: CTerm only.
-
-"ANSI" Music
-============
-This is the place where the BBS world completely fell on it's face in ANSI
-usage.  A programmer with either TeleMate or QModem (the first two programs to
-support "ANSI" music as far as I can tell) decided they needed a method of
-playing music on a BBS connection.  They decided to add an "unused" ANSI code
-and go their merry way.  Since their product didn't implement CSI M (Delete
-line) they assumed it was unused and blissfully broke the spec.  They defined
-"ANSI" music as:
-CSI M <music string> 0x0e
-
-They used a subset of IBM BASICs PLAY statement functionality for ANSI music
-strings which often start with "MF" or "MB", so the M after the CSI was often
-considered as part of the music string.  You would see things such as:
-CSI MFABCD 0x0e and the F would not be played as a note.  This just added
-further confusion to the mess.
-
-Later on, BananaCom realized the conflict between delete line and music, so
-they added *another* broken code CSI N (Properly, erase in field... not
-implemented in many BBS clients) which was to provide an "unbroken" method of
-playing music strings.  They also used CSI Y to disambiguate delete line, CSI Y
-is supposed to be a vertical tab (also not implemented in very many clients).
-BananaCom also introduced many more non-standard and standard-breaking control
-sequences which are not supported by CTerm.
-
-CTerm has further introduced a standard compliant ANSI music introducer CSI |
-
-By default, CTerm allows both CSI N and CSI | to introduce a music string.
-Allowed introducers are set by CSI = p1 M as defined above.
-
-The details of ANSI music then are as follows:
-The following characters are allowed in music strings:
-"aAbBcCdDeEfFgGlLmMnNoOpPsStT0123456789.-+#<> "
-If any character not in this list is present, the music string is ignored as
-is the introducing code.
-
-If the introducing code is CSI M the first char is examined, and if it is
-a one of "BbFfLlSs" or if it is "N" or "n" and is not followed by a decimal
-digit, then the music string is treated as though an M is located in front
-of the first character.
-
-The music string is then parsed with the following sequences supported:
-Mx sets misc. music parameters where x is one of the following:
-	F - Plays music in the foreground, waiting for music to complete
-	    playing before more characters are processed.
-	B - Play music in the background, allowing normal processing to
-	    continue.
-	N - "Normal" not legato, not staccato
-	L - Play notes legato
-	S - Play notes staccato
-T### Sets the tempo of the music where ### is one or more decimal digits.
-	If the decimal number is greater than 255, it is forced to 255.
-	If it is less than 32, it is forced to 32.  The number signifies
-	quarter notes per minute.
-	The default tempo is 120.
-O### Sets the octave of the music where ### is one or more decimal digits.
-	If the decimal number is greater than 6, it is forced to 6.
-	The default octave is 4.
-N### Plays a single note by number.  Valid values are 0 - 71.  Invalid
-	values are played as silence.  Note zero is C in octave 0.
-	See following section for valid note modifiers.
-A, B, C, D, E, F, G, or P Plays the named note or pause from the current
-	octave.  An "Octave" is the rising sequence of the following notes:
-	C, C#, D, D#, E, F, F#, G, G#, A, A#, B
-	This is contrary to normal music terminology.
-	The special note "P" is a pause.
-	Notes may be followed by one or more modifier characters which
-	are applied in order.  If one overrides a previous one, the last
-	is used.  The valid modifiers are:
-	+ - Sharp.  The next highest semitone is played.
-		Each sharp character will move up one semitone, so "C++"
-		is equivalent to "D".
-	# - Sharp.  The next highest semitone is played.
-		Each sharp character will move up one semitone, so "C##"
-		is equivalent to "D".
-	- - Flat.  The next lowest semitone is played.
-		Each flat character will move down one semitone, so "D--"
-		is equivalent to "C".
-	. - Duration is 1.5 times what it would otherwise be.  Dots are not
-		cumulative, so "C.." is equivalent to "C."
-	### - Notelength as a reciprocal of the fraction of a whole note to
-		play the note for.  For example, 4 would indicate a 1/4 note.
-		The default note length is 4.
-L### Set the notelength parameter for all following notes which do not have
-	one specified (ie: override the quarter-note default)  Legal note
-	lengths are 1-64 indicating the reciprocal of the fraction (ie: 4
-	indicates a 1/4 note).
-<	Move the next lowest octave.
-	Octave cannot go above six or below zero.
->	Move to the next highest octave.
-	Octave cannot go above six or below zero.
-
-The lowest playable character is C in octave zero.  The frequencies for the
-six C notes for the seven octaves in rising order are:
-65.406, 130.810, 261.620, 523.250, 1046.500, 2093.000, 4186.000
-
-Purists will note that the lower three octaves are not exactly one half of
-the next higher octave in frequency.  This is due to lost resolution of
-low frequencies.  The notes *sound* correct to me.  If anyone can give me
-an excellent reason to change them (and more correct integer values for all
-notes) I am willing to do that assuming the notes still sound "right".
-
-!!!PLEASE NOTE!!! If you are playing some ANSI Music then ask the user if they
-heard it, ALWAYS follow it with an 0x0f 0x0e is the shift lock character which
-*will* cause people with anything but an ANSI-BBS terminal (ie: *nix users
-using the bundled telnet app) to have their screen messed up.  0x0f "undoes"
-the 0x0e.
diff --git a/ciolib/curs_cio.c b/ciolib/curs_cio.c
deleted file mode 100644
index 0188360..0000000
--- a/ciolib/curs_cio.c
+++ /dev/null
@@ -1,1354 +0,0 @@
-/* $Id: curs_cio.c,v 1.60 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <langinfo.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "gen_defs.h"	/* xpdev, for BOOL/TRUE/FALSE */
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "curs_cio.h"
-#include "vidmodes.h"
-#include "utf8_codepages.h"
-
-static unsigned char curs_nextgetch=0;
-
-static int lastattr=0;
-static long mode;
-static int vflags=0;
-static int suspended = 0;
-static int mpress = 0;
-void curs_resume(void);
-
-static int default_font=0;
-static int current_font[4]={0, 0, 0, 0};
-
-static short curses_color(short color)
-{
-	switch(color)
-	{
-		case 0 :
-			return(COLOR_BLACK);
-		case 1 :
-			return(COLOR_BLUE);
-		case 2 :
-			return(COLOR_GREEN);
-		case 3 :
-			return(COLOR_CYAN);
-		case 4 :
-			return(COLOR_RED);
-		case 5 :
-			return(COLOR_MAGENTA);
-		case 6 :
-			return(COLOR_YELLOW);
-		case 7 :
-			return(COLOR_WHITE);
-		case 8 :
-			return(COLOR_BLACK+8);
-		case 9 :
-			return(COLOR_BLUE+8);
-		case 10 :
-			return(COLOR_GREEN+8);
-		case 11 :
-			return(COLOR_CYAN+8);
-		case 12 :
-			return(COLOR_RED+8);
-		case 13 :
-			return(COLOR_MAGENTA+8);
-		case 14 :
-			return(COLOR_YELLOW+8);
-		case 15 :
-			return(COLOR_WHITE+8);
-	}
-	return(0);
-}
-
-static int _putch(unsigned char ch, BOOL refresh_now, int cp)
-{
-	int	ret;
-	cchar_t	cha;
-	wchar_t wch[2] = {0};
-	attr_t	attr = 0;
-	short	cpair = 0;
-
-	attr_get(&attr, &cpair, NULL);
-	attr &= ~A_COLOR;
-	switch (mode) {
-		case CIOLIB_MODE_CURSES_ASCII:
-			switch(ch)
-			{
-				case 30:
-					wch[0]=ACS_UARROW & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 31:
-					wch[0]=ACS_DARROW & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 176:
-					wch[0]=ACS_CKBOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 177:
-					wch[0]=ACS_BOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 178:
-					wch[0]=ACS_BOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 179:
-					wch[0]=ACS_SBSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 180:
-					wch[0]=ACS_SBSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 181:
-					wch[0]=ACS_SBSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 182:
-					wch[0]=ACS_DBDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 183:
-					wch[0]=ACS_BBDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 184:
-					wch[0]=ACS_BBSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 185:
-					wch[0]=ACS_DBDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 186:
-					wch[0]=ACS_DBDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 187:
-					wch[0]=ACS_BBDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 188:
-					wch[0]=ACS_DBBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 189:
-					wch[0]=ACS_DBBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 190:
-					wch[0]=ACS_SBBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 191:
-					wch[0]=ACS_BBSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 192:
-					wch[0]=ACS_SSBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 193:
-					wch[0]=ACS_SSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 194:
-					wch[0]=ACS_BSSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 195:
-					wch[0]=ACS_SSSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 196:
-					wch[0]=ACS_BSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 197:
-					wch[0]=ACS_SSSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 198:
-					wch[0]=ACS_SDSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 199:
-					wch[0]=ACS_DSDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 200:
-					wch[0]=ACS_DDBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 201:
-					wch[0]=ACS_BDDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 202:
-					wch[0]=ACS_DDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 203:
-					wch[0]=ACS_BDDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 204:
-					wch[0]=ACS_DDDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 205:
-					wch[0]=ACS_BDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 206:
-					wch[0]=ACS_DDDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 207:
-					wch[0]=ACS_SDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 208:
-					wch[0]=ACS_DSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 209:
-					wch[0]=ACS_BDSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 210:
-					wch[0]=ACS_BSDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 211:
-					wch[0]=ACS_DSBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 212:
-					wch[0]=ACS_SDBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 213:
-					wch[0]=ACS_BDSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 214:
-					wch[0]=ACS_BSDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 215:
-					wch[0]=ACS_DSDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 216:
-					wch[0]=ACS_SDSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 217:
-					wch[0]=ACS_SBBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 218:
-					wch[0]=ACS_BSSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 219:
-					wch[0]=ACS_BLOCK & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 254:
-					wch[0]=ACS_BULLET & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				default:
-					wch[0]=ch;
-			}
-			break;
-		case CIOLIB_MODE_CURSES_IBM:
-			wch[0]=ch;
-			break;
-		case CIOLIB_MODE_CURSES:
-			wch[0] = cpoint_from_cpchar_ext(cp, ch);
-			break;
-	}
-
-	if(!wch[0]) {
-		wch[0]=' ';
-		attr |= WA_BOLD;
-	}
-	else {
-		attr &= ~WA_BOLD;
-	}
-	curs_resume();
-	if (wch[0] < ' ') {
-		attr |= WA_REVERSE;
-		wch[0] = wch[0] + 'A' - 1;
-	}
-
-	setcchar(&cha, wch, attr, cpair, NULL);
-	ret = add_wch(&cha);
-
-	if(!hold_update) {
-		if(refresh_now)
-			refresh();
-	}
-
-	return(ret);
-}
-
-int curs_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attr;
-	unsigned char fill_char;
-	unsigned char orig_attr;
-	int oldx, oldy;
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	curs_resume();
-	getyx(stdscr,oldy,oldx);
-	orig_attr=lastattr;
-	for(y=sy-1;y<ey;y++)
-	{
-		for(x=sx-1;x<ex;x++)
-		{
-			fill_char=fill[fillpos].ch;
-			attr=fill[fillpos].legacy_attr;
-			textattr(attr);
-			move(y, x);
-			_putch(fill_char,FALSE,conio_fontdata[fill[fillpos].font].cp);
-			fillpos++;
-		}
-	}
-	textattr(orig_attr);
-	move(oldy, oldx);
-	if(!hold_update)
-		refresh();
-	return(1);
-}
-
-int curs_puttext(int sx, int sy, int ex, int ey, void *fillbuf)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attr;
-	unsigned char fill_char;
-	unsigned char orig_attr;
-	int oldx, oldy;
-	unsigned char *fill;
-
-	fill = fillbuf;
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	curs_resume();
-	getyx(stdscr,oldy,oldx);
-	orig_attr=lastattr;
-	for(y=sy-1;y<ey;y++)
-	{
-		for(x=sx-1;x<ex;x++)
-		{
-			fill_char=fill[fillpos++];
-			attr=fill[fillpos++];
-			textattr(attr);
-			move(y, x);
-			_putch(fill_char,FALSE,getcodepage());
-		}
-	}
-	textattr(orig_attr);
-	move(oldy, oldx);
-	if(!hold_update)
-		refresh();
-	return(1);
-}
-
-int curs_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attrib;
-	unsigned char colour;
-	int oldx, oldy;
-	unsigned char thischar;
-	int	ext_char;
-	struct text_info	ti;
-	attr_t attr;
-	cchar_t cchar;
-	int fnt = current_font[0];
-	int cp;
-	fd_set cp_checked;
-
-	curs_resume();
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	getyx(stdscr,oldy,oldx);
-	for(y=sy-1;y<=ey-1;y++)
-	{
-		for(x=sx-1;x<=ex-1;x++)
-		{
-			mvin_wch(y, x, &cchar);
-			attr = cchar.attr;
-			thischar = ext_char = cchar.chars[0];
-			if(attr&WA_REVERSE) {
-				thischar=(thischar)-'A'+1;
-			}
-			else {
-				switch (mode) {
-					case CIOLIB_MODE_CURSES_ASCII:
-						/* likely ones */
-						if (attr & WA_ALTCHARSET) {
-							if (ext_char == (ACS_CKBOARD & A_CHARTEXT))
-							{
-								thischar=176;
-							}
-							else if (ext_char == (ACS_BOARD & A_CHARTEXT))
-							{
-								thischar=177;
-							}
-							else if (ext_char == (ACS_BSSB & A_CHARTEXT))
-							{
-								thischar=218;
-							}
-							else if (ext_char == (ACS_SSBB & A_CHARTEXT))
-							{
-								thischar=192;
-							}
-							else if (ext_char == (ACS_BBSS & A_CHARTEXT))
-							{
-								thischar=191;
-							}
-							else if (ext_char == (ACS_SBBS & A_CHARTEXT))
-							{
-								thischar=217;
-							}
-							else if (ext_char == (ACS_SBSS & A_CHARTEXT))
-							{
-								thischar=180;
-							}
-							else if (ext_char == (ACS_SSSB & A_CHARTEXT))
-							{
-								thischar=195;
-							}
-							else if (ext_char == (ACS_SSBS & A_CHARTEXT))
-							{
-								thischar=193;
-							}
-							else if (ext_char == (ACS_BSSS & A_CHARTEXT))
-							{
-								thischar=194;
-							}
-							else if (ext_char == (ACS_BSBS & A_CHARTEXT))
-							{
-								thischar=196;
-							}
-							else if (ext_char == (ACS_SBSB & A_CHARTEXT))
-							{
-								thischar=179;
-							}
-							else if (ext_char == (ACS_SSSS & A_CHARTEXT))
-							{
-								thischar=197;
-							}
-							else if (ext_char == (ACS_BLOCK & A_CHARTEXT))
-							{
-								thischar=219;
-							}
-							else if (ext_char == (ACS_UARROW & A_CHARTEXT))
-							{
-								thischar=30;
-							}
-							else if (ext_char == (ACS_DARROW & A_CHARTEXT))
-							{
-								thischar=31;
-							}
-
-							/* unlikely (Not in ncurses) */
-							else if (ext_char == (ACS_SBSD & A_CHARTEXT))
-							{
-								thischar=181;
-							}
-							else if (ext_char == (ACS_DBDS & A_CHARTEXT))
-							{
-								thischar=182;
-							}
-							else if (ext_char == (ACS_BBDS & A_CHARTEXT))
-							{
-								thischar=183;
-							}
-							else if (ext_char == (ACS_BBSD & A_CHARTEXT))
-							{
-								thischar=184;
-							}
-							else if (ext_char == (ACS_DBDD & A_CHARTEXT))
-							{
-								thischar=185;
-							}
-							else if (ext_char == (ACS_DBDB & A_CHARTEXT))
-							{
-								thischar=186;
-							}
-							else if (ext_char == (ACS_BBDD & A_CHARTEXT))
-							{
-								thischar=187;
-							}
-							else if (ext_char == (ACS_DBBD & A_CHARTEXT))
-							{
-								thischar=188;
-							}
-							else if (ext_char == (ACS_DBBS & A_CHARTEXT))
-							{
-								thischar=189;
-							}
-							else if (ext_char == (ACS_SBBD & A_CHARTEXT))
-							{
-								thischar=190;
-							}
-							else if (ext_char == (ACS_SDSB & A_CHARTEXT))
-							{
-								thischar=198;
-							}
-							else if (ext_char == (ACS_DSDB & A_CHARTEXT))
-							{
-								thischar=199;
-							}
-							else if (ext_char == (ACS_DDBB & A_CHARTEXT))
-							{
-								thischar=200;
-							}
-							else if (ext_char == (ACS_BDDB & A_CHARTEXT))
-							{
-								thischar=201;
-							}
-							else if (ext_char == (ACS_DDBD & A_CHARTEXT))
-							{
-								thischar=202;
-							}
-							else if (ext_char == (ACS_BDDD & A_CHARTEXT))
-							{
-								thischar=203;
-							}
-							else if (ext_char == (ACS_DDDB & A_CHARTEXT))
-							{
-								thischar=204;
-							}
-							else if (ext_char == (ACS_BDBD & A_CHARTEXT))
-							{
-								thischar=205;
-							}
-							else if (ext_char == (ACS_DDDD & A_CHARTEXT))
-							{
-								thischar=206;
-							}
-							else if (ext_char == (ACS_SDBD & A_CHARTEXT))
-							{
-								thischar=207;
-							}
-							else if (ext_char == (ACS_DSBS & A_CHARTEXT))
-							{
-								thischar=208;
-							}
-							else if (ext_char == (ACS_BDSD & A_CHARTEXT))
-							{
-								thischar=209;
-							}
-							else if (ext_char == (ACS_BSDS & A_CHARTEXT))
-							{
-								thischar=210;
-							}
-							else if (ext_char == (ACS_DSBB & A_CHARTEXT))
-							{
-								thischar=211;
-							}
-							else if (ext_char == (ACS_SDBB & A_CHARTEXT))
-							{
-								thischar=212;
-							}
-							else if (ext_char == (ACS_BDSB & A_CHARTEXT))
-							{
-								thischar=213;
-							}
-							else if (ext_char == (ACS_BSDB & A_CHARTEXT))
-							{
-								thischar=214;
-							}
-							else if (ext_char == (ACS_DSDS & A_CHARTEXT))
-							{
-								thischar=215;
-							}
-							else if (ext_char == (ACS_SDSD & A_CHARTEXT))
-							{
-								thischar=216;
-							}
-						}
-						fnt = 0;
-						break;
-					case CIOLIB_MODE_CURSES_IBM:
-						if (ext_char == (ACS_UARROW & A_CHARTEXT))
-						{
-							thischar=30;
-						}
-						else if (ext_char == (ACS_DARROW & A_CHARTEXT))
-						{
-							thischar=31;
-						}
-						fnt = 0;
-						break;
-					case CIOLIB_MODE_CURSES:
-						thischar = cpchar_from_unicode_cpoint(getcodepage(), ext_char, 0);
-						if (thischar == 0 && ext_char != 0) {
-							FD_ZERO(&cp_checked);
-							for (fnt = 0; fnt < 256; fnt++) {
-								cp = conio_fontdata[fnt].cp;
-								if (!FD_ISSET(cp, &cp_checked)) {
-									FD_SET(cp, &cp_checked);
-									thischar = cpchar_from_unicode_cpoint(cp, ext_char, 0);
-									if (thischar)
-										break;
-								}
-							}
-							if (fnt == 256) {
-								fnt = current_font[0];
-								thischar = '?';
-							}
-						}
-						break;
-				}
-			}
-			fill[fillpos].ch=(unsigned char)(thischar);
-			attrib=0;
-			if (attr & WA_BOLD) {
-				if (thischar == ' ')
-					thischar = 0;
-				else
-					attrib |= 8;
-			}
-			if (attr & WA_BLINK)
-			{
-				attrib |= 128;
-			}
-			colour=PAIR_NUMBER(attr&A_COLOR)-1;
-			if (COLORS >= 16)
-				colour=colour&0x7f;
-			else
-				colour=((colour&56)<<1)|(colour&7);
-			fill[fillpos].legacy_attr = colour|attrib;
-			attr2palette(attrib, &fill[fillpos].fg, &fill[fillpos].bg);
-			fill[fillpos].font = fnt;
-			fillpos++;
-		}
-	}
-	move(oldy, oldx);
-	return(1);
-}
-
-void curs_textattr(int attr)
-{
-	chtype   attrs=WA_NORMAL;
-	int	colour;
-	int	fg,bg;
-
-	if (lastattr==attr)
-		return;
-
-	lastattr=attr;
-
-	fg = attr & 0x0f;
-	bg = attr & 0xf0;
-
-	if (vflags & CIOLIB_VIDEO_NOBRIGHT)
-		fg &= 0x07;
-
-	if (!(vflags & CIOLIB_VIDEO_BGBRIGHT))
-		bg &= 0x70;
-
-	if (attr & 128)
-	{
-		if (!(vflags & CIOLIB_VIDEO_NOBLINK))
-			attrs |= WA_BLINK;
-	}
-
-	if (COLORS >= 16) {
-		colour = COLOR_PAIR( ((fg|bg)+1) );
-	}
-	else {
-		if (fg & 8)  {
-			attrs |= WA_BOLD;
-		}
-		colour = COLOR_PAIR( ((fg&7)|((bg&0x70)>>1))+1 );
-	}
-	curs_resume();
-#ifdef NCURSES_VERSION_MAJOR
-	attrset(attrs);
-	color_set(colour, NULL);
-#else
-	attrset(attrs|colour);
-#endif
-	/* bkgdset(colour); */
-	bkgdset(colour);
-
-	cio_textinfo.attribute=attr;
-}
-
-int curs_kbhit(void)
-{
-	struct timeval timeout;
-	fd_set	rfds;
-
-	if(curs_nextgetch)
-		return(1);
-	if(mpress || mouse_trywait()) {
-		mpress = 1;
-		return(1);
-	}
-	timeout.tv_sec=0;
-	timeout.tv_usec=0;
-	FD_ZERO(&rfds);
-	FD_SET(fileno(stdin),&rfds);
-
-	return(select(fileno(stdin)+1,&rfds,NULL,NULL,&timeout));
-}
-
-void curs_gotoxy(int x, int y)
-{
-	int absx,absy;
-	absx=x+cio_textinfo.winleft-1;
-	absy=y+cio_textinfo.wintop-1;
-
-	curs_resume();
-	move(absy-1,absx-1);
-	if(!hold_update)
-		refresh();
-
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-}
-
-void curs_suspend(void)
-{
-	if (!suspended) {
-		noraw();
-		endwin();
-	}
-	suspended = 1;
-}
-
-void curs_resume(void)
-{
-	if (suspended) {
-		raw();
-		timeout(10);
-		refresh();
-		getch();
-	}
-	suspended = 0;
-}
-
-int curs_initciolib(long inmode)
-{
-	short	fg, bg, pair=0;
-	char *p;
-
-	setlocale(LC_ALL, "");
-	if (inmode == CIOLIB_MODE_AUTO)
-		inmode = CIOLIB_MODE_CURSES;
-	if (inmode == CIOLIB_MODE_CURSES) {
-		p = nl_langinfo(CODESET);
-		if (p == NULL)
-			inmode = CIOLIB_MODE_CURSES_ASCII;
-		else if (!strcasestr(p, "UTF"))
-			if (!strcasestr(p, "UCS2"))
-				if (!strcasestr(p, "Unicode"))
-					if (!strcasestr(p, "GB18030"))
-						inmode = CIOLIB_MODE_CURSES_ASCII;
-	}
-
-#ifdef XCURSES
-	char	*argv[2]={"ciolib",NULL};
-
-	Xinitscr(1,argv);
-#else
-	char *term;
-	SCREEN *tst;
-
-	cio_api.options = 0;
-
-	term=getenv("TERM");
-	if(term==NULL)
-		return(0);
-	tst=newterm(term,stdout,stdin);
-	if(tst==NULL)
-		return(0);
-	endwin();
-	initscr();
-#endif
-	start_color();
-	cbreak();
-	noecho();
-	nonl();
-	keypad(stdscr, TRUE);
-	scrollok(stdscr,FALSE);
-	halfdelay(1);
-	raw();
-	timeout(10);
-	atexit(curs_suspend);
-	suspended = 0;
-
-	/* Set up color pairs */
-	if (COLORS >= 16) {
-		for(bg=0;bg<16;bg++)  {
-			for(fg=0;fg<16;fg++) {
-				init_pair(++pair,curses_color(fg),curses_color(bg));
-			}
-		}
-	}
-	else {
-		for(bg=0;bg<8;bg++)  {
-			for(fg=0;fg<8;fg++) {
-				init_pair(++pair,curses_color(fg),curses_color(bg));
-			}
-		}
-	}
-	mode = inmode;
-#ifdef NCURSES_VERSION_MAJOR
-	{
-		mmask_t msk = BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION;
-#ifdef BUTTON5_PRESSED
-		msk |= BUTTON4_PRESSED|BUTTON5_PRESSED;
-#endif
-		if (mousemask(msk, NULL) == msk) {
-			mouseinterval(0);
-			cio_api.mouse=1;
-		}
-		else {
-			mousemask(0,NULL);
-		}
-	}
-#endif
-
-	if (COLORS >= 16)
-		cio_api.options = CONIO_OPT_BRIGHT_BACKGROUND;
-	if (can_change_color())
-		cio_api.options |= CONIO_OPT_PALETTE_SETTING;
-	curs_textmode(0);
-	return(1);
-}
-
-void curs_setcursortype(int type) {
-	curs_resume();
-	switch(type) {
-		case _NOCURSOR:
-			curs_set(0);
-			break;
-
-		case _SOLIDCURSOR:
-			curs_set(2);
-			break;
-
-		default:	/* Normal cursor */
-			curs_set(1);
-			break;
-
-	}
-	if(!hold_update)
-		refresh();
-}
-
-int curs_getch(void)
-{
-	wint_t ch;
-#ifdef NCURSES_VERSION_MAJOR
-	MEVENT mevnt;
-#endif
-
-	if(curs_nextgetch) {
-		ch=curs_nextgetch;
-		curs_nextgetch=0;
-	}
-	else {
-		curs_resume();
-		while(get_wch(&ch)==ERR) {
-			if(mpress || mouse_trywait()) {
-				mpress = 0;
-				curs_nextgetch=CIO_KEY_MOUSE>>8;
-				return(CIO_KEY_MOUSE & 0xff);
-			}
-		}
-		switch(ch) {
-			case KEY_DOWN:            /* Down-arrow */
-				curs_nextgetch=0x50;
-				ch=0;
-				break;
-
-			case KEY_UP:		/* Up-arrow */
-				curs_nextgetch=0x48;
-				ch=0;
-				break;
-
-			case KEY_LEFT:		/* Left-arrow */
-				curs_nextgetch=0x4b;
-				ch=0;
-				break;
-
-			case KEY_RIGHT:            /* Right-arrow */
-				curs_nextgetch=0x4d;
-				ch=0;
-				break;
-
-			case KEY_HOME:            /* Home key (upward+left arrow) */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_BACKSPACE:            /* Backspace (unreliable) */
-				ch=8;
-				break;
-
-			case KEY_F(1):			/* Function Key */
-				curs_nextgetch=0x3b;
-				ch=0;
-				break;
-
-			case KEY_F(2):			/* Function Key */
-				curs_nextgetch=0x3c;
-				ch=0;
-				break;
-
-			case KEY_F(3):			/* Function Key */
-				curs_nextgetch=0x3d;
-				ch=0;
-				break;
-
-			case KEY_F(4):			/* Function Key */
-				curs_nextgetch=0x3e;
-				ch=0;
-				break;
-
-			case KEY_F(5):			/* Function Key */
-				curs_nextgetch=0x3f;
-				ch=0;
-				break;
-
-			case KEY_F(6):			/* Function Key */
-				curs_nextgetch=0x40;
-				ch=0;
-				break;
-
-			case KEY_F(7):			/* Function Key */
-				curs_nextgetch=0x41;
-				ch=0;
-				break;
-
-			case KEY_F(8):			/* Function Key */
-				curs_nextgetch=0x42;
-				ch=0;
-				break;
-
-			case KEY_F(9):			/* Function Key */
-				curs_nextgetch=0x43;
-				ch=0;
-				break;
-
-			case KEY_F(10):			/* Function Key */
-				curs_nextgetch=0x44;
-				ch=0;
-				break;
-
-			case KEY_F(11):			/* Function Key */
-				curs_nextgetch=0x57;
-				ch=0;
-				break;
-
-			case KEY_F(12):			/* Function Key */
-				curs_nextgetch=0x58;
-				ch=0;
-				break;
-
-			case KEY_DC:            /* Delete character */
-				curs_nextgetch=0x53;
-				ch=0;
-				break;
-
-			case KEY_IC:            /* Insert char or enter insert mode */
-				curs_nextgetch=0x52;
-				ch=0;
-				break;
-
-			case KEY_EIC:            /* Exit insert char mode */
-				curs_nextgetch=0x52;
-				ch=0;
-				break;
-
-			case KEY_NPAGE:            /* Next page */
-				curs_nextgetch=0x51;
-				ch=0;
-				break;
-
-			case KEY_PPAGE:            /* Previous page */
-				curs_nextgetch=0x49;
-				ch=0;
-				break;
-
-			case KEY_ENTER:            /* Enter or send (unreliable) */
-				curs_nextgetch=0x0d;
-				ch=0;
-				break;
-
-			case KEY_A1:		/* Upper left of keypad */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_A3:		/* Upper right of keypad */
-				curs_nextgetch=0x49;
-				ch=0;
-				break;
-
-			case KEY_B2:		/* Center of keypad */
-				curs_nextgetch=0x4c;
-				ch=0;
-				break;
-
-			case KEY_C1:		/* Lower left of keypad */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-			case KEY_C3:		/* Lower right of keypad */
-				curs_nextgetch=0x51;
-				ch=0;
-				break;
-
-			case KEY_BEG:		/* Beg (beginning) */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_CANCEL:		/* Cancel */
-				curs_nextgetch=0x03;
-				ch=0;
-				break;
-
-			case KEY_END:		/* End */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-			case KEY_SELECT:		/* Select  - Is "End" in X */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-#ifdef NCURSES_VERSION_MAJOR
-			case KEY_MOUSE:			/* Mouse stuff */
-				if(getmouse(&mevnt)==OK) {
-					int evnt=0;
-					switch(mevnt.bstate) {
-						case BUTTON1_PRESSED:
-							evnt=CIOLIB_BUTTON_1_PRESS;
-							break;
-						case BUTTON1_RELEASED:
-							evnt=CIOLIB_BUTTON_1_RELEASE;
-							break;
-						case BUTTON2_PRESSED:
-							evnt=CIOLIB_BUTTON_2_PRESS;
-							break;
-						case BUTTON2_RELEASED:
-							evnt=CIOLIB_BUTTON_2_RELEASE;
-							break;
-						case BUTTON3_PRESSED:
-							evnt=CIOLIB_BUTTON_3_PRESS;
-							break;
-						case BUTTON3_RELEASED:
-							evnt=CIOLIB_BUTTON_3_RELEASE;
-							break;
-#ifdef BUTTON5_PRESSED
-						case BUTTON4_PRESSED:
-							evnt=CIOLIB_BUTTON_4_PRESS;
-							break;
-						case BUTTON5_PRESSED:
-							evnt=CIOLIB_BUTTON_5_PRESS;
-							break;
-#endif
-						case REPORT_MOUSE_POSITION:
-							evnt=CIOLIB_MOUSE_MOVE;
-							break;
-					}
-					ciomouse_gotevent(evnt, mevnt.x+1, mevnt.y+1, -1, -1);
-				}
-				break;
-#endif
-
-			default:
-				// Don't translate CTRL-x "keys"...
-				if (ch >= 32)
-					ch = cpchar_from_unicode_cpoint(getcodepage(), ch, 0);
-				break;
-		}
-	}
-	return(ch);
-}
-
-static int
-scale_integer_up(int from)
-{
-	int ret = from * 1000 / 256;
-
-	if (ret < 0)
-		ret = 0;
-	if (ret > 1000)
-		ret = 1000;
-	return ret;
-}
-
-uint32_t palette[16];
-int curs_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	uint32_t fg = attr & 0x0f;
-	uint32_t bg = (attr >> 4) & 0x0f;
-
-	if (!(vflags & CIOLIB_VIDEO_BGBRIGHT))
-		bg &= 0x07;
-	if (vflags & CIOLIB_VIDEO_NOBRIGHT)
-		fg &= 0x07;
-
-	if (fgp)
-		*fgp = palette[fg];
-	if (bgp)
-		*bgp = palette[bg];
-
-	return 1;
-}
-
-int curs_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-	if (!can_change_color())
-		return 0;
-	init_color(curses_color(entry), scale_integer_up(r>>8), scale_integer_up(g>>8), scale_integer_up(b>>8));
-	return 1;
-}
-
-int curs_set_modepalette(uint32_t p[16])
-{
-	int i;
-
-	if (!can_change_color())
-		return 0;
-	memcpy(palette, p, sizeof(palette));
-	for (i = 0; i < 16; i++) {
-		struct dac_colors *c;
-		c = &dac_default[p[i]];
-		curs_setpalette(i, c->red<<8 | c->red, c->green<<8 | c->green, c->blue<<8 | c->blue);
-	}
-	return 1;
-}
-
-int curs_get_modepalette(uint32_t p[16])
-{
-	if (!can_change_color())
-		return 0;
-	memcpy(p, palette, sizeof(palette));
-	return 1;
-}
-
-void curs_textmode(int mode)
-{
-	int vm;
-	int maxx, maxy;
-
-	curs_resume();
-	getmaxyx(stdscr, maxy, maxx);
-	if (maxy > 255)
-		maxy = 255;
-	if (maxx > 255)
-		maxx = 255;
-	cio_textinfo.screenheight = maxy;
-	cio_textinfo.screenwidth = maxx;
-	if(has_colors())
-		cio_textinfo.currmode=COLOR_MODE;
-	else
-		cio_textinfo.currmode=MONO;
-
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-
-	if(can_change_color() && (vm = find_vmode(cio_textinfo.currmode)) != -1) {
-		curs_set_modepalette(palettes[vparams[vm].palette]);
-		cio_textinfo.normattr=cio_textinfo.attribute=vparams[vm].default_attr;
-		vflags = vparams[vm].flags;
-	}
-
-	return;
-}
-
-int curs_hidemouse(void)
-{
-/*
-	#ifdef NCURSES_VERSION_MAJOR
-		mousemask(0,NULL);
-		return(0);
-	#else
-		return(-1);
-	#endif
-*/
-	return(-1);
-}
-
-int curs_showmouse(void)
-{
-/*
-	#ifdef NCURSES_VERSION_MAJOR
-		if(mousemask(BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION,NULL)==BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION)
-			return(0);
-	#endif
-	return(-1);
-*/
-	return(-1);
-}
-
-void curs_beep(void)
-{
-	curs_resume();
-	beep();
-}
-
-int curs_getvideoflags(void)
-{
-	return vflags;
-}
-
-void curs_setvideoflags(int flags)
-{
-	flags &= (CIOLIB_VIDEO_NOBRIGHT|CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK);
-	if (COLORS < 16)
-		flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-	vflags = flags;
-}
-
-int curs_setfont(int font, int force, int font_num)
-{
-	if (mode != CIOLIB_MODE_CURSES)
-		return 0;
-
-	if(font < 0 || font>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2))
-		return(0);
-
-	switch(font_num) {
-		case 0:
-			default_font=font;
-			/* Fall-through */
-		case 1:
-			current_font[0]=font;
-			break;
-		case 2:
-		case 3:
-		case 4:
-			current_font[font_num-1]=font;
-			break;
-	}
-
-	return(1);
-}
-
-int curs_getfont(int font_num)
-{
-	int ret;
-
-	if (font_num == 0)
-		ret = default_font;
-	else if (font_num > 4)
-		ret = -1;
-	else
-		ret = current_font[font_num - 1];
-
-	return ret;
-}
diff --git a/ciolib/curs_cio.h b/ciolib/curs_cio.h
deleted file mode 100644
index 5292e8b..0000000
--- a/ciolib/curs_cio.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* $Id: curs_cio.h,v 1.19 2020/05/02 08:46:44 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#undef beep
-#undef getch
-#undef ungetch
-#undef getmouse
-#undef ungetmouse
-#include "curs_fix.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int curs_puttext(int sx, int sy, int ex, int ey, void *fillbuf);
-int curs_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fillbuf);
-int curs_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fillbuf);
-void curs_textattr(int attr);
-int curs_kbhit(void);
-void curs_gotoxy(int x, int y);
-void curs_suspend(void);
-void curs_resume(void);
-int curs_initciolib(long inmode);
-void curs_setcursortype(int type);
-int curs_getch(void);
-void curs_textmode(int mode);
-int curs_hidemouse(void);
-int curs_showmouse(void);
-void curs_beep(void);
-int curs_getvideoflags(void);
-void curs_setvideoflags(int flags);
-int curs_setfont(int font, int force, int font_num);
-int curs_getfont(int font_num);
-int curs_set_modepalette(uint32_t p[16]);
-int curs_get_modepalette(uint32_t p[16]);
-int curs_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-int curs_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/curs_fix.h b/ciolib/curs_fix.h
deleted file mode 100644
index a98cbe5..0000000
--- a/ciolib/curs_fix.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* $Id: curs_fix.h,v 1.6 2020/04/25 03:12:53 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __DARWIN__
- #define _XOPEN_SOURCE_EXTENDED 1
- #include <ncurses.h>
-#else
- #ifdef __OpenBSD__
-  /* OpenBSD appears to ship with an old (5.7 from November 02, 2008) version
-   * of ncurses.  This apparently predates both _XOPEN_SOURCE >= 500 and
-   * NCURSES_WIDECHAR support for enabling wide characters.
-   * so, define _XOPEN_SOURCE_EXTENDED to get these. */
-  #define _XOPEN_SOURCE_EXTENDED 1
- #endif
- #define NCURSES_WIDECHAR 1
- #ifdef XCURSES
-  #include <xcurses.h>
- #else
-  #ifdef N_CURSES_LIB
-   #include <ncurses.h>
-  #else
-   #ifdef DEBIAN_HATES_YOU
-    #include <ncursesw/ncurses.h>
-   #else
-    #include <curses.h>
-   #endif
-  #endif
- #endif
-#endif
-
-#ifndef	ACS_SBSD
-#define ACS_SBSD	ACS_SBSS
-#endif
-
-#ifndef ACS_DBDS
-#define ACS_DBDS	ACS_SBSS
-#endif
-
-#ifndef ACS_BBDS
-#define	ACS_BBDS	ACS_BBSS
-#endif
-
-#ifndef ACS_BBSD
-#define ACS_BBSD	ACS_BBSS
-#endif
-
-#ifndef ACS_DBDD
-#define	ACS_DBDD	ACS_SBSS
-#endif
-
-#ifndef	ACS_DBDB
-#define	ACS_DBDB	ACS_SBSB
-#endif
-
-#ifndef ACS_BBDD
-#define ACS_BBDD	ACS_BBSS
-#endif
-
-#ifndef ACS_DBBD
-#define ACS_DBBD	ACS_SBBS
-#endif
-
-#ifndef ACS_DBBS
-#define ACS_DBBS	ACS_SBBS
-#endif
-
-#ifndef ACS_SBBD
-#define ACS_SBBD	ACS_SBBS
-#endif
-
-#ifndef ACS_SDSB
-#define ACS_SDSB	ACS_SSSB
-#endif
-
-#ifndef	ACS_DSDB
-#define ACS_DSDB	ACS_SSSB
-#endif
-
-#ifndef ACS_DDBB
-#define	ACS_DDBB	ACS_SSBB
-#endif
-
-#ifndef ACS_BDDB
-#define ACS_BDDB	ACS_BSSB
-#endif
-
-#ifndef ACS_DDBD
-#define ACS_DDBD	ACS_SSBS
-#endif
-
-#ifndef ACS_BDDD
-#define	ACS_BDDD	ACS_BSSS
-#endif
-
-#ifndef ACS_DDDB
-#define ACS_DDDB	ACS_SSSB
-#endif
-
-#ifndef ACS_BDBD
-#define ACS_BDBD	ACS_BSBS
-#endif
-
-#ifndef ACS_DDDD
-#define	ACS_DDDD	ACS_SSSS
-#endif
-
-#ifndef ACS_SDBD
-#define ACS_SDBD	ACS_SSBS
-#endif
-
-#ifndef ACS_DSBS
-#define ACS_DSBS	ACS_SSBS
-#endif
-
-#ifndef ACS_BDSD
-#define ACS_BDSD	ACS_BSSS
-#endif
-
-#ifndef	ACS_BSDS
-#define ACS_BSDS	ACS_BSSS
-#endif
-
-#ifndef	ACS_DSBB
-#define ACS_DSBB	ACS_SSBB
-#endif
-      
-#ifndef ACS_SDBB
-#define ACS_SDBB	ACS_SSBB
-#endif
-
-#ifndef ACS_BDSB
-#define ACS_BDSB	ACS_BSSB
-#endif
-
-#ifndef ACS_BSDB
-#define ACS_BSDB	ACS_BSSB
-#endif
-
-#ifndef ACS_DSDS
-#define	ACS_DSDS	ACS_SSSS
-#endif
-
-#ifndef ACS_SDSD
-#define	ACS_SDSD	ACS_SSSS
-#endif
-
-// Now wide...
-#ifndef	WACS_SBSD
-#define WACS_SBSD	WACS_SBSS
-#endif
-
-#ifndef WACS_DBDS
-#define WACS_DBDS	WACS_SBSS
-#endif
-
-#ifndef WACS_BBDS
-#define	WACS_BBDS	WACS_BBSS
-#endif
-
-#ifndef WACS_BBSD
-#define WACS_BBSD	WACS_BBSS
-#endif
-
-#ifndef WACS_DBDD
-#define	WACS_DBDD	WACS_SBSS
-#endif
-
-#ifndef	WACS_DBDB
-#define	WACS_DBDB	WACS_SBSB
-#endif
-
-#ifndef WACS_BBDD
-#define WACS_BBDD	WACS_BBSS
-#endif
-
-#ifndef WACS_DBBD
-#define WACS_DBBD	WACS_SBBS
-#endif
-
-#ifndef WACS_DBBS
-#define WACS_DBBS	WACS_SBBS
-#endif
-
-#ifndef WACS_SBBD
-#define WACS_SBBD	WACS_SBBS
-#endif
-
-#ifndef WACS_SDSB
-#define WACS_SDSB	WACS_SSSB
-#endif
-
-#ifndef	WACS_DSDB
-#define WACS_DSDB	WACS_SSSB
-#endif
-
-#ifndef WACS_DDBB
-#define	WACS_DDBB	WACS_SSBB
-#endif
-
-#ifndef WACS_BDDB
-#define WACS_BDDB	WACS_BSSB
-#endif
-
-#ifndef WACS_DDBD
-#define WACS_DDBD	WACS_SSBS
-#endif
-
-#ifndef WACS_BDDD
-#define	WACS_BDDD	WACS_BSSS
-#endif
-
-#ifndef WACS_DDDB
-#define WACS_DDDB	WACS_SSSB
-#endif
-
-#ifndef WACS_BDBD
-#define WACS_BDBD	WACS_BSBS
-#endif
-
-#ifndef WACS_DDDD
-#define	WACS_DDDD	WACS_SSSS
-#endif
-
-#ifndef WACS_SDBD
-#define WACS_SDBD	WACS_SSBS
-#endif
-
-#ifndef WACS_DSBS
-#define WACS_DSBS	WACS_SSBS
-#endif
-
-#ifndef WACS_BDSD
-#define WACS_BDSD	WACS_BSSS
-#endif
-
-#ifndef	WACS_BSDS
-#define WACS_BSDS	WACS_BSSS
-#endif
-
-#ifndef	WACS_DSBB
-#define WACS_DSBB	WACS_SSBB
-#endif
-
-#ifndef WACS_SDBB
-#define WACS_SDBB	WACS_SSBB
-#endif
-
-#ifndef WACS_BDSB
-#define WACS_BDSB	WACS_BSSB
-#endif
-
-#ifndef WACS_BSDB
-#define WACS_BSDB	WACS_BSSB
-#endif
-
-#ifndef WACS_DSDS
-#define	WACS_DSDS	WACS_SSSS
-#endif
-
-#ifndef WACS_SDSD
-#define	WACS_SDSD	WACS_SSSS
-#endif
diff --git a/ciolib/hqx.c b/ciolib/hqx.c
deleted file mode 100644
index 2d7fd4d..0000000
--- a/ciolib/hqx.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Copyright (c) 2014 Clément Bœsch
- *
- * This file is part of FFmpeg.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/**
- * @file
- * hqx magnification filters (hq2x, hq3x, hq4x)
- *
- * Originally designed by Maxim Stephin.
- *
- * @see http://en.wikipedia.org/wiki/Hqx
- * @see http://web.archive.org/web/20131114143602/http://www.hiend3d.com/hq3x.html
- * @see http://blog.pkh.me/p/19-butchering-hqx-scaling-filters.html
- */
-
-#include <inttypes.h>
-
-#if 0
-/* (c1*w1 + c2*w2) >> s */
-inline __attribute__((always_inline)) uint32_t interp_2px(uint32_t c1, int w1, uint32_t c2, int w2, int s)
-{
-    return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2) << (8 - s)) & 0xff00ff00) |
-           (((((c1 & 0x00ff00ff)     ) * w1 + ((c2 & 0x00ff00ff)     ) * w2) >>      s ) & 0x00ff00ff);
-}
-
-/* (c1*w1 + c2*w2 + c3*w3) >> s */
-inline __attribute__((always_inline)) uint32_t interp_3px(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s)
-{
-    return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2 + ((c3 & 0xff00ff00) >> 8) * w3) << (8 - s)) & 0xff00ff00) |
-           (((((c1 & 0x00ff00ff)     ) * w1 + ((c2 & 0x00ff00ff)     ) * w2 + ((c3 & 0x00ff00ff)     ) * w3) >>      s ) & 0x00ff00ff);
-}
-#else
-/* (c1*w1 + c2*w2) >> s */
-inline __attribute__((always_inline)) uint32_t interp_2px(uint32_t c1, int w1, uint32_t c2, int w2, int s)
-{
-	return w2 > w1 ? c2 : c1;
-}
-
-/* (c1*w1 + c2*w2 + c3*w3) >> s */
-inline __attribute__((always_inline)) uint32_t interp_3px(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s)
-{
-	if (w3 > w2 && w3 > w1)
-		return c3;
-	if (w2 > w1)
-		return c2;
-	return c1;
-}
-#endif
-
-/* m is the mask of diff with the center pixel that matters in the pattern, and
- * r is the expected result (bit set to 1 if there is difference with the
- * center, 0 otherwise) */
-#define P(m, r) ((k_shuffled & (m)) == (r))
-
-/* adjust 012345678 to 01235678: the mask doesn't contain the (null) diff
- * between the center/current pixel and itself */
-#define DROP4(z) ((z) > 4 ? (z)-1 : (z))
-
-/* shuffle the input mask: move bit n (4-adjusted) to position stored in p<n> */
-#define SHF(x, rot, n) (((x) >> ((rot) ? 7-DROP4(n) : DROP4(n)) & 1) << DROP4(p##n))
-
-/* used to check if there is YUV difference between 2 pixels */
-#define WDIFF(c1, c2) (c1 != c2)
-
-/* bootstrap template for every interpolation code. It defines the shuffled
- * masks and surrounding pixels. The rot flag is used to indicate if it's a
- * rotation; its basic effect is to shuffle k using p8..p0 instead of p0..p8 */
-#define INTERP_BOOTSTRAP(rot)                                           \
-    const int k_shuffled = SHF(k,rot,0) | SHF(k,rot,1) | SHF(k,rot,2)   \
-                         | SHF(k,rot,3) |       0      | SHF(k,rot,5)   \
-                         | SHF(k,rot,6) | SHF(k,rot,7) | SHF(k,rot,8);  \
-                                                                        \
-    const uint32_t w0 = w[p0], w1 = w[p1],                              \
-                   w3 = w[p3], w4 = w[p4], w5 = w[p5],                  \
-                               w7 = w[p7]
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left pixel in the total of the 2x2 pixels to interpolates. The function
- * is also used for the 3 other pixels */
-inline __attribute__((always_inline)) uint32_t hq2x_interp_1x1(int k,
-                                                 const uint32_t *w,
-                                                 int p0, int p1, int p2,
-                                                 int p3, int p4, int p5,
-                                                 int p6, int p7, int p8)
-{
-    INTERP_BOOTSTRAP(0);
-
-    if ((P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5))
-        return interp_2px(w4, 3, w3, 1, 2);
-    if ((P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3))
-        return interp_2px(w4, 3, w1, 1, 2);
-    if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        return w4;
-    if ((P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) || P(0xdf,0x5a) ||
-         P(0x9f,0x8a) || P(0xcf,0x8a) || P(0xef,0x4e) || P(0x3f,0x0e) ||
-         P(0xfb,0x5a) || P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-         P(0xeb,0x8a)) && WDIFF(w3, w1))
-        return interp_2px(w4, 3, w0, 1, 2);
-    if (P(0x0b,0x08))
-        return interp_3px(w4, 2, w0, 1, w1, 1, 2);
-    if (P(0x0b,0x02))
-        return interp_3px(w4, 2, w0, 1, w3, 1, 2);
-    if (P(0x2f,0x2f))
-        return interp_3px(w4, 14, w3, 1, w1, 1, 4);
-    if (P(0xbf,0x37) || P(0xdb,0x13))
-        return interp_3px(w4, 5, w1, 2, w3, 1, 3);
-    if (P(0xdb,0x49) || P(0xef,0x6d))
-        return interp_3px(w4, 5, w3, 2, w1, 1, 3);
-    if (P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) || P(0x6b,0x43))
-        return interp_2px(w4, 3, w3, 1, 2);
-    if (P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) || P(0x3b,0x19))
-        return interp_2px(w4, 3, w1, 1, 2);
-    if (P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7e,0x0e))
-        return interp_3px(w4, 2, w3, 3, w1, 3, 3);
-    if (P(0xfb,0x6a) || P(0x6f,0x6e) || P(0x3f,0x3e) || P(0xfb,0xfa) ||
-        P(0xdf,0xde) || P(0xdf,0x1e))
-        return interp_2px(w4, 3, w0, 1, 2);
-    if (P(0x0a,0x00) || P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) ||
-        P(0xbe,0x0a) || P(0xee,0x0a) || P(0x7e,0x0a) || P(0xeb,0x4b) ||
-        P(0x3b,0x1b))
-        return interp_3px(w4, 2, w3, 1, w1, 1, 2);
-    return interp_3px(w4, 6, w3, 1, w1, 1, 3);
-}
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left and top-center pixel in the total of the 3x3 pixels to
- * interpolates. The function is also used for the 3 other couples of pixels
- * defining the outline. The center pixel is not defined through this function,
- * since it's just the same as the original value. */
-inline __attribute__((always_inline)) void hq3x_interp_2x1(uint32_t *dst, int dst_linesize,
-                                             int k,
-                                             const uint32_t *w,
-                                             int pos00, int pos01,
-                                             int p0, int p1, int p2,
-                                             int p3, int p4, int p5,
-                                             int p6, int p7, int p8,
-                                             int rotate)
-{
-    INTERP_BOOTSTRAP(rotate);
-
-    uint32_t *dst00 = &dst[dst_linesize*(pos00>>1) + (pos00&1)];
-    uint32_t *dst01 = &dst[dst_linesize*(pos01>>1) + (pos01&1)];
-
-    if ((P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3))
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if ((P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5))
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        *dst00 = w4;
-    else if ((P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) || P(0xdf,0x5a) ||
-              P(0x9f,0x8a) || P(0xcf,0x8a) || P(0xef,0x4e) || P(0x3f,0x0e) ||
-              P(0xfb,0x5a) || P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-              P(0xeb,0x8a)) && WDIFF(w3, w1))
-        *dst00 = interp_2px(w4, 3, w0, 1, 2);
-    else if (P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) || P(0x3b,0x19))
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if (P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) || P(0x6b,0x43))
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if (P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7e,0x0e))
-        *dst00 = interp_2px(w3, 1, w1, 1, 1);
-    else if (P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) || P(0xbe,0x0a) ||
-             P(0xee,0x0a) || P(0x7e,0x0a) || P(0xeb,0x4b) || P(0x3b,0x1b))
-        *dst00 = interp_3px(w4, 2, w3, 7, w1, 7, 4);
-    else if (P(0x0b,0x08) || P(0xf9,0x68) || P(0xf3,0x62) || P(0x6d,0x6c) ||
-             P(0x67,0x66) || P(0x3d,0x3c) || P(0x37,0x36) || P(0xf9,0xf8) ||
-             P(0xdd,0xdc) || P(0xf3,0xf2) || P(0xd7,0xd6) || P(0xdd,0x1c) ||
-             P(0xd7,0x16) || P(0x0b,0x02))
-        *dst00 = interp_2px(w4, 3, w0, 1, 2);
-    else
-        *dst00 = interp_3px(w4, 2, w3, 1, w1, 1, 2);
-
-    if ((P(0xfe,0xde) || P(0x9e,0x16) || P(0xda,0x12) || P(0x17,0x16) ||
-         P(0x5b,0x12) || P(0xbb,0x12)) && WDIFF(w1, w5))
-        *dst01 = w4;
-    else if ((P(0x0f,0x0b) || P(0x5e,0x0a) || P(0xfb,0x7b) || P(0x3b,0x0b) ||
-              P(0xbe,0x0a) || P(0x7a,0x0a)) && WDIFF(w3, w1))
-        *dst01 = w4;
-    else if (P(0xbf,0x8f) || P(0x7e,0x0e) || P(0xbf,0x37) || P(0xdb,0x13))
-        *dst01 = interp_2px(w1, 3, w4, 1, 2);
-    else if (P(0x02,0x00) || P(0x7c,0x28) || P(0xed,0xa9) || P(0xf5,0xb4) ||
-             P(0xd9,0x90))
-        *dst01 = interp_2px(w4, 3, w1, 1, 2);
-    else if (P(0x4f,0x4b) || P(0xfb,0x7b) || P(0xfe,0x7e) || P(0x9f,0x1b) ||
-             P(0x2f,0x0b) || P(0xbe,0x0a) || P(0x7e,0x0a) || P(0xfb,0x4b) ||
-             P(0xfb,0xdb) || P(0xfe,0xde) || P(0xfe,0x56) || P(0x57,0x56) ||
-             P(0x97,0x16) || P(0x3f,0x1e) || P(0xdb,0x12) || P(0xbb,0x12))
-        *dst01 = interp_2px(w4, 7, w1, 1, 3);
-    else
-        *dst01 = w4;
-}
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left block of 2x2 pixels in the total of the 4x4 pixels (or 4 blocks) to
- * interpolates. The function is also used for the 3 other blocks of 2x2
- * pixels. */
-inline __attribute__((always_inline)) void hq4x_interp_2x2(uint32_t *dst, int dst_linesize,
-                                             int k,
-                                             const uint32_t *w,
-                                             int pos00, int pos01,
-                                             int pos10, int pos11,
-                                             int p0, int p1, int p2,
-                                             int p3, int p4, int p5,
-                                             int p6, int p7, int p8)
-{
-    INTERP_BOOTSTRAP(0);
-
-    uint32_t *dst00 = &dst[dst_linesize*(pos00>>1) + (pos00&1)];
-    uint32_t *dst01 = &dst[dst_linesize*(pos01>>1) + (pos01&1)];
-    uint32_t *dst10 = &dst[dst_linesize*(pos10>>1) + (pos10&1)];
-    uint32_t *dst11 = &dst[dst_linesize*(pos11>>1) + (pos11&1)];
-
-    const int cond00 = (P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5);
-    const int cond01 = (P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3);
-    const int cond02 = (P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) ||
-                        P(0xdf,0x5a) || P(0x9f,0x8a) || P(0xcf,0x8a) ||
-                        P(0xef,0x4e) || P(0x3f,0x0e) || P(0xfb,0x5a) ||
-                        P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-                        P(0xeb,0x8a)) && WDIFF(w3, w1);
-    const int cond03 = P(0xdb,0x49) || P(0xef,0x6d);
-    const int cond04 = P(0xbf,0x37) || P(0xdb,0x13);
-    const int cond05 = P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) ||
-                       P(0x6b,0x43);
-    const int cond06 = P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) ||
-                       P(0x3b,0x19);
-    const int cond07 = P(0x0b,0x08) || P(0xf9,0x68) || P(0xf3,0x62) ||
-                       P(0x6d,0x6c) || P(0x67,0x66) || P(0x3d,0x3c) ||
-                       P(0x37,0x36) || P(0xf9,0xf8) || P(0xdd,0xdc) ||
-                       P(0xf3,0xf2) || P(0xd7,0xd6) || P(0xdd,0x1c) ||
-                       P(0xd7,0x16) || P(0x0b,0x02);
-    const int cond08 = (P(0x0f,0x0b) || P(0x2b,0x0b) || P(0xfe,0x4a) ||
-                        P(0xfe,0x1a)) && WDIFF(w3, w1);
-    const int cond09 = P(0x2f,0x2f);
-    const int cond10 = P(0x0a,0x00);
-    const int cond11 = P(0x0b,0x09);
-    const int cond12 = P(0x7e,0x2a) || P(0xef,0xab);
-    const int cond13 = P(0xbf,0x8f) || P(0x7e,0x0e);
-    const int cond14 = P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) ||
-                       P(0xbe,0x0a) || P(0xee,0x0a) || P(0x7e,0x0a) ||
-                       P(0xeb,0x4b) || P(0x3b,0x1b);
-    const int cond15 = P(0x0b,0x03);
-
-    if (cond00)
-        *dst00 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond01)
-        *dst00 = interp_2px(w4, 5, w1, 3, 3);
-    else if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        *dst00 = w4;
-    else if (cond02)
-        *dst00 = interp_2px(w4, 5, w0, 3, 3);
-    else if (cond03)
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if (cond04)
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if (cond05)
-        *dst00 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond06)
-        *dst00 = interp_2px(w4, 5, w1, 3, 3);
-    else if (P(0x0f,0x0b) || P(0x5e,0x0a) || P(0x2b,0x0b) || P(0xbe,0x0a) ||
-             P(0x7a,0x0a) || P(0xee,0x0a))
-        *dst00 = interp_2px(w1, 1, w3, 1, 1);
-    else if (cond07)
-        *dst00 = interp_2px(w4, 5, w0, 3, 3);
-    else
-        *dst00 = interp_3px(w4, 2, w1, 1, w3, 1, 2);
-
-    if (cond00)
-        *dst01 = interp_2px(w4, 7, w3, 1, 3);
-    else if (cond08)
-        *dst01 = w4;
-    else if (cond02)
-        *dst01 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond09)
-        *dst01 = w4;
-    else if (cond10)
-        *dst01 = interp_3px(w4, 5, w1, 2, w3, 1, 3);
-    else if (P(0x0b,0x08))
-        *dst01 = interp_3px(w4, 5, w1, 2, w0, 1, 3);
-    else if (cond11)
-        *dst01 = interp_2px(w4, 5, w1, 3, 3);
-    else if (cond04)
-        *dst01 = interp_2px(w1, 3, w4, 1, 2);
-    else if (cond12)
-        *dst01 = interp_3px(w1, 2, w4, 1, w3, 1, 2);
-    else if (cond13)
-        *dst01 = interp_2px(w1, 5, w3, 3, 3);
-    else if (cond05)
-        *dst01 = interp_2px(w4, 7, w3, 1, 3);
-    else if (P(0xf3,0x62) || P(0x67,0x66) || P(0x37,0x36) || P(0xf3,0xf2) ||
-             P(0xd7,0xd6) || P(0xd7,0x16) || P(0x0b,0x02))
-        *dst01 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond14)
-        *dst01 = interp_2px(w1, 1, w4, 1, 1);
-    else
-        *dst01 = interp_2px(w4, 3, w1, 1, 2);
-
-    if (cond01)
-        *dst10 = interp_2px(w4, 7, w1, 1, 3);
-    else if (cond08)
-        *dst10 = w4;
-    else if (cond02)
-        *dst10 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond09)
-        *dst10 = w4;
-    else if (cond10)
-        *dst10 = interp_3px(w4, 5, w3, 2, w1, 1, 3);
-    else if (P(0x0b,0x02))
-        *dst10 = interp_3px(w4, 5, w3, 2, w0, 1, 3);
-    else if (cond15)
-        *dst10 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond03)
-        *dst10 = interp_2px(w3, 3, w4, 1, 2);
-    else if (cond13)
-        *dst10 = interp_3px(w3, 2, w4, 1, w1, 1, 2);
-    else if (cond12)
-        *dst10 = interp_2px(w3, 5, w1, 3, 3);
-    else if (cond06)
-        *dst10 = interp_2px(w4, 7, w1, 1, 3);
-    else if (P(0x0b,0x08) || P(0xf9,0x68) || P(0x6d,0x6c) || P(0x3d,0x3c) ||
-             P(0xf9,0xf8) || P(0xdd,0xdc) || P(0xdd,0x1c))
-        *dst10 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond14)
-        *dst10 = interp_2px(w3, 1, w4, 1, 1);
-    else
-        *dst10 = interp_2px(w4, 3, w3, 1, 2);
-
-    if ((P(0x7f,0x2b) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7f,0x0f)) &&
-         WDIFF(w3, w1))
-        *dst11 = w4;
-    else if (cond02)
-        *dst11 = interp_2px(w4, 7, w0, 1, 3);
-    else if (cond15)
-        *dst11 = interp_2px(w4, 7, w3, 1, 3);
-    else if (cond11)
-        *dst11 = interp_2px(w4, 7, w1, 1, 3);
-    else if (P(0x0a,0x00) || P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) ||
-             P(0x7e,0x0e))
-        *dst11 = interp_3px(w4, 6, w3, 1, w1, 1, 3);
-    else if (cond07)
-        *dst11 = interp_2px(w4, 7, w0, 1, 3);
-    else
-        *dst11 = w4;
-}
-
-void hqx_filter(uint32_t* src, uint32_t* dst, int width, int height, int n)
-{
-    int x, y;
-    const int dst32_linesize = width * n;
-    const int src32_linesize = width;
-    uint32_t *src32, *dst32;
-
-    src32 = src;
-    dst32 = dst;
-    for (y = 0; y < height; y++) {
-        const int prevline = y > 0          ? -src32_linesize : 0;
-        const int nextline = y < height - 1 ?  src32_linesize : 0;
-
-        for (x = 0; x < width; x++) {
-            const int prevcol = x > 0        ? -1 : 0;
-            const int nextcol = x < width -1 ?  1 : 0;
-            const uint32_t w[3*3] = {
-                src32[prevcol + prevline], src32[prevline], src32[prevline + nextcol],
-                src32[prevcol           ], src32[       0], src32[           nextcol],
-                src32[prevcol + nextline], src32[nextline], src32[nextline + nextcol]
-            };
-            const uint32_t yuv1 = w[4];
-            const int pattern = (w[4] != w[0] ? 1 : 0)
-                              | (w[4] != w[1] ? 1 : 0) << 1
-                              | (w[4] != w[2] ? 1 : 0) << 2
-                              | (w[4] != w[3] ? 1 : 0) << 3
-                              | (w[4] != w[5] ? 1 : 0) << 4
-                              | (w[4] != w[6] ? 1 : 0) << 5
-                              | (w[4] != w[7] ? 1 : 0) << 6
-                              | (w[4] != w[8] ? 1 : 0) << 7;
-
-            if (n == 2) {
-                dst32[dst32_linesize*0 + 0] = hq2x_interp_1x1(pattern, w, 0,1,2,3,4,5,6,7,8);  // 00
-                dst32[dst32_linesize*0 + 1] = hq2x_interp_1x1(pattern, w, 2,1,0,5,4,3,8,7,6);  // 01 (vert mirrored)
-                dst32[dst32_linesize*1 + 0] = hq2x_interp_1x1(pattern, w, 6,7,8,3,4,5,0,1,2);  // 10 (horiz mirrored)
-                dst32[dst32_linesize*1 + 1] = hq2x_interp_1x1(pattern, w, 8,7,6,5,4,3,2,1,0);  // 11 (center mirrored)
-            } else if (n == 3) {
-                hq3x_interp_2x1(dst32,                        dst32_linesize, pattern, w, 0,1, 0,1,2,3,4,5,6,7,8, 0);  // 00 01
-                hq3x_interp_2x1(dst32 + 1,                    dst32_linesize, pattern, w, 1,3, 2,5,8,1,4,7,0,3,6, 1);  // 02 12 (rotated to the right)
-                hq3x_interp_2x1(dst32 + 1*dst32_linesize,     dst32_linesize, pattern, w, 2,0, 6,3,0,7,4,1,8,5,2, 1);  // 20 10 (rotated to the left)
-                hq3x_interp_2x1(dst32 + 1*dst32_linesize + 1, dst32_linesize, pattern, w, 3,2, 8,7,6,5,4,3,2,1,0, 0);  // 22 21 (center mirrored)
-                dst32[dst32_linesize + 1] = w[4];                                                                           // 11
-            } else if (n == 4) {
-                hq4x_interp_2x2(dst32,                        dst32_linesize, pattern, w, 0,1,2,3, 0,1,2,3,4,5,6,7,8); // 00 01 10 11
-                hq4x_interp_2x2(dst32 + 2,                    dst32_linesize, pattern, w, 1,0,3,2, 2,1,0,5,4,3,8,7,6); // 02 03 12 13 (vert mirrored)
-                hq4x_interp_2x2(dst32 + 2*dst32_linesize,     dst32_linesize, pattern, w, 2,3,0,1, 6,7,8,3,4,5,0,1,2); // 20 21 30 31 (horiz mirrored)
-                hq4x_interp_2x2(dst32 + 2*dst32_linesize + 2, dst32_linesize, pattern, w, 3,2,1,0, 8,7,6,5,4,3,2,1,0); // 22 23 32 33 (center mirrored)
-            } else {
-		return;
-            }
-
-            src32 += 1;
-            dst32 += n;
-        }
-	dst32 += dst32_linesize * (n - 1);
-    }
-}
diff --git a/ciolib/hqx.h b/ciolib/hqx.h
deleted file mode 100644
index c9f347e..0000000
--- a/ciolib/hqx.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <inttypes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void hqx_filter(uint32_t* src, uint32_t* dst, int height, int width, int n);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/ciolib/keys.h b/ciolib/keys.h
deleted file mode 100644
index 7a8bdc1..0000000
--- a/ciolib/keys.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* This header file is dead. */
-#error This file is obsolete!
diff --git a/ciolib/makefont.pl b/ciolib/makefont.pl
deleted file mode 100755
index 65d5752..0000000
--- a/ciolib/makefont.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/local/bin/perl
-
-my @sources = (
-	'font/plane00/unifont-base.hex',
-	'font/plane00/spaces.hex',
-	'font/plane00/wqy.hex',
-	'font/plane00/hangul-syllables.hex',
-	'font/plane00/copyleft.hex',
-	'font/plane00csur/plane00csur.hex',
-	'font/plane00csur/plane00csur-spaces.hex',
-	'font/plane00/alt/codepage-437.hex',
-	'font/plane01/plane01.hex',
-	'font/plane01/space.hex',
-	'font/plane0E/plane0E.hex',
-	'font/plane0Fcsur/plane0Fcsur.hex'
-);
-
-my %font;
-foreach my $source (@sources) {
-	open IN,'<',$source;
-	while (<IN>) {
-		chomp;
-		my ($code, $data) = split(':');
-		$code = hex($code);
-		$data =~ s/([0-9A-F]{2})/\\x$1/g;
-		if (defined $font{$code} && $font{$code} ne $data) {
-			if ($source ne './font/plane00/alt/codepage-437.hex') {
-				die "Item $code already exists ($source)!";
-			}
-		}
-		$font{$code} = $data;
-	}
-	close IN;
-}
-
-print "#include <stdint.h>\n";
-print "#include <stdbool.h>\n\n";
-print "struct unifont_entry {\n";
-print "	const uint32_t cp;\n";
-print "	const bool wide;\n";
-print "	const char * const data;\n";
-print "};\n\n";
-print "const struct unifont_entry unifont[",(scalar keys %font),"] = {\n";
-foreach my $cp (sort {$a <=> $b} keys %font) {
-	my $wide = length($font{$cp}) > 64 ? 1 : 0;
-	printf("	{0x%05x, %d, \"%s\"},\n", $cp, $wide, $font{$cp});
-}
-print "};\n";
diff --git a/ciolib/mouse.c b/ciolib/mouse.c
deleted file mode 100644
index 423016d..0000000
--- a/ciolib/mouse.c
+++ /dev/null
@@ -1,612 +0,0 @@
-/* $Id: mouse.c,v 1.48 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <genwrap.h>
-#include <semwrap.h>
-#include <threadwrap.h>
-#include <link_list.h>
-
-#include "ciolib.h"
-
-#define MSEC_CLOCK()	(msclock()*MSCLOCKS_PER_SEC/1000)
-
-enum {
-	 MOUSE_NOSTATE
-	,MOUSE_SINGLEPRESSED
-	,MOUSE_CLICKED
-	,MOUSE_DOUBLEPRESSED
-	,MOUSE_DOUBLECLICKED
-	,MOUSE_TRIPLEPRESSED
-	,MOUSE_TRIPLECLICKED
-	,MOUSE_QUADPRESSED
-	,MOUSE_QUADCLICKED
-	,MOUSE_DRAGSTARTED
-};
-
-struct in_mouse_event {
-	int	event;
-	int	x;
-	int	y;
-	int	x_res;
-	int	y_res;
-	clock_t	ts;
-	void	*nextevent;
-};
-
-struct out_mouse_event {
-	int event;
-	int bstate;
-	int kbsm;		/* Known button state mask */
-	int startx;
-	int starty;
-	int endx;
-	int endy;
-	int startx_res;
-	int starty_res;
-	int endx_res;
-	int endy_res;
-	void *nextevent;
-};
-
-struct mouse_state {
-	int	buttonstate;			/* Current state of all buttons - bitmap */
-	int	knownbuttonstatemask;	/* Mask of buttons that have done something since
-								 * We started watching... the rest are actually in
-								 * an unknown state */
-	int	button_state[5];		/* Expanded state of each button */
-	int	button_x[5];			/* Start X/Y position of the current state */
-	int	button_y[5];
-	int	button_x_res[5];			/* Start X/Y position of the current state */
-	int	button_y_res[5];
-	clock_t	timeout[5];	/* Button event timeouts (timespecs ie: time of expiry) */
-	int	curx;					/* Current X position */
-	int	cury;					/* Current Y position */
-	int	curx_res;					/* Current X position */
-	int	cury_res;					/* Current Y position */
-	int	events;					/* Currently enabled events */
-	int	click_timeout;			/* Timeout between press and release events for a click (ms) */
-	int	multi_timeout;			/* Timeout after a click for detection of multi clicks (ms) */
-	int	click_drift;			/* Allowed "drift" during a click event */
-	link_list_t	input;
-	link_list_t	output;
-};
-
-struct mouse_state state;
-uint64_t mouse_events=0;
-int ciolib_mouse_initialized=0;
-static int ungot=0;
-pthread_mutex_t unget_mutex;
-
-void init_mouse(void)
-{
-	memset(&state,0,sizeof(state));
-	state.click_timeout=0;
-	state.multi_timeout=300;
-	listInit(&state.input,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	listInit(&state.output,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	pthread_mutex_init(&unget_mutex, NULL);
-	ciolib_mouse_initialized=1;
-}
-
-void mousestate(int *x, int *y, uint8_t *buttons)
-{
-	if (!ciolib_mouse_initialized) {
-		if (x)
-			*x = -1;
-		if (y)
-			*y = -1;
-		return;
-	}
-	if (x)
-		*x = state.curx;
-	if (y)
-		*y = state.cury;
-	if (buttons)
-		*buttons = (state.buttonstate & 0xff);
-	return;
-}
-
-void mousestate_res(int *x, int *y, uint8_t *buttons)
-{
-	if (!ciolib_mouse_initialized) {
-		if (x)
-			*x = -1;
-		if (y)
-			*y = -1;
-		return;
-	}
-	if (x)
-		*x = state.curx_res;
-	if (y)
-		*y = state.cury_res;
-	if (buttons)
-		*buttons = (state.buttonstate & 0xff);
-	return;
-}
-
-uint64_t ciomouse_setevents(uint64_t events)
-{
-	mouse_events=events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_addevents(uint64_t events)
-{
-	mouse_events |= events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_delevents(uint64_t events)
-{
-	mouse_events &= ~events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_addevent(uint64_t event)
-{
-	mouse_events |= (UINT64_C(1)<<event);
-	return mouse_events;
-}
-
-uint64_t ciomouse_delevent(uint64_t event)
-{
-	mouse_events &= ~(UINT64_C(1)<<event);
-	return mouse_events;
-}
-
-void ciomouse_gotevent(int event, int x, int y, int x_res, int y_res)
-{
-	struct in_mouse_event *ime;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	ime=(struct in_mouse_event *)malloc(sizeof(struct in_mouse_event));
-	if(ime) {
-		ime->ts=MSEC_CLOCK();
-		ime->event=event;
-		ime->x=x;
-		ime->y=y;
-		ime->x_res=x_res;
-		ime->y_res=y_res;
-		ime->nextevent=NULL;
-
-		listPushNode(&state.input,ime);
-	}
-}
-
-void add_outevent(int event, int x, int y, int xres, int yres)
-{
-	struct out_mouse_event *ome;
-	int	but;
-
-	if(!(mouse_events & UINT64_C(1)<<event))
-		return;
-	ome=(struct out_mouse_event *)malloc(sizeof(struct out_mouse_event));
-
-	if(ome) {
-		but=CIOLIB_BUTTON_NUMBER(event);
-		ome->event=event;
-		ome->bstate=state.buttonstate;
-		ome->kbsm=state.knownbuttonstatemask;
-		ome->startx=but?state.button_x[but-1]:state.curx;
-		ome->starty=but?state.button_y[but-1]:state.cury;
-		ome->endx=x;
-		ome->endy=y;
-		ome->startx_res=but ? state.button_x_res[but-1] : state.curx_res;
-		ome->starty_res=but ? state.button_y_res[but-1] : state.cury_res;
-		ome->endx_res=xres;
-		ome->endy_res=yres;
-
-		ome->nextevent=(struct out_mouse_event *)NULL;
-
-		listPushNode(&state.output,ome);
-	}
-}
-
-int more_multies(int button, int clicks)
-{
-	switch(clicks) {
-		case 0:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 1:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_DBL_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 2:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_TRPL_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 3:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_QUAD_CLICK(button)))
-				return(1);
-			/* Fall-through */
-	}
-	return(0);
-}
-
-void ciolib_mouse_thread(void *data)
-{
-	int	timedout;
-	int timeout_button=0;
-	int but;
-	int delay;
-	clock_t	ttime=0;
-
-	SetThreadName("Mouse");
-	init_mouse();
-	while(1) {
-		timedout=0;
-		if(timeout_button) {
-			delay=state.timeout[timeout_button-1]-MSEC_CLOCK();
-			if(delay<=0) {
-				timedout=1;
-			}
-			else {
-				timedout=!listSemTryWaitBlock(&state.input,delay);
-			}
-		}
-		else {
-			listSemWait(&state.input);
-		}
-		if(timedout) {
-			state.timeout[timeout_button-1]=0;
-			switch(state.button_state[timeout_button-1]) {
-				case MOUSE_SINGLEPRESSED:
-					/* Press event */
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_CLICKED:
-					/* Click Event */
-					add_outevent(CIOLIB_BUTTON_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_DOUBLEPRESSED:
-					/* Click event, then press event */
-					add_outevent(CIOLIB_BUTTON_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_DOUBLECLICKED:
-					/* Double-click event */
-					add_outevent(CIOLIB_BUTTON_DBL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_TRIPLEPRESSED:
-					/* Double-click event, then press event */
-					add_outevent(CIOLIB_BUTTON_DBL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_TRIPLECLICKED:
-					/* Triple-click event */
-					add_outevent(CIOLIB_BUTTON_TRPL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_QUADPRESSED:
-					/* Triple-click evetn then press event */
-					add_outevent(CIOLIB_BUTTON_TRPL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_QUADCLICKED:
-					add_outevent(CIOLIB_BUTTON_QUAD_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					/* Quad click event (This doesn't need a timeout does it? */
-					break;
-			}
-			state.button_state[timeout_button-1]=MOUSE_NOSTATE;
-		}
-		else {
-			struct in_mouse_event *in;
-
-			in=listShiftNode(&state.input);
-			if(in==NULL) {
-				YIELD();
-				continue;
-			}
-			but=CIOLIB_BUTTON_NUMBER(in->event);
-			if (in->x < 0)
-				in->x = state.curx;
-			if (in->y < 0)
-				in->y = state.cury;
-			if (in->x_res < 0)
-				in->x_res = state.curx_res;
-			if (in->y_res < 0)
-				in->y_res = state.cury_res;
-
-			switch(CIOLIB_BUTTON_BASE(in->event)) {
-				case CIOLIB_MOUSE_MOVE:
-					if(in->x==state.curx && in->y==state.cury &&
-					    in->x_res==state.curx_res && in->y_res==state.cury_res)
-						break;
-					add_outevent(CIOLIB_MOUSE_MOVE,in->x,in->y,in->x_res, in->y_res);
-					for(but=1;but<=5;but++) {
-						switch(state.button_state[but-1]) {
-							case MOUSE_NOSTATE:
-								if(state.buttonstate & CIOLIB_BUTTON(but)) {
-									add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-									add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-									state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								}
-								break;
-							case MOUSE_SINGLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_CLICKED:
-								add_outevent(CIOLIB_BUTTON_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_DOUBLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_DOUBLECLICKED:
-								add_outevent(CIOLIB_BUTTON_DBL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_TRIPLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_DBL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_TRIPLECLICKED:
-								add_outevent(CIOLIB_BUTTON_TRPL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_QUADPRESSED:
-								add_outevent(CIOLIB_BUTTON_TRPL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_DRAGSTARTED:
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								break;
-						}
-					}
-					break;
-				case CIOLIB_BUTTON_1_PRESS:
-					state.buttonstate|=1<<(but-1);
-					state.knownbuttonstatemask|=1<<(but-1);
-					switch(state.button_state[but-1]) {
-						case MOUSE_NOSTATE:
-							state.button_state[but-1]=MOUSE_SINGLEPRESSED;
-							state.button_x[but-1]=in->x;
-							state.button_y[but-1]=in->y;
-							state.button_x_res[but-1]=in->x_res;
-							state.button_y_res[but-1]=in->y_res;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							if(!more_multies(but,0)) {
-								add_outevent(CIOLIB_BUTTON_PRESS(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								state.timeout[but-1]=0;
-							}
-							// Scroll "buttons"...
-							if (but > 3)
-								state.button_state[but-1] = MOUSE_NOSTATE;
-							break;
-						case MOUSE_CLICKED:
-							state.button_state[but-1]=MOUSE_DOUBLEPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-						case MOUSE_DOUBLECLICKED:
-							state.button_state[but-1]=MOUSE_TRIPLEPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-						case MOUSE_TRIPLECLICKED:
-							state.button_state[but-1]=MOUSE_QUADPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-					}
-					break;
-				case CIOLIB_BUTTON_1_RELEASE:
-					state.buttonstate&= ~(1<<(but-1));
-					state.knownbuttonstatemask|=1<<(but-1);
-					switch(state.button_state[but-1]) {
-						case MOUSE_NOSTATE:
-							state.button_x[but-1]=in->x;
-							state.button_y[but-1]=in->y;
-							state.button_x_res[but-1]=in->x_res;
-							state.button_y_res[but-1]=in->y_res;
-							add_outevent(CIOLIB_BUTTON_RELEASE(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-							break;
-						case MOUSE_SINGLEPRESSED:
-							state.button_state[but-1]=MOUSE_CLICKED;
-							state.timeout[but-1]=more_multies(but,1)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_DOUBLEPRESSED:
-							state.button_state[but-1]=MOUSE_DOUBLECLICKED;
-							state.timeout[but-1]=more_multies(but,2)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_TRIPLEPRESSED:
-							state.button_state[but-1]=MOUSE_TRIPLECLICKED;
-							state.timeout[but-1]=more_multies(but,3)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_QUADPRESSED:
-							state.button_state[but-1]=MOUSE_NOSTATE;
-							add_outevent(CIOLIB_BUTTON_QUAD_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-							state.timeout[but-1]=0;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_DRAGSTARTED:
-							add_outevent(CIOLIB_BUTTON_DRAG_END(but),in->x,in->y, in->x_res, in->y_res);
-							state.button_state[but-1]=0;
-					}
-			}
-			state.curx=in->x;
-			state.cury=in->y;
-			state.curx_res=in->x_res;
-			state.cury_res=in->y_res;
-
-			free(in);
-		}
-
-		timeout_button=0;
-		for(but=1;but<=5;but++) {
-			if(state.button_state[but-1]==MOUSE_DRAGSTARTED &&
-			    (mouse_events & ((UINT64_C(1)<<CIOLIB_BUTTON_DRAG_START(but)) | (UINT64_C(1)<<CIOLIB_BUTTON_DRAG_MOVE(but)) | (UINT64_C(1)<<CIOLIB_BUTTON_DRAG_END(but)))) == 0)
-				state.button_state[but-1] = MOUSE_NOSTATE;
-		}
-
-		for(but=1;but<=5;but++) {
-			if(state.button_state[but-1]!=MOUSE_NOSTATE 
-					&& state.button_state[but-1]!=MOUSE_DRAGSTARTED 
-					&& state.timeout[but-1]!=0
-					&& (timeout_button==0 || state.timeout[but-1]<ttime)) {
-				ttime=state.timeout[but-1];
-				timeout_button=but;
-			}
-		}
-	}
-}
-
-int mouse_trywait(void)
-{
-	int	result;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	while(1) {
-		result=listSemTryWait(&state.output);
-		pthread_mutex_lock(&unget_mutex);
-		if(ungot==0) {
-			pthread_mutex_unlock(&unget_mutex);
-			return(result);
-		}
-		ungot--;
-		pthread_mutex_unlock(&unget_mutex);
-	}
-}
-
-int mouse_wait(void)
-{
-	int result;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	while(1) {
-		result=listSemWait(&state.output);
-		pthread_mutex_lock(&unget_mutex);
-		if(ungot==0) {
-			pthread_mutex_unlock(&unget_mutex);
-			return(result);
-		}
-		ungot--;
-		pthread_mutex_unlock(&unget_mutex);
-	}
-}
-
-int mouse_pending(void)
-{
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	return(listCountNodes(&state.output));
-}
-
-int ciolib_getmouse(struct mouse_event *mevent)
-{
-	int retval=0;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	if(listCountNodes(&state.output)) {
-		struct out_mouse_event *out;
-		out=listShiftNode(&state.output);
-		if(out==NULL)
-			return(-1);
-		if(mevent != NULL) {
-			mevent->event=out->event;
-			mevent->bstate=out->bstate;
-			mevent->kbsm=out->kbsm;
-			mevent->startx=out->startx;
-			mevent->starty=out->starty;
-			mevent->endx=out->endx;
-			mevent->endy=out->endy;
-			mevent->startx_res=out->startx_res;
-			mevent->starty_res=out->starty_res;
-			mevent->endx_res=out->endx_res;
-			mevent->endy_res=out->endy_res;
-		}
-		free(out);
-	}
-	else {
-		fprintf(stderr,"WARNING: attempt to get a mouse key when none pending!\n");
-		if(mevent != NULL)
-			memset(mevent,0,sizeof(struct mouse_event));
-		retval=-1;
-	}
-	return(retval);
-}
-
-int ciolib_ungetmouse(struct mouse_event *mevent)
-{
-	struct mouse_event *me;
-
-	if((me=(struct mouse_event *)malloc(sizeof(struct mouse_event)))==NULL)
-		return(-1);
-	memcpy(me,mevent,sizeof(struct mouse_event));
-	pthread_mutex_lock(&unget_mutex);
-	if(listInsertNode(&state.output,me)==NULL) {
-		pthread_mutex_unlock(&unget_mutex);
-		return(FALSE);
-	}
-	ungot++;
-	pthread_mutex_unlock(&unget_mutex);
-	return(TRUE);
-}
diff --git a/ciolib/mouse.h b/ciolib/mouse.h
deleted file mode 100644
index 7a8bdc1..0000000
--- a/ciolib/mouse.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* This header file is dead. */
-#error This file is obsolete!
diff --git a/ciolib/pasteboard.h b/ciolib/pasteboard.h
deleted file mode 100644
index b0b0eb9..0000000
--- a/ciolib/pasteboard.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _PASTEBOARD_H_
-#define _PASTEBOARD_H_
-
-#include <stddef.h>
-
-void OSX_copytext(const char *text, size_t len);
-char *OSX_getcliptext(void);
-
-#endif
diff --git a/ciolib/pasteboard.m b/ciolib/pasteboard.m
deleted file mode 100644
index 31dcb21..0000000
--- a/ciolib/pasteboard.m
+++ /dev/null
@@ -1,34 +0,0 @@
-#import <Foundation/Foundation.h>
-#import <Cocoa/Cocoa.h>
-
-#include <stddef.h>
-
-void OSX_copytext(const char *text, size_t len)
-{
-	NSString *cp = [[NSString alloc] initWithBytes:text length:len encoding:CFStringConvertEncodingToNSStringEncoding(CFStringConvertWindowsCodepageToEncoding(437))];
-	if (cp != nil) {
-		NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
-		[pasteboard clearContents];
-		NSArray *copiedObjects = [NSArray arrayWithObject:cp];
-		[pasteboard writeObjects:copiedObjects];
-	}
-	[cp release];
-}
-
-char *OSX_getcliptext(void)
-{
-	NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
-	NSArray *classArray = [NSArray arrayWithObject:[NSString class]];
-    NSDictionary *options = [NSDictionary dictionary];
-	BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options];
-	if (ok) {
-		NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options];
-		NSString *ct = [objectsToPaste objectAtIndex:0];
-		if (ct != nil) {
-			const char *ptr = [ct cStringUsingEncoding:CFStringConvertEncodingToNSStringEncoding(CFStringConvertWindowsCodepageToEncoding(437))];
-			if (ptr)
-				return strdup(ptr);
-		}
-	}
-	return NULL;
-}
diff --git a/ciolib/petscii.c b/ciolib/petscii.c
deleted file mode 100644
index 597d55c..0000000
--- a/ciolib/petscii.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include "ciolib.h"
-
-struct ascii_trans {
-	unsigned char	native;
-	unsigned char	cp437;
-};
-
-struct key_trans {
-	int	keypress;
-	int	translated;
-};
-
-struct ascii_trans display_petscii[] = {
-	 {32,' '}
-	,{33,'!'}
-	,{34,'"'}
-	,{35,'#'}
-	,{36,'$'}
-	,{37,'%'}
-	,{38,'&'}
-	,{39,'\''}
-	,{40,'('}
-	,{41,')'}
-	,{42,'*'}
-	,{43,'+'}
-	,{44,','}
-	,{45,'-'}
-	,{46,'.'}
-	,{47,'/'}
-	,{48,'0'}
-	,{49,'1'}
-	,{50,'2'}
-	,{51,'3'}
-	,{52,'4'}
-	,{53,'5'}
-	,{54,'6'}
-	,{55,'7'}
-	,{56,'8'}
-	,{57,'9'}
-	,{58,':'}
-	,{59,';'}
-	,{60,'<'}
-	,{61,'='}
-	,{62,'>'}
-	,{63,'?'}
-	,{64,'@'}
-	,{65,'a'}
-	,{66,'b'}
-	,{67,'c'}
-	,{68,'d'}
-	,{69,'e'}
-	,{70,'f'}
-	,{71,'g'}
-	,{72,'h'}
-	,{73,'i'}
-	,{74,'j'}
-	,{75,'k'}
-	,{76,'l'}
-	,{77,'m'}
-	,{78,'n'}
-	,{79,'o'}
-	,{80,'p'}
-	,{81,'q'}
-	,{82,'r'}
-	,{83,'s'}
-	,{84,'t'}
-	,{85,'u'}
-	,{86,'v'}
-	,{87,'w'}
-	,{88,'x'}
-	,{89,'y'}
-	,{90,'z'}
-	,{91,'['}
-	,{92,156}
-	,{93,']'}
-	,{94,24}
-	,{95,27}
-	,{96,196}
-	,{97,'A'}
-	,{98,'B'}
-	,{99,'C'}
-	,{100,'D'}
-	,{101,'E'}
-	,{102,'F'}
-	,{103,'G'}
-	,{104,'H'}
-	,{105,'I'}
-	,{106,'J'}
-	,{107,'K'}
-	,{108,'L'}
-	,{109,'M'}
-	,{110,'N'}
-	,{111,'O'}
-	,{112,'P'}
-	,{113,'Q'}
-	,{114,'R'}
-	,{115,'S'}
-	,{116,'T'}
-	,{117,'U'}
-	,{118,'V'}
-	,{119,'W'}
-	,{120,'X'}
-	,{121,'Y'}
-	,{122,'Z'}
-	,{123,197}
-	,{124,181}	///* Left side fine 50% checker */
-	,{125,179}
-	,{126,178}	///* Course 50% checker */
-	,{127,176}	///* Horizontal cross-hatch (light shade) */
-	,{160,255}
-	,{161,221}
-	,{162,220}
-	,{163,'^'}	/* Row 1 set */
-	,{164,'_'}	///* Row 8 set */
-	,{165,'{'}	/* Col 1 set */
-	,{166,177}	///* Fine 50% checker */
-	,{167,'}'}	/* Col 8 set */
-	,{168,210}	///* Bottom fine 50% checker */
-	,{169,31}	/* Top left half set */
-	,{170,245}	/* Cols 7 & 8 set */
-	,{171,195}
-	,{172,201}	///* Bottom right quadrant set */
-	,{173,192}
-	,{174,191}
-	,{175,205}	/* Rows 7 & 8 set */
-	,{176,218}
-	,{177,193}
-	,{178,194}
-	,{179,180}
-	,{180,244}	/* Cols 1 & 2 set */
-	,{181,185}	/* Cols 1, 2, & 3 set */
-	,{182,222}	/* Cols 6, 7, & 8 set */
-	,{183,169}	/* Rows 1 & 2 set */
-	,{184,223}	/* Rows 1, 2, & 3 set */
-	,{185,22}	/* Rows 6, 7, & 8 set */
-	,{186,251}
-	,{187,187}	///* Bottom left quadrant set */
-	,{188,200}	///* Top right quadrant set */
-	,{189,217}
-	,{190,188}	///* Top left quadrant set */
-	,{191,206}	/* Top left and bottom right quadrants set */
-};
-
-struct key_trans input_petscii[] = {
-	 {'A', 'a'}
-	,{'B', 'b'}
-	,{'C', 'c'}
-	,{'D', 'd'}
-	,{'E', 'e'}
-	,{'F', 'f'}
-	,{'G', 'g'}
-	,{'H', 'h'}
-	,{'I', 'i'}
-	,{'J', 'j'}
-	,{'K', 'k'}
-	,{'L', 'l'}
-	,{'M', 'm'}
-	,{'N', 'n'}
-	,{'O', 'o'}
-	,{'P', 'p'}
-	,{'Q', 'q'}
-	,{'R', 'r'}
-	,{'S', 's'}
-	,{'T', 't'}
-	,{'U', 'u'}
-	,{'V', 'v'}
-	,{'W', 'w'}
-	,{'X', 'x'}
-	,{'Y', 'y'}
-	,{'Z', 'z'}
-	,{'a', 'A'}
-	,{'b', 'B'}
-	,{'c', 'C'}
-	,{'d', 'D'}
-	,{'e', 'E'}
-	,{'f', 'F'}
-	,{'g', 'G'}
-	,{'h', 'H'}
-	,{'i', 'I'}
-	,{'j', 'J'}
-	,{'k', 'K'}
-	,{'l', 'L'}
-	,{'m', 'M'}
-	,{'n', 'N'}
-	,{'o', 'O'}
-	,{'p', 'P'}
-	,{'q', 'Q'}
-	,{'r', 'R'}
-	,{'s', 'S'}
-	,{'t', 'T'}
-	,{'u', 'U'}
-	,{'v', 'V'}
-	,{'w', 'W'}
-	,{'x', 'X'}
-	,{'y', 'Y'}
-	,{'z', 'Z'}
-	,{'\n',141}
-	,{CIO_KEY_DOWN, 17}
-	,{CIO_KEY_HOME, 19}
-	,{CIO_KEY_DC, 20}
-	,{'\b', 20}
-	,{CIO_KEY_RIGHT, 29}
-	,{CIO_KEY_F(1), 133}
-	,{CIO_KEY_F(3), 134}
-	,{CIO_KEY_F(5), 135}
-	,{CIO_KEY_F(7), 136}
-	,{CIO_KEY_F(2), 137}
-	,{CIO_KEY_F(4), 138}
-	,{CIO_KEY_F(6), 139}
-	,{CIO_KEY_F(8), 140}
-	,{CIO_KEY_UP, 145}
-	,{CIO_KEY_IC, 148}
-	,{CIO_KEY_LEFT, 157}
-	,{CIO_KEY_END, 147}
-	,{CIO_KEY_PPAGE, 131}
-	,{CIO_KEY_NPAGE, 3}
-};
-
diff --git a/ciolib/scale.c b/ciolib/scale.c
deleted file mode 100644
index 6a9154c..0000000
--- a/ciolib/scale.c
+++ /dev/null
@@ -1,893 +0,0 @@
-#include <math.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "ciolib.h"
-#include "scale.h"
-#include "xbr.h"
-
-uint32_t r2y[1<<24];
-uint32_t y2r[1<<24];
-static int r2y_inited;
-
-static void pointy_scale3(uint32_t* src, uint32_t* dest, int width, int height);
-static void pointy_scale5(uint32_t* src, uint32_t* dest, int width, int height);
-static void pointy_scale_odd(uint32_t* src, uint32_t* dest, int width, int height, int mult);
-static void interpolate_height(uint32_t* src, uint32_t* dst, int width, int height, int newheight);
-static void interpolate_width(uint32_t* src, uint32_t* dst, int width, int height, int newwidth);
-static void multiply_scale(uint32_t* src, uint32_t* dst, int width, int height, int xmult, int ymult);
-
-static struct graphics_buffer *free_list;
-
-#define CLAMP(x) do { \
-	if (x < 0) \
-		x = 0; \
-	else if (x > 255) \
-		x = 255; \
-} while(0)
-
-/*
- * Corrects width/height to have the specified aspect ratio
- */
-void
-aspect_fix(int *x, int *y, int aspect_width, int aspect_height)
-{
-	int bestx, besty;
-
-	// Nothing we can do here...
-	if (aspect_width == 0 || aspect_height == 0)
-		return;
-	bestx = lround((double)*y * aspect_width / aspect_height);
-	besty = lround((double)*x * aspect_height / aspect_width);
-
-	if (bestx < *x && bestx > 0)
-		*x = bestx;
-	else
-		*y = besty;
-}
-
-/*
- * Given a width/height of a source image, adjust it to match the current aspect
- * ratio.  Will not reduce either number
- */
-void
-aspect_correct(int *x, int *y, int aspect_width, int aspect_height)
-{
-	int width = *x;
-	int height;
-
-	if (!aspect_height || !aspect_width)
-		return;
-	height = lround((double)(width * aspect_height) / aspect_width);
-	if (height < *y) {
-		height = *y;
-		width = lround(((double)height * aspect_width) / aspect_height);
-	}
-
-	*x = width;
-	*y = height;
-}
-
-/*
- * Essentially the opposite of the above.  Given an output width/height, translates to
- * the size of the source image.
- *
- * Note that this is much trickier as the "source" bitmap may have been integer scaled
- * differently in both directions... so what this does is reverse the aspect ratio
- * calculation, then find the next lowest even multiple of the mode bitmap size.
- */
-void
-aspect_reverse(int *x, int *y, int scrnwidth, int scrnheight, int aspect_width, int aspect_height)
-{
-	int width = *x;
-	int height = *y;
-	int cheight;
-	int cwidth;
-
-	if (!aspect_height || !aspect_width) {
-		width = scrnwidth * (*x / scrnwidth);
-		if (width < scrnwidth)
-			width = scrnwidth;
-		height = scrnheight * (*x / scrnheight);
-		if (height < scrnheight)
-			height = scrnheight;
-		return;
-	}
-	// First, find the "controlling" dimension... the one that won't be scaled (ie: the one that gets smaller)
-	cwidth = lround((double)(height * aspect_width) / aspect_height * scrnwidth / scrnheight);
-	cheight = lround((double)(width * aspect_height) / aspect_width * scrnheight / scrnwidth);
-	if (cwidth > width) {
-		// Width controls, so this is simply finding the largest width multiple that fits in the box
-		width = scrnwidth * (*x / scrnwidth);
-		if (width < scrnwidth)
-			width = scrnwidth;
-
-		// Now we need to find the largest bitmap height that would fit in the output height
-		// So, we scale the height to bitmap size...
-		height = lround((double)*y / ((double)scrnwidth / scrnheight) * ((double)aspect_width / aspect_height));
-		// And do the same calculation...
-		height = lround((double)scrnheight * ((double)height / scrnheight));
-	}
-	else if (cheight > height) {
-		// Height controls
-		height = scrnheight * (*x / scrnheight);
-		if (height < scrnheight)
-			height = scrnheight;
-
-		width = lround((double)*x / ((double)scrnheight / scrnwidth) * ((double)aspect_height / aspect_width));
-		width = lround((double)scrnwidth * ((double)width / scrnwidth));
-	}
-
-	*x = width;
-	*y = height;
-}
-
-void
-init_r2y(void)
-{
-	int r, g, b;
-	int y, u, v;
-	const double luma = 255.0 / 219;
-	const double col  = 255.0 / 224;
-
-	if (r2y_inited)
-		return;
-	for (r = 0; r < 256; r++) {
-		for (g = 0; g < 256; g++) {
-			for (b = 0; b < 256; b++) {
-				y =  16 + ( 65.738 * r + 129.057 * g +  25.064 * b + 128) / 256;
-				CLAMP(y);
-				u = 128 + (-37.945 * r -  74.494 * g + 112.439 * b + 128) / 256;
-				CLAMP(u);
-				v = 128 + (112.439 * r -  94.154 * g -  18.285 * b + 128) / 256;
-				CLAMP(v);
-
-				r2y[(r<<16) | (g<<8) | b] = (y<<16)|(u<<8)|v;
-			}
-		}
-	}
-	for (y = 0; y < 256; y++) {
-		for (u = 0; u < 256; u++) {
-			for (v = 0; v < 256; v++) {
-				const int c = y - 16;
-				const int d = u - 128;
-				const int e = v - 128;
-				r = luma * c                                     + col * 1.402 * e;
-				CLAMP(r);
-				g = luma * c - col * 1.772 * (0.114 / 0.587) * d - col * 1.402 * (0.299 / 0.587) * e;
-				CLAMP(g);
-				b = luma * c + col * 1.772 * d;
-				CLAMP(b);
-
-				y2r[(y<<16) | (u<<8) | v] = (r<<16)|(g<<8)|b;
-			}
-		}
-	}
-	r2y_inited = 1;
-}
-
-struct graphics_buffer *
-get_buffer(void)
-{
-	struct graphics_buffer* ret = NULL;
-
-	if (free_list) {
-		ret = free_list;
-		free_list = free_list->next;
-		ret->next = NULL;
-		return ret;
-	}
-
-	ret = calloc(1, sizeof(struct graphics_buffer));
-	return ret;
-}
-
-void
-release_buffer(struct graphics_buffer *buf)
-{
-	if (buf == NULL)
-		return;
-	buf->next = free_list;
-	free_list = buf;
-}
-
-struct graphics_buffer *
-do_scale(struct rectlist* rect, int xscale, int yscale, int aspect_width, int aspect_height)
-{
-	struct graphics_buffer* ret1 = get_buffer();
-	struct graphics_buffer* ret2 = get_buffer();
-	int pointymult = 1;
-	int pointy5 = 0;
-	int pointy3 = 0;
-	int xbr2 = 0;
-	int xbr4 = 0;
-	int ymult = 1;
-	int xmult = 1;
-	int total_xscaling = 1;
-	int total_yscaling = 1;
-	struct graphics_buffer *ctarget;
-	struct graphics_buffer *csrc;
-	uint32_t* nt;
-	int fheight;
-	int fwidth;
-	bool swapxy = false;
-
-	if (xscale > yscale) {
-		swapxy = true;
-		total_xscaling = xscale;
-		xscale = yscale;
-		yscale = total_xscaling;
-	}
-	total_xscaling = xscale;
-	xscale = 1;
-	total_yscaling = yscale;
-	yscale = 1;
-	// If x/y scaling isn't a simple multiple, block scale everything...
-	if ((total_yscaling % total_xscaling) == 0) {
-		if (!(cio_api.options & CONIO_OPT_BLOCKY_SCALING)) {
-			if ((total_xscaling & 1) == 1 && total_xscaling > 5) {
-				pointymult = total_xscaling;
-				total_xscaling /= pointymult;
-				xscale *= pointymult;
-				total_yscaling /= pointymult;
-				yscale *= pointymult;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 5) == 0) && ((total_yscaling % 5) == 0)) {
-				pointy5++;
-				total_xscaling /= 5;
-				xscale *= 5;
-				total_yscaling /= 5;
-				yscale *= 5;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 3) == 0) && ((total_yscaling % 3) == 0)) {
-				pointy3++;
-				total_xscaling /= 3;
-				xscale *= 3;
-				total_yscaling /= 3;
-				yscale *= 3;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 4) == 0) && ((total_yscaling % 4) == 0)) {
-				xbr4++;
-				total_xscaling /= 4;
-				xscale *= 4;
-				total_yscaling /= 4;
-				yscale *= 4;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 2) == 0) && ((total_yscaling % 2) == 0)) {
-				xbr2++;
-				total_xscaling /= 2;
-				xscale *= 2;
-				total_yscaling /= 2;
-				yscale *= 2;
-			}
-		}
-	}
-
-	xmult = total_xscaling;
-	xscale *= xmult;
-	total_xscaling = 1;
-
-	ymult = total_yscaling;
-	yscale *= ymult;
-	total_yscaling = 1;
-
-	if (swapxy) {
-		int tmp;
-
-		tmp = ymult;
-		ymult = xmult;
-		xmult = tmp;
-
-		tmp = xscale;
-		xscale = yscale;
-		yscale = tmp;
-	}
-
-	// Calculate the scaled height from rxscaleatio...
-	fwidth = rect->rect.width * xscale;
-	fheight = rect->rect.height * yscale;
-	aspect_correct(&fwidth, &fheight, aspect_width, aspect_height);
-
-	// Now make sure target is big enough...
-	size_t needsz = fwidth * fheight * sizeof(uint32_t);
-	if (needsz > ret1->sz) {
-		nt = realloc(ret1->data, needsz);
-		if (nt == NULL) {
-			release_buffer(ret1);
-			release_buffer(ret2);
-			return NULL;
-		}
-		ret1->data = nt;
-		ret1->sz = needsz;
-	}
-
-	if (needsz > ret2->sz) {
-		nt = realloc(ret2->data, needsz);
-		if (nt == NULL) {
-			release_buffer(ret1);
-			release_buffer(ret2);
-			return NULL;
-		}
-		ret2->data = nt;
-		ret2->sz = needsz;
-	}
-
-	// Copy rect into first buffer
-	// TODO: Unify bitmap rects and scaling buffers so this can just whomp on over.
-	csrc = ret1;
-	ctarget = ret2;
-	memcpy(csrc->data, rect->data, rect->rect.width * rect->rect.height * sizeof(rect->data[0]));
-	csrc->w = rect->rect.width;
-	csrc->h = rect->rect.height;
-
-#if 0
-fprintf(stderr, "Plan:\n"
-"start:       %dx%d\n"
-"pointymulti: %d\n"
-"pointy5:     %d\n"
-"pointy3:     %d\n"
-"xBR4:        %d\n"
-"xBR2:        %d\n"
-"Multiply:    %dx%d\n"
-"hinterp:     %zu -> %zu\n"
-"winterp:     %zu -> %zu\n",
-csrc->w, csrc->h, pointymult, pointy5, pointy3, xbr4, xbr2, xmult, ymult, csrc->h * yscale, fheight, csrc->w * xscale, fwidth);
-#endif
-	// And scale...
-	if (ymult != 1 || xmult != 1) {
-		multiply_scale(csrc->data, ctarget->data, csrc->w, csrc->h, xmult, ymult);
-		ctarget->w = csrc->w * xmult;
-		ctarget->h = csrc->h * ymult;
-		ymult = 1;
-		xmult = 1;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	if (pointymult > 1 && pointymult & 1) {
-		pointy_scale_odd(csrc->data, ctarget->data, csrc->w, csrc->h, pointymult);
-		ctarget->w = csrc->w * pointymult;
-		ctarget->h = csrc->h * pointymult;
-		pointymult = 1;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (pointy5 > 0) {
-		pointy_scale5(csrc->data, ctarget->data, csrc->w, csrc->h);
-		pointy5--;
-		ctarget->w = csrc->w * 5;
-		ctarget->h = csrc->h * 5;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (pointy3 > 0) {
-		pointy_scale3(csrc->data, ctarget->data, csrc->w, csrc->h);
-		pointy3--;
-		ctarget->w = csrc->w * 3;
-		ctarget->h = csrc->h * 3;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (xbr4 > 0) {
-		xbr_filter(csrc->data, ctarget->data, csrc->w, csrc->h, 4);
-		xbr4--;
-		ctarget->w = csrc->w * 4;
-		ctarget->h = csrc->h * 4;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (xbr2 > 0) {
-		xbr_filter(csrc->data, ctarget->data, csrc->w, csrc->h, 2);
-		xbr2--;
-		ctarget->w = csrc->w * 2;
-		ctarget->h = csrc->h * 2;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	// And finally, interpolate if needed
-	if (fheight != csrc->h) {
-		interpolate_height(csrc->data, ctarget->data, csrc->w, csrc->h, fheight);
-		ctarget->h = fheight;
-		ctarget->w = csrc->w;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	if (fwidth != csrc->w) {
-		interpolate_width(csrc->data, ctarget->data, csrc->w, csrc->h, fwidth);
-		ctarget->h = csrc->h;
-		ctarget->w = fwidth;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	release_buffer(ctarget);
-	return csrc;
-}
-
-static void
-pointy_scale_odd(uint32_t* src, uint32_t* dest, int width, int height, int mult)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int prevline, prevcol, nextline, nextcol;
-	int i, j;
-	int mid = mult / 2;
-	int multoff = mult - 1;
-	int dline = width * mult;
-	int dbott;
-	int dstripe = dline * mult;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			for (i = 0; i < mid; i++) {
-				d = &dest[dstripe * y + dline * i + x * mult];
-				dbott = dline * (multoff - i * 2);
-
-				for (j = 0; j < mid - i; j++) {
-					if (s[prevline + prevcol] == s[0]) {
-						d[j] = s[0];
-					}
-					else if (s[prevline] == s[prevcol]) {
-						d[j] = s[prevcol];
-					}
-					else {
-						d[j] = s[0];
-					}
-
-					if (s[prevline + nextcol] == s[0]) {
-						d[multoff - j] = s[0];
-					}
-					else if (s[prevline] == s[nextcol]) {
-						d[multoff - j] = s[nextcol];
-					}
-					else {
-						d[multoff - j] = s[0];
-					}
-
-					if (s[prevcol + nextline] == s[0]) {
-						d[dbott + j] = s[0];
-					}
-					else if(s[prevcol] == s[nextline]) {
-						d[dbott + j] = s[prevcol];
-					}
-					else {
-						d[dbott + j] = s[0];
-					}
-
-					if (s[nextcol + nextline] == s[0]) {
-						d[dbott + multoff - j] = s[0];
-					}
-					else if (s[nextcol] == s[nextline]) {
-						d[dbott + multoff - j] = s[nextcol];
-					}
-					else {
-						d[dbott + multoff - j] = s[0];
-					}
-				}
-
-				// And the rest is always kept the same
-				for (; j < mid; j++) {
-					d[j] = s[0];
-					d[multoff - j] = s[0];
-					d[dbott + j] = s[0];
-					d[dbott + multoff - j] = s[0];
-				}
-
-				// And the middle dot.
-				d[j] = s[0];
-				d[dbott + j] = s[0];
-			}
-
-			d = &dest[dstripe * y + dline * i + x * mult];
-
-			for (j = 0; j < mid; j++) {
-				d[j] = s[0];
-				d[multoff - j] = s[0];
-			}
-			d[j] = s[0];
-
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static void
-pointy_scale5(uint32_t* src, uint32_t* dest, int width, int height)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int w5 = width * 5;
-	int w10 = width * 10;
-	int w15 = width * 15;
-	int w20 = width * 20;
-	int prevline, prevcol, nextline, nextcol;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			if (s[prevline + prevcol] == s[0]) {
-				d[0] = s[0];
-				d[1] = s[0];
-				d[w5] = s[0];
-			}
-			else if (s[prevcol] == s[prevline]) {
-				d[0] = s[prevcol];
-				d[1] = s[prevcol];
-				d[w5] = s[prevcol];
-			}
-			else {
-				d[0] = *s;
-				d[1] = *s;
-				d[w5] = *s;
-			}
-
-			// Top-middle stays OG.
-			d[2] = *s;
-			d[w5+1] = *s;
-			d[w5+2] = *s;
-			d[w5+3] = *s;
-
-			// And so on around the outside (round the outside)
-			if (s[prevline + nextcol] == s[0]) {
-				d[3] = s[0];
-				d[4] = s[0];
-				d[w5 + 4] = s[0];
-			}
-			else if (s[nextcol] == s[prevline]) {
-				d[3] = s[nextcol];
-				d[4] = s[nextcol];
-				d[w5 + 4] = s[nextcol];
-			}
-			else {
-				d[3] = s[0];
-				d[4] = s[0];
-				d[w5 + 4] = s[0];
-			}
-
-			d[w10] = *s;
-			d[w10+1] = *s;
-			d[w10+2] = *s;
-			d[w10+3] = *s;
-			d[w10+4] = *s;
-
-			if (s[prevcol + nextline] == s[0]) {
-				d[w15] = s[0];
-				d[w20] = s[0];
-				d[w20 + 1] = s[0];
-			}
-			else if(s[prevcol] == s[nextline]) {
-				d[w15] = s[prevcol];
-				d[w20] = s[prevcol];
-				d[w20 + 1] = s[prevcol];
-			}
-			else {
-				d[w15] = s[0];
-				d[w20] = s[0];
-				d[w20 + 1] = s[0];
-			}
-
-			d[w15 + 1] = *s;
-			d[w15 + 2] = *s;
-			d[w15 + 3] = *s;
-			d[w20 + 2] = *s;
-
-			if (s[nextcol + nextline] == s[0]) {
-				d[w15 + 4] = s[0];
-				d[w20 + 3] = s[0];
-				d[w20 + 4] = s[0];
-			}
-			else if (s[nextcol] == s[nextline]) {
-				d[w15 + 4] = s[nextcol];
-				d[w20 + 3] = s[nextcol];
-				d[w20 + 4] = s[nextcol];
-			}
-			else {
-				d[w15 + 4] = s[0];
-				d[w20 + 3] = s[0];
-				d[w20 + 4] = s[0];
-			}
-
-			d += 5;
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		d += w20;
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static void
-pointy_scale3(uint32_t* src, uint32_t* dest, int width, int height)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int w3 = width * 3;
-	int w6 = width * 6;
-	int prevline, prevcol, nextline, nextcol;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			// Top-left is filled if both left and top are the same.
-			if (s[prevline + prevcol] == s[0])
-				d[0] = s[0];
-			else if (s[prevcol] == s[prevline])
-				d[0] = s[prevcol];
-			else
-				d[0] = *s;
-
-			// Top-middle stays OG.
-			d[1] = *s;
-
-			// And so on around the outside (round the outside)
-			if (s[prevline + nextcol] == s[0])
-				d[2] = s[0];
-			else if (s[nextcol] == s[prevline])
-				d[2] = s[nextcol];
-			else
-				d[2] = *s;
-
-			d[w3] = *s;
-			d[w3 + 1] = *s;
-			d[w3 + 2] = *s;
-
-			if (s[prevcol + nextline] == s[0])
-				d[w6] = s[0];
-			else if(s[prevcol] == s[nextline])
-				d[w6] = s[prevcol];
-			else
-				d[w6] = *s;
-
-			d[w6 + 1] = *s;
-
-			if (s[nextcol + nextline] == s[0])
-				d[w6 + 2] = s[0];
-			else if (s[nextcol] == s[nextline])
-				d[w6 + 2] = s[nextcol];
-			else
-				d[w6 + 2] = s[0];
-
-			d += 3;
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		d += w6;
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static uint32_t
-blend(const uint32_t c1, const uint32_t c2, int weight)
-{
-	uint8_t yuv1[4];
-	uint8_t yuv2[4];
-	uint8_t yuv3[4];
-	const double iw = 256 - weight;
-
-	*(uint32_t *)yuv1 = r2y[c1];
-	*(uint32_t *)yuv2 = r2y[c2];
-#ifdef __BIG_ENDIAN__
-	yuv3[0] = 0;
-	yuv3[1] = (yuv1[1] * iw + yuv2[1] * weight) / 256;
-	yuv3[2] = (yuv1[2] * iw + yuv2[2] * weight) / 256;
-	yuv3[3] = (yuv1[3] * iw + yuv2[3] * weight) / 256;
-#else
-	yuv3[3] = 0;
-	yuv3[2] = (yuv1[2] * iw + yuv2[2] * weight) / 256;
-	yuv3[1] = (yuv1[1] * iw + yuv2[1] * weight) / 256;
-	yuv3[0] = (yuv1[0] * iw + yuv2[0] * weight) / 256;
-#endif
-
-	return y2r[*(uint32_t*)yuv3];
-}
-
-/*
- * This does non-integer *width* scaling.  It does not scale in the other
- * direction.  This does the interpolation using Y'UV to prevent dimming of
- * pixels.
- */
-static void
-interpolate_width(uint32_t* src, uint32_t* dst, int width, int height, int newwidth)
-{
-	int x, y;
-	const double mult = (double)width / newwidth;
-
-	for (y = 0; y < height; y++) {
-		for (x = 0; x < newwidth; x++) {
-			// First, calculate which two pixels this is between.
-			const double xpos = mult * x;
-			const int xposi = xpos;
-			if (x == xpos) {
-				// Exact match!
-				*dst = src[width * y + x];
-			}
-			else {
-				const double weight = xpos - xposi;
-				// Now pick the two pixels
-				const uint32_t pix1 = src[y * width + xposi];
-				uint32_t pix2;
-				if (xposi < width - 1)
-					pix2 = src[y * width + xposi + 1];
-				else
-					pix2 = src[y * width + xposi];
-				if (pix1 == pix2)
-					*dst = pix1;
-				else {
-					*dst = blend(pix1, pix2, weight);
-				}
-			}
-			dst++;
-		}
-	}
-}
-
-/*
- * This does non-integer *height* scaling.  It does not scale in the other
- * direction.  This does the interpolation using Y'UV to prevent dimming of
- * pixels.
- */
-static void
-interpolate_height(uint32_t* src, uint32_t* dst, int width, int height, int newheight)
-{
-	int x, y;
-	const double mult = (double)height / newheight;
-	double ypos = 0;
-	int last_yposi = 0;
-	int ywn = width;
-	static uint32_t *nline = NULL;
-	static uint32_t *tline = NULL;
-	static size_t nsz = 0;
-	static size_t tsz = 0;
-	uint32_t *stmp;
-
-	if (nsz < width * 4) {
-		stmp = realloc(nline, width * 4);
-		if (stmp == NULL)
-			goto fail;
-		nline = stmp;
-		nsz = width * 4;
-	}
-	if (tsz < width * 4) {
-		stmp = realloc(tline, width * 4);
-		if (stmp == NULL)
-			goto fail;
-		tline = stmp;
-		tsz = width * 4;
-	}
-
-	memcpy(tline, src, width * sizeof(*tline));
-	memcpy(nline, src + width, width * sizeof(*tline));
-	for (y = 0; y < newheight; y++) {
-		const int yposi = ypos;
-		if (yposi != last_yposi) {
-			ywn += width;
-			last_yposi = yposi;
-			stmp = tline;
-			tline = nline;
-			nline = stmp;
-			memcpy(nline, &src[ywn], nsz);
-		}
-		if (y == ypos || yposi >= height - 1) {
-			memcpy(dst, tline, tsz);
-			dst += width;
-		}
-		else {
-			const uint8_t weight = ypos * 256;
-			for (x = 0; x < width; x++) {
-				// Now pick the two pixels
-				const uint32_t pix1 = tline[x];
-				const uint32_t pix2 = nline[x];
-				if (pix1 == pix2)
-					*dst = pix1;
-				else
-					*dst = blend(pix1, pix2, weight);
-				dst++;
-			}
-		}
-		ypos += mult;
-	}
-
-	return;
-fail:
-	free(nline);
-	free(tline);
-	nline = NULL;
-	tline = NULL;
-	nsz = 0;
-	tsz = 0;
-	memcpy(src, dst, width * height * sizeof(*src));
-	fprintf(stderr, "Allocation failure in interpolate_height()!");
-}
-
-static void
-multiply_scale(uint32_t* src, uint32_t* dst, int width, int height, int xmult, int ymult)
-{
-	int x, y;
-	int mx, my;
-	uint32_t* slstart;
-
-	for (y = 0; y < height; y++) {
-		slstart = src;
-		for (my = 0; my < ymult; my++) {
-			src = slstart;
-			for (x = 0; x < width; x++) {
-				for (mx = 0; mx < xmult; mx++) {
-					*dst = *src;
-					dst++;
-				}
-				src++;
-			}
-		}
-	}
-}
diff --git a/ciolib/scale.h b/ciolib/scale.h
deleted file mode 100644
index efead79..0000000
--- a/ciolib/scale.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "bitmap_con.h"
-
-struct graphics_buffer {
-	uint32_t* data;
-	size_t    sz;
-	size_t    w;
-	size_t    h;
-	struct graphics_buffer *next;
-};
-
-extern uint32_t r2y[1<<24];
-extern uint32_t y2r[1<<24];
-
-struct graphics_buffer * get_buffer(void);
-void release_buffer(struct graphics_buffer *);
-void init_r2y(void);
-
-struct graphics_buffer * do_scale(struct rectlist* rect, int xscale, int yscale, int aspect_width, int aspect_height);
-void aspect_correct(int *x, int *y, int aspect_width, int aspect_height);
-void aspect_reverse(int *x, int *y, int scrnwidth, int scrnheight, int aspect_width, int aspect_height);
-void aspect_fix(int *x, int *y, int aspect_width, int aspect_height);
diff --git a/ciolib/sdl_con.c b/ciolib/sdl_con.c
deleted file mode 100644
index 01fe454..0000000
--- a/ciolib/sdl_con.c
+++ /dev/null
@@ -1,1300 +0,0 @@
-#include <math.h>
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>
-#include <string.h>
-
-#include "gen_defs.h"
-#include "genwrap.h"
-#include "dirwrap.h"
-#include "xpbeep.h"
-#include "threadwrap.h"
-#include <xp_dl.h>
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "utf8_codepages.h"
-#include "vidmodes.h"
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-#include "scale.h"
-
-#include "SDL.h"
-
-#include "sdlfuncs.h"
-
-int bitmap_width,bitmap_height;
-
-/* 256 bytes so I can cheat */
-unsigned char		sdl_keybuf[256];		/* Keyboard buffer */
-unsigned char		sdl_key=0;				/* Index into keybuf for next key in buffer */
-unsigned char		sdl_keynext=0;			/* Index into keybuf for next free position */
-
-int sdl_exitcode=0;
-
-bool internal_scaling = true;	// Protected by the win mutex
-
-SDL_Window	*win=NULL;
-SDL_Cursor	*curs=NULL;
-SDL_Renderer	*renderer=NULL;
-SDL_Texture	*texture=NULL;
-pthread_mutex_t win_mutex;
-SDL_Surface	*sdl_icon=NULL;
-
-sem_t sdl_ufunc_ret;
-sem_t sdl_ufunc_rec;
-pthread_mutex_t sdl_ufunc_mtx;
-int sdl_ufunc_retval;
-
-sem_t sdl_flush_sem;
-int pending_updates=0;
-
-int fullscreen=0;
-
-int	sdl_init_good=0;
-pthread_mutex_t sdl_keylock;
-sem_t sdl_key_pending;
-static unsigned int sdl_pending_mousekeys=0;
-
-static struct video_stats cvstat;
-
-struct sdl_keyvals {
-	int	keysym
-		,key
-		,shift
-		,ctrl
-		,alt;
-};
-
-static pthread_mutex_t sdl_headlock;
-static struct rectlist *update_list = NULL;
-static struct rectlist *update_list_tail = NULL;
-
-enum {
-	 SDL_USEREVENT_FLUSH
-	,SDL_USEREVENT_SETTITLE
-	,SDL_USEREVENT_SETNAME
-	,SDL_USEREVENT_SETICON
-	,SDL_USEREVENT_SETVIDMODE
-	,SDL_USEREVENT_SHOWMOUSE
-	,SDL_USEREVENT_HIDEMOUSE
-	,SDL_USEREVENT_INIT
-	,SDL_USEREVENT_QUIT
-	,SDL_USEREVENT_GETWINPOS
-	,SDL_USEREVENT_MOUSEPOINTER
-};
-
-const struct sdl_keyvals sdl_keyval[] =
-{
-	{SDLK_BACKSPACE, 0x08, 0x08, 0x7f, 0x0e00},
-	{SDLK_TAB, 0x09, 0x0f00, 0x9400, 0xa500},
-	{SDLK_RETURN, 0x0d, 0x0d, 0x0a, 0xa600},
-	{SDLK_ESCAPE, 0x1b, 0x1b, 0x1b, 0x0100},
-	{SDLK_SPACE, 0x20, 0x20, 0x0300, 0x20},
-	{SDLK_0, '0', ')', 0, 0x8100},
-	{SDLK_1, '1', '!', 0, 0x7800},
-	{SDLK_2, '2', '@', 0x0300, 0x7900},
-	{SDLK_3, '3', '#', 0, 0x7a00},
-	{SDLK_4, '4', '$', 0, 0x7b00},
-	{SDLK_5, '5', '%', 0, 0x7c00},
-	{SDLK_6, '6', '^', 0x1e, 0x7d00},
-	{SDLK_7, '7', '&', 0, 0x7e00},
-	{SDLK_8, '8', '*', 0, 0x7f00},
-	{SDLK_9, '9', '(', 0, 0x8000},
-	{SDLK_a, 'a', 'A', 0x01, 0x1e00},
-	{SDLK_b, 'b', 'B', 0x02, 0x3000},
-	{SDLK_c, 'c', 'C', 0x03, 0x2e00},
-	{SDLK_d, 'd', 'D', 0x04, 0x2000},
-	{SDLK_e, 'e', 'E', 0x05, 0x1200},
-	{SDLK_f, 'f', 'F', 0x06, 0x2100},
-	{SDLK_g, 'g', 'G', 0x07, 0x2200},
-	{SDLK_h, 'h', 'H', 0x08, 0x2300},
-	{SDLK_i, 'i', 'I', 0x09, 0x1700},
-	{SDLK_j, 'j', 'J', 0x0a, 0x2400},
-	{SDLK_k, 'k', 'K', 0x0b, 0x2500},
-	{SDLK_l, 'l', 'L', 0x0c, 0x2600},
-	{SDLK_m, 'm', 'M', 0x0d, 0x3200},
-	{SDLK_n, 'n', 'N', 0x0e, 0x3100},
-	{SDLK_o, 'o', 'O', 0x0f, 0x1800},
-	{SDLK_p, 'p', 'P', 0x10, 0x1900},
-	{SDLK_q, 'q', 'Q', 0x11, 0x1000},
-	{SDLK_r, 'r', 'R', 0x12, 0x1300},
-	{SDLK_s, 's', 'S', 0x13, 0x1f00},
-	{SDLK_t, 't', 'T', 0x14, 0x1400},
-	{SDLK_u, 'u', 'U', 0x15, 0x1600},
-	{SDLK_v, 'v', 'V', 0x16, 0x2f00},
-	{SDLK_w, 'w', 'W', 0x17, 0x1100},
-	{SDLK_x, 'x', 'X', 0x18, 0x2d00},
-	{SDLK_y, 'y', 'Y', 0x19, 0x1500},
-	{SDLK_z, 'z', 'Z', 0x1a, 0x2c00},
-	{SDLK_PAGEUP, 0x4900, 0x4900, 0x8400, 0x9900},
-	{SDLK_PAGEDOWN, 0x5100, 0x5100, 0x7600, 0xa100},
-	{SDLK_END, 0x4f00, 0x4f00, 0x7500, 0x9f00},
-	{SDLK_HOME, 0x4700, 0x4700, 0x7700, 0x9700},
-	{SDLK_LEFT, 0x4b00, 0x4b00, 0x7300, 0x9b00},
-	{SDLK_UP, 0x4800, 0x4800, 0x8d00, 0x9800},
-	{SDLK_RIGHT, 0x4d00, 0x4d00, 0x7400, 0x9d00},
-	{SDLK_DOWN, 0x5000, 0x5000, 0x9100, 0xa000},
-	{SDLK_INSERT, CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC},
-	{SDLK_DELETE, CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_ALT_DC},
-	{SDLK_KP_0, 0x5200, 0x5200, 0x9200, 0},
-	{SDLK_KP_1, 0x4f00, 0x4f00, 0x7500, 0},
-	{SDLK_KP_2, 0x5000, 0x5000, 0x9100, 0},
-	{SDLK_KP_3, 0x5100, 0x5100, 0x7600, 0},
-	{SDLK_KP_4, 0x4b00, 0x4b00, 0x7300, 0},
-	{SDLK_KP_5, 0x4c00, 0x4c00, 0x8f00, 0},
-	{SDLK_KP_6, 0x4d00, 0x4d00, 0x7400, 0},
-	{SDLK_KP_7, 0x4700, 0x4700, 0x7700, 0},
-	{SDLK_KP_8, 0x4800, 0x4800, 0x8d00, 0},
-	{SDLK_KP_9, 0x4900, 0x4900, 0x8400, 0},
-	{SDLK_KP_MULTIPLY, '*', '*', 0x9600, 0x3700},
-	{SDLK_KP_PLUS, '+', '+', 0x9000, 0x4e00},
-	{SDLK_KP_MINUS, '-', '-', 0x8e00, 0x4a00},
-	{SDLK_KP_PERIOD, 0x7f, 0x7f, 0x5300, 0x9300},
-	{SDLK_KP_DIVIDE, '/', '/', 0x9500, 0xa400},
-	{SDLK_KP_ENTER, 0x0d, 0x0d, 0x0a, 0xa600},
-	{SDLK_F1, 0x3b00, 0x5400, 0x5e00, 0x6800},
-	{SDLK_F2, 0x3c00, 0x5500, 0x5f00, 0x6900},
-	{SDLK_F3, 0x3d00, 0x5600, 0x6000, 0x6a00},
-	{SDLK_F4, 0x3e00, 0x5700, 0x6100, 0x6b00},
-	{SDLK_F5, 0x3f00, 0x5800, 0x6200, 0x6c00},
-	{SDLK_F6, 0x4000, 0x5900, 0x6300, 0x6d00},
-	{SDLK_F7, 0x4100, 0x5a00, 0x6400, 0x6e00},
-	{SDLK_F8, 0x4200, 0x5b00, 0x6500, 0x6f00},
-	{SDLK_F9, 0x4300, 0x5c00, 0x6600, 0x7000},
-	{SDLK_F10, 0x4400, 0x5d00, 0x6700, 0x7100},
-	{SDLK_F11, 0x8500, 0x8700, 0x8900, 0x8b00},
-	{SDLK_F12, 0x8600, 0x8800, 0x8a00, 0x8c00},
-	{SDLK_BACKSLASH, '\\', '|', 0x1c, 0x2b00},
-	{SDLK_SLASH, '/', '?', 0, 0x3500},
-	{SDLK_MINUS, '-', '_', 0x1f, 0x8200},
-	{SDLK_EQUALS, '=', '+', 0, 0x8300},
-	{SDLK_LEFTBRACKET, '[', '{', 0x1b, 0x1a00},
-	{SDLK_RIGHTBRACKET, ']', '}', 0x1d, 0x1b00},
-	{SDLK_SEMICOLON, ';', ':', 0, 0x2700},
-	{SDLK_QUOTE, '\'', '"', 0, 0x2800},
-	{SDLK_COMMA, ',', '<', 0, 0x3300},
-	{SDLK_PERIOD, '.', '>', 0, 0x3400},
-	{SDLK_BACKQUOTE, '`', '~', 0, 0x2900},
-	{0, 0, 0, 0, 0}	/** END **/
-};
-
-void sdl_video_event_thread(void *data);
-
-static void sdl_user_func(int func, ...)
-{
-	va_list argptr;
-	SDL_Event	ev;
-	int rv;
-
-	ev.type=SDL_USEREVENT;
-	ev.user.data1=NULL;
-	ev.user.data2=NULL;
-	ev.user.code=func;
-	pthread_mutex_lock(&sdl_ufunc_mtx);
-	while (1) {
-		va_start(argptr, func);
-		switch(func) {
-			case SDL_USEREVENT_SETICON:
-				ev.user.data1=va_arg(argptr, void *);
-				if((ev.user.data2=(unsigned long *)malloc(sizeof(unsigned long)))==NULL) {
-					pthread_mutex_unlock(&sdl_ufunc_mtx);
-					va_end(argptr);
-					return;
-				}
-				*(unsigned long *)ev.user.data2=va_arg(argptr, unsigned long);
-				break;
-			case SDL_USEREVENT_SETNAME:
-			case SDL_USEREVENT_SETTITLE:
-				if((ev.user.data1=strdup(va_arg(argptr, char *)))==NULL) {
-					pthread_mutex_unlock(&sdl_ufunc_mtx);
-					va_end(argptr);
-					return;
-				}
-				break;
-			case SDL_USEREVENT_MOUSEPOINTER:
-				ev.user.data1 = (void *)(intptr_t)va_arg(argptr, int);
-				break;
-			case SDL_USEREVENT_SHOWMOUSE:
-			case SDL_USEREVENT_HIDEMOUSE:
-			case SDL_USEREVENT_FLUSH:
-				break;
-			default:
-				va_end(argptr);
-				return;
-		}
-		va_end(argptr);
-		while((rv = sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT))!=1)
-			YIELD();
-		break;
-	}
-	pthread_mutex_unlock(&sdl_ufunc_mtx);
-}
-
-/* Called from main thread only */
-static int sdl_user_func_ret(int func, ...)
-{
-	int rv;
-	va_list argptr;
-	SDL_Event	ev;
-
-	ev.type=SDL_USEREVENT;
-	ev.user.data1=NULL;
-	ev.user.data2=NULL;
-	ev.user.code=func;
-	va_start(argptr, func);
-	pthread_mutex_lock(&sdl_ufunc_mtx);
-	/* Drain the swamp */
-	while(1) {
-		switch(func) {
-			case SDL_USEREVENT_GETWINPOS:
-				ev.user.data1 = va_arg(argptr, void *);
-				ev.user.data2 = va_arg(argptr, void *);
-				// Fallthrough
-			case SDL_USEREVENT_SETVIDMODE:
-			case SDL_USEREVENT_INIT:
-			case SDL_USEREVENT_QUIT:
-				while(sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT)!=1)
-					YIELD();
-				break;
-			default:
-				pthread_mutex_unlock(&sdl_ufunc_mtx);
-				va_end(argptr);
-				return -1;
-		}
-		rv = sem_wait(&sdl_ufunc_ret);
-		if(rv==0)
-			break;
-	}
-	pthread_mutex_unlock(&sdl_ufunc_mtx);
-	va_end(argptr);
-	return(sdl_ufunc_retval);
-}
-
-void exit_sdl_con(void)
-{
-	// Avoid calling exit(0) from an atexit() function...
-	ciolib_reaper = 0;
-	sdl_user_func_ret(SDL_USEREVENT_QUIT);
-}
-
-void sdl_copytext(const char *text, size_t buflen)
-{
-	sdl.SetClipboardText(text);
-}
-
-char *sdl_getcliptext(void)
-{
-	uint8_t *u8;
-	u8 = (uint8_t *)sdl.GetClipboardText();
-	char *ret = strdup((char *)u8);
-	sdl.free(u8);
-	return ret;
-}
-
-void sdl_drawrect(struct rectlist *data)
-{
-	if(sdl_init_good) {
-		data->next = NULL;
-		pthread_mutex_lock(&sdl_headlock);
-		if (update_list == NULL)
-			update_list = update_list_tail = data;
-		else {
-			update_list_tail->next = data;
-			update_list_tail = data;
-		}
-		pthread_mutex_unlock(&sdl_headlock);
-	}
-	else
-		bitmap_drv_free_rect(data);
-}
-
-void sdl_flush(void)
-{
-	sdl_user_func(SDL_USEREVENT_FLUSH);
-}
-
-/*
- * Returns true if the specified width/height can use the
- * internal scaler
- *
- * vstat lock must be held
- */
-static bool
-window_can_scale_internally(int winwidth, int winheight)
-{
-	int fw, fh;
-	aspect_fix(&winwidth, &winheight, cvstat.aspect_width, cvstat.aspect_height);
-	fw = winwidth;
-	fh = winheight;
-	aspect_reverse(&winwidth, &winheight, cvstat.scrnwidth, cvstat.scrnheight, cvstat.aspect_width, cvstat.aspect_height);
-	if (fw == winwidth || fh == winheight)
-		return true;
-	return false;
-}
-
-static void
-internal_scaling_factors(int winwidth, int winheight, int *x, int *y)
-{
-	aspect_fix(&winwidth, &winheight, cvstat.aspect_width, cvstat.aspect_height);
-	aspect_reverse(&winwidth, &winheight, cvstat.scrnwidth, cvstat.scrnheight, cvstat.aspect_width, cvstat.aspect_height);
-	*x = winwidth / cvstat.scrnwidth;
-	*y = winheight / cvstat.scrnheight;
-	if (*x < 1 || *x > 14)
-		*x = 1;
-	if (*y < 1 || *y > 14)
-		*y = 1;
-}
-
-static int sdl_init_mode(int mode)
-{
-	int oldcols;
-
-	if (mode != CIOLIB_MODE_CUSTOM) {
-		pthread_mutex_lock(&vstatlock);
-		if (mode == vstat.mode) {
-			pthread_mutex_unlock(&vstatlock);
-			return 0;
-		}
-		pthread_mutex_unlock(&vstatlock);
-	}
-
-	sdl_user_func(SDL_USEREVENT_FLUSH);
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	oldcols = cvstat.cols;
-	bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height);
-	vstat.winwidth = lround((double)cvstat.winwidth / cvstat.scrnwidth * vstat.scrnwidth);
-	vstat.winheight = lround((double)cvstat.winheight / cvstat.scrnheight * vstat.scrnheight);
-	aspect_correct(&vstat.winwidth, &cvstat.winheight, cvstat.aspect_width, cvstat.aspect_height);
-	if (oldcols != vstat.cols) {
-		if (oldcols == 0) {
-			if (ciolib_initial_window_width > 0)
-				vstat.winwidth = ciolib_initial_window_width;
-			if (ciolib_initial_window_height > 0)
-				vstat.winheight = ciolib_initial_window_height;
-			if (vstat.cols == 40)
-				oldcols = 40;
-		}
-		if (oldcols == 40) {
-			vstat.winwidth /= 2;
-			vstat.winheight /= 2;
-		}
-		if (vstat.cols == 40) {
-			vstat.winwidth *= 2;
-			vstat.winheight *= 2;
-		}
-	}
-	if (vstat.winwidth < vstat.scrnwidth)
-		vstat.winwidth = vstat.scrnwidth;
-	if (vstat.winheight < vstat.scrnheight)
-		vstat.winheight = vstat.scrnheight;
-
-	cvstat = vstat;
-	internal_scaling = window_can_scale_internally(vstat.winwidth, vstat.winheight);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	sdl_user_func_ret(SDL_USEREVENT_SETVIDMODE);
-
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_init(int mode)
-{
-	bitmap_drv_init(sdl_drawrect, sdl_flush);
-
-	if(mode==CIOLIB_MODE_SDL_FULLSCREEN)
-		fullscreen=1;
-	// Needs to be *after* bitmap_drv_init()
-#if defined(__DARWIN__)
-	sem_post(&startsdl_sem);
-#else
-	_beginthread(sdl_video_event_thread, 0, NULL);
-#endif
-	sdl_user_func_ret(SDL_USEREVENT_INIT);
-	sdl_init_mode(3);
-
-	if(sdl_init_good) {
-		cio_api.mode=fullscreen?CIOLIB_MODE_SDL_FULLSCREEN:CIOLIB_MODE_SDL;
-#ifdef _WIN32
-		FreeConsole();
-#endif
-		cio_api.options |= CONIO_OPT_PALETTE_SETTING | CONIO_OPT_SET_TITLE | CONIO_OPT_SET_NAME | CONIO_OPT_SET_ICON;
-		return(0);
-	}
-
-	ciolib_reaper = 0;
-	sdl_user_func_ret(SDL_USEREVENT_QUIT);
-	return(-1);
-}
-
-void sdl_setwinsize_locked(int w, int h)
-{
-	if (w > 16384)
-		w = 16384;
-	if (h > 16384)
-		h = 16384;
-	if (w < cvstat.scrnwidth)
-		w = cvstat.scrnwidth;
-	if (h < cvstat.scrnheight)
-		h = cvstat.scrnheight;
-	cvstat.winwidth = vstat.winwidth = w;
-	cvstat.winheight = vstat.winheight = h;
-	internal_scaling = window_can_scale_internally(cvstat.winwidth, cvstat.winheight);
-}
-
-void sdl_setwinsize(int w, int h)
-{
-	pthread_mutex_lock(&vstatlock);
-	sdl_setwinsize_locked(w, h);
-	pthread_mutex_unlock(&vstatlock);
-}
-
-void sdl_setwinposition(int x, int y)
-{
-	pthread_mutex_lock(&win_mutex);
-	sdl.SetWindowPosition(win, x, y);
-	pthread_mutex_unlock(&win_mutex);
-}
-
-void sdl_getwinsize_locked(int *w, int *h)
-{
-	if (w)
-		*w = cvstat.winwidth;
-	if (h)
-		*h = cvstat.winheight;
-}
-
-void sdl_getwinsize(int *w, int *h)
-{
-	pthread_mutex_lock(&vstatlock);
-	sdl_getwinsize_locked(w, h);
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/* Called from main thread only */
-int sdl_kbhit(void)
-{
-	int ret;
-
-	pthread_mutex_lock(&sdl_keylock);
-	ret=(sdl_key!=sdl_keynext);
-	pthread_mutex_unlock(&sdl_keylock);
-	return(ret);
-}
-
-/* Called from main thread only */
-int sdl_getch(void)
-{
-	int ch;
-
-	sem_wait(&sdl_key_pending);
-	pthread_mutex_lock(&sdl_keylock);
-
-	/* This always frees up space in keybuf for one more char */
-	ch=sdl_keybuf[sdl_key++];
-	/* If we have missed mouse keys, tack them on to the end of the buffer now */
-	if(sdl_pending_mousekeys) {
-		if(sdl_pending_mousekeys & 1)	/* Odd number... second char */
-	       	sdl_keybuf[sdl_keynext++]=CIO_KEY_MOUSE >> 8;
-		else							/* Even number... first char */
-	        sdl_keybuf[sdl_keynext++]=CIO_KEY_MOUSE & 0xff;
-        sem_post(&sdl_key_pending);
-		sdl_pending_mousekeys--;
-	}
-	pthread_mutex_unlock(&sdl_keylock);
-	return(ch);
-}
-
-/* Called from main thread only */
-void sdl_textmode(int mode)
-{
-	sdl_init_mode(mode);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_setname(const char *name)
-{
-	sdl_user_func(SDL_USEREVENT_SETNAME,name);
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_seticon(const void *icon, unsigned long size)
-{
-	sdl_user_func(SDL_USEREVENT_SETICON,icon,size);
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_settitle(const char *title)
-{
-	sdl_user_func(SDL_USEREVENT_SETTITLE,title);
-	return(0);
-}
-
-int sdl_showmouse(void)
-{
-	sdl_user_func(SDL_USEREVENT_SHOWMOUSE);
-	return(1);
-}
-
-int sdl_hidemouse(void)
-{
-	sdl_user_func(SDL_USEREVENT_HIDEMOUSE);
-	return(0);
-}
-
-int sdl_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	int wx, wy;
-
-	if (xpos || ypos) {
-		sdl_user_func_ret(SDL_USEREVENT_GETWINPOS, &wx, &wy);
-		if(xpos)
-			*xpos=wx;
-		if(ypos)
-			*ypos=wy;
-	}
-
-	if (width || height) {
-		pthread_mutex_lock(&vstatlock);
-		if(width)
-			*width=cvstat.winwidth;
-		if(height)
-			*height=cvstat.winheight;
-		pthread_mutex_unlock(&vstatlock);
-	}
-
-	return(1);
-}
-
-static void setup_surfaces_locked(void)
-{
-	int		flags=0;
-	SDL_Event	ev;
-	SDL_Texture *newtexture;
-	int idealw;
-	int idealh;
-	int idealmw;
-	int idealmh;
-
-	if(fullscreen)
-		flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
-	else
-		flags |= SDL_WINDOW_RESIZABLE;
-#if (SDL_MINOR_VERSION > 0) || (SDL_PATCHLEVEL >= 1)
-        flags |= SDL_WINDOW_ALLOW_HIGHDPI;
-#endif
-
-
-	pthread_mutex_lock(&win_mutex);
-	idealmw = cvstat.scrnwidth;
-	idealmh = cvstat.scrnheight;
-	aspect_correct(&idealmw, &idealmh, cvstat.aspect_width, cvstat.aspect_height);
-	idealw = cvstat.winwidth;
-	idealh = cvstat.winheight;
-	aspect_fix(&idealw, &idealh, cvstat.aspect_width, cvstat.aspect_height);
-	internal_scaling = window_can_scale_internally(idealw, idealh);
-	sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, internal_scaling ? "0" : "2");
-
-	if (win == NULL) {
-		// SDL2: This is slow sometimes... not sure why.
-		if (sdl.CreateWindowAndRenderer(cvstat.winwidth, cvstat.winheight, flags, &win, &renderer) == 0) {
-			sdl.RenderClear(renderer);
-			if (internal_scaling)
-				newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-			else
-				newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-
-			if (texture)
-				sdl.DestroyTexture(texture);
-			texture = newtexture;
-		}
-		else {
-			win = NULL;
-			renderer = NULL;
-		}
-	}
-	else {
-		sdl.SetWindowMinimumSize(win, idealmw, idealmh);
-		sdl.SetWindowSize(win, idealw, idealh);
-		if (internal_scaling)
-			newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-		else
-			newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-		sdl.RenderClear(renderer);
-		if (texture)
-			sdl.DestroyTexture(texture);
-		texture = newtexture;
-	}
-	sdl.SetWindowMinimumSize(win, idealmw, idealmh);
-
-	if(win!=NULL) {
-		bitmap_drv_request_pixels();
-	}
-	else if(sdl_init_good) {
-		ev.type=SDL_QUIT;
-		sdl_exitcode=1;
-		sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT);
-	}
-	pthread_mutex_unlock(&win_mutex);
-}
-
-static void setup_surfaces(void)
-{
-	pthread_mutex_lock(&vstatlock);
-	setup_surfaces_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/* Called from event thread only */
-static void sdl_add_key(unsigned int keyval)
-{
-	if(keyval==0xa600) {
-		fullscreen=!fullscreen;
-		cio_api.mode=fullscreen?CIOLIB_MODE_SDL_FULLSCREEN:CIOLIB_MODE_SDL;
-		sdl.SetWindowFullscreen(win, fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
-		setup_surfaces();
-		return;
-	}
-	if(keyval <= 0xffff) {
-		pthread_mutex_lock(&sdl_keylock);
-		if(sdl_keynext+1==sdl_key) {
-			beep();
-			pthread_mutex_unlock(&sdl_keylock);
-			return;
-		}
-		if((sdl_keynext+2==sdl_key) && keyval > 0xff) {
-			if(keyval==CIO_KEY_MOUSE)
-				sdl_pending_mousekeys+=2;
-			else
-				beep();
-			pthread_mutex_unlock(&sdl_keylock);
-			return;
-		}
-		sdl_keybuf[sdl_keynext++]=keyval & 0xff;
-		sem_post(&sdl_key_pending);
-		if(keyval>0xff) {
-			sdl_keybuf[sdl_keynext++]=keyval >> 8;
-			sem_post(&sdl_key_pending);
-		}
-		pthread_mutex_unlock(&sdl_keylock);
-	}
-}
-
-/* Called from event thread only */
-static unsigned int sdl_get_char_code(unsigned int keysym, unsigned int mod)
-{
-	int expect;
-	int i;
-
-	/* We don't handle META */
-	if (mod & KMOD_GUI)
-		return(0x0001ffff);
-
-	/* Glah! */
-#ifdef __DARWIN__
-	if(keysym==0x7f && !(mod & KMOD_CTRL)) {
-		keysym=0x08;
-		keysym=SDLK_BACKSPACE;
-	}
-#endif
-
-	/* Find the SDL keysym */
-	for(i=0;sdl_keyval[i].keysym;i++) {
-		if(sdl_keyval[i].keysym==keysym) {
-			/* KeySym found in table */
-
-			/*
-			 * Using the modifiers, look up the expected scan code.
-			 */
-			if(mod & KMOD_ALT)
-				expect = sdl_keyval[i].alt;
-			else if(mod & KMOD_CTRL)
-				expect=sdl_keyval[i].ctrl;
-			else if(mod & KMOD_SHIFT) {
-				if((mod & KMOD_CAPS) && keysym != '\t')
-					expect=sdl_keyval[i].key;
-				else
-					expect=sdl_keyval[i].shift;
-			}
-			else {
-				if(mod & KMOD_CAPS && (toupper(sdl_keyval[i].key) == sdl_keyval[i].shift))
-					expect=sdl_keyval[i].shift;
-				else
-					expect=sdl_keyval[i].key;
-			}
-
-			return(expect);
-		}
-	}
-	/*
-	 * Well, we can't find it in our table, or it's a regular key.
-	 */
-	if(keysym > 0 && keysym < 128) {
-		if (isalpha(keysym)) {
-			/*
-			 * If CAPS and SHIFT are not in the same state,
-			 * upper-case.
-			 */
-			if(!!(mod & KMOD_CAPS) != !!(mod & KMOD_SHIFT))
-				return toupper(keysym);
-		}
-		return keysym;
-	}
-
-	/* Give up.  It's not working out for us. */
-	return(0x0001ffff);
-}
-
-static void
-sdl_add_keys(uint8_t *utf8s)
-{
-	char *chars;
-	char *p;
-
-	chars = utf8_to_cp(getcodepage(), utf8s, '\x00', strlen((char *)utf8s), NULL);
-	if (chars) {
-		for (p = chars; *p; p++) {
-			sdl_add_key(*((uint8_t *)p));
-		}
-		free(chars);
-	}
-}
-
-/* Mouse event/keyboard thread */
-static void sdl_mouse_thread(void *data)
-{
-	SetThreadName("SDL Mouse");
-	while(1) {
-		if(mouse_wait())
-			sdl_add_key(CIO_KEY_MOUSE);
-	}
-}
-
-static int win_to_text_xpos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos/(((float)cvstat.winwidth)/cvstat.cols)+1;
-	if (ret > cvstat.cols)
-		ret = cvstat.cols;
-	if (ret < 1)
-		ret = 1;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_text_ypos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos/(((float)cvstat.winheight)/cvstat.rows)+1;
-	if (ret > cvstat.rows)
-		ret = cvstat.rows;
-	if (ret < 1)
-		ret = 1;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_res_xpos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos * (cvstat.scrnwidth) / cvstat.winwidth;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_res_ypos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos * (cvstat.scrnheight) / cvstat.winheight;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-void sdl_video_event_thread(void *data)
-{
-	SDL_Event	ev;
-	int		block_text = 0;
-	static SDL_Keycode last_sym = SDLK_UNKNOWN;
-	static Uint16 last_mod = 0;
-
-	while(1) {
-		if(sdl.WaitEventTimeout(&ev, 1)!=1)
-			continue;
-		switch (ev.type) {
-			case SDL_KEYDOWN:			/* Keypress */
-				last_mod = ev.key.keysym.mod;
-				last_sym = ev.key.keysym.sym;
-				if ((ev.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_GUI)) && !(ev.key.keysym.mod & KMOD_MODE)) {
-					block_text = 1;
-					if ((ev.key.keysym.mod & KMOD_ALT) &&
-					    (ev.key.keysym.sym == SDLK_LEFT ||
-					     ev.key.keysym.sym == SDLK_RIGHT)) {
-						int w, h;
-
-						// Don't allow ALT-DIR to change size when maximized...
-						if ((sdl.GetWindowFlags(win) & SDL_WINDOW_MAXIMIZED) == 0) {
-							bool wc;
-							pthread_mutex_lock(&vstatlock);
-							w = cvstat.winwidth;
-							h = cvstat.winheight;
-							aspect_fix(&w, &h, cvstat.aspect_width, cvstat.aspect_height);
-							if (cvstat.aspect_width == 0 || cvstat.aspect_height == 0)
-								wc = true;
-							else
-								wc = lround((double)(h * cvstat.aspect_width) / cvstat.aspect_height * cvstat.scrnwidth / cvstat.scrnheight) > w;
-							switch(ev.key.keysym.sym) {
-								case SDLK_LEFT:
-									if (wc) {
-										if (w % (cvstat.scrnwidth)) {
-											w = w - w % cvstat.scrnwidth;
-										}
-										else {
-											w -= cvstat.scrnwidth;
-											if (w < cvstat.scrnwidth)
-												w = cvstat.scrnwidth;
-										}
-									}
-									else {
-										if (h % (cvstat.scrnheight)) {
-											h = h - h % cvstat.scrnheight;
-										}
-										else {
-											h -= cvstat.scrnheight;
-											if (h < cvstat.scrnheight)
-												h = cvstat.scrnheight;
-										}
-									}
-									break;
-								case SDLK_RIGHT:
-									if (wc)
-										w = (w - w % cvstat.scrnwidth) + cvstat.scrnwidth;
-									else
-										h = (h - h % cvstat.scrnheight) + cvstat.scrnheight;
-									break;
-							}
-							if (wc)
-								h = INT_MAX;
-							else
-								w = INT_MAX;
-							aspect_fix(&w, &h, cvstat.aspect_width, cvstat.aspect_height);
-							if (w > 16384 || h > 16384)
-								beep();
-							else {
-								cvstat.winwidth = w;
-								cvstat.winheight = h;
-								internal_scaling = window_can_scale_internally(w, h);
-							}
-							setup_surfaces_locked();
-							pthread_mutex_unlock(&vstatlock);
-						}
-						break;
-					}
-				}
-				if (ev.key.keysym.mod & KMOD_RALT) {	// Possible AltGr, let textinput sort it out...
-					block_text = 0;
-					break;
-				}
-				if ((ev.key.keysym.mod & KMOD_SHIFT) && (ev.key.keysym.sym == '\t'))
-					block_text = 1;
-				if (block_text || ev.key.keysym.sym < 0 || ev.key.keysym.sym > 127) {
-					// NUMLOCK makes 
-					if ((ev.key.keysym.mod & KMOD_NUM) && ((ev.key.keysym.sym >= SDLK_KP_1 && ev.key.keysym.sym <= SDLK_KP_0)
-					    || ev.key.keysym.sym == SDLK_KP_DIVIDE
-					    || ev.key.keysym.sym == SDLK_KP_MULTIPLY
-					    || ev.key.keysym.sym == SDLK_KP_MINUS
-					    || ev.key.keysym.sym == SDLK_KP_PLUS
-					    || ev.key.keysym.sym == SDLK_KP_PERIOD))
-						break;
-					sdl_add_key(sdl_get_char_code(ev.key.keysym.sym, ev.key.keysym.mod));
-				}
-				else if (!isprint(ev.key.keysym.sym)) {
-					if (ev.key.keysym.sym < 128)
-						sdl_add_key(ev.key.keysym.sym);
-				}
-				break;
-			case SDL_TEXTINPUT:
-				if (!block_text) {
-					unsigned int charcode = sdl_get_char_code(last_sym, last_mod & ~(KMOD_ALT));
-					// If the key is exactly what we would expect, use sdl_get_char_code()
-					if (*(uint8_t *)ev.text.text == charcode)
-						sdl_add_key(sdl_get_char_code(last_sym, last_mod));
-					else
-						sdl_add_keys((uint8_t *)ev.text.text);
-				}
-				break;
-			case SDL_KEYUP:
-				last_mod = ev.key.keysym.mod;
-				if (!(ev.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_GUI)))
-					block_text = 0;
-				break;
-			case SDL_MOUSEMOTION:
-				if(!ciolib_mouse_initialized)
-					break;
-				ciomouse_gotevent(CIOLIB_MOUSE_MOVE,win_to_text_xpos(ev.motion.x),win_to_text_ypos(ev.motion.y), win_to_res_xpos(ev.motion.x), win_to_res_ypos(ev.motion.y));
-				break;
-			case SDL_MOUSEBUTTONDOWN:
-				if(!ciolib_mouse_initialized)
-					break;
-				switch(ev.button.button) {
-					case SDL_BUTTON_LEFT:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(1),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_MIDDLE:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(2),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_RIGHT:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(3),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-				}
-				break;
-			case SDL_MOUSEWHEEL:
-				if (!ciolib_mouse_initialized)
-					break;
-				if (ev.wheel.y) {
-#if (SDL_MINOR_VERSION > 0) || (SDL_PATCHLEVEL > 3)
-					if (ev.wheel.direction == SDL_MOUSEWHEEL_FLIPPED)
-						ev.wheel.y = 0 - ev.wheel.y;
-#endif
-					if (ev.wheel.y > 0)
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(4), -1, -1, -1, -1);
-					if (ev.wheel.y < 0)
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(5), -1, -1, -1, -1);
-				}
-				break;
-			case SDL_MOUSEBUTTONUP:
-				if(!ciolib_mouse_initialized)
-					break;
-				switch(ev.button.button) {
-					case SDL_BUTTON_LEFT:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(1),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_MIDDLE:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(2),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_RIGHT:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(3),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-				}
-				break;
-			case SDL_QUIT:
-				/*
-				 * SDL2: Do we still need the reaper?
-				 * This is what exit()s programs when the
-				 * X is hit.
-				 */
-				if (ciolib_reaper)
-					sdl_user_func(SDL_USEREVENT_QUIT);
-				else
-					sdl_add_key(CIO_KEY_QUIT);
-				break;
-			case SDL_WINDOWEVENT:
-				switch(ev.window.event) {
-					case SDL_WINDOWEVENT_SIZE_CHANGED:
-						// SDL2: User resized window
-					case SDL_WINDOWEVENT_RESIZED:
-						{
-							// SDL2: Something resized window
-							const char *newh;
-
-							pthread_mutex_lock(&vstatlock);
-							pthread_mutex_lock(&win_mutex);
-							internal_scaling = window_can_scale_internally(ev.window.data1, ev.window.data2);
-							if (internal_scaling) {
-								newh = "0";
-							}
-							else {
-								newh = "2";
-							}
-							sdl.GetWindowSize(win, &cvstat.winwidth, &cvstat.winheight);
-							if (strcmp(newh, sdl.GetHint(SDL_HINT_RENDER_SCALE_QUALITY))) {
-								SDL_Texture *newtexture;
-								sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, newh);
-								if (internal_scaling) {
-									int idealw, idealh;
-									idealw = cvstat.winwidth;
-									idealh = cvstat.winheight;
-									aspect_fix(&idealw, &idealh, cvstat.aspect_width, cvstat.aspect_height);
-									newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-								}
-								else
-									newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-								sdl.RenderClear(renderer);
-								if (texture)
-									sdl.DestroyTexture(texture);
-								texture = newtexture;
-							}
-							sdl.RenderClear(renderer);
-							bitmap_drv_request_pixels();
-							pthread_mutex_unlock(&win_mutex);
-							pthread_mutex_unlock(&vstatlock);
-							break;
-						}
-					case SDL_WINDOWEVENT_EXPOSED:
-						bitmap_drv_request_pixels();
-						break;
-				}
-				break;
-			case SDL_USEREVENT: {
-				struct rectlist *list;
-				struct rectlist *old_next;
-				switch(ev.user.code) {
-					case SDL_USEREVENT_QUIT:
-						sdl_ufunc_retval=0;
-						if (ciolib_reaper)
-							exit(0);
-						sem_post(&sdl_ufunc_ret);
-						return;
-					case SDL_USEREVENT_FLUSH:
-						pthread_mutex_lock(&win_mutex);
-						if (win != NULL) {
-							pthread_mutex_lock(&sdl_headlock);
-							list = update_list;
-							update_list = update_list_tail = NULL;
-							pthread_mutex_unlock(&sdl_headlock);
-							for (; list; list = old_next) {
-								SDL_Rect src;
-								SDL_Rect dst;
-
-								old_next = list->next;
-								if (list->next == NULL) {
-									void *pixels;
-									int pitch;
-									int row;
-									int tw, th;
-
-									if (internal_scaling) {
-										struct graphics_buffer *gb;
-										int xscale, yscale;
-										internal_scaling_factors(cvstat.winwidth, cvstat.winheight, &xscale, &yscale);
-										gb = do_scale(list, xscale, yscale,
-										    cvstat.aspect_width, cvstat.aspect_height);
-										src.x = 0;
-										src.y = 0;
-										src.w = gb->w;
-										src.h = gb->h;
-										sdl.QueryTexture(texture, NULL, NULL, &tw, &th);
-										sdl.LockTexture(texture, &src, &pixels, &pitch);
-										if (pitch != gb->w * sizeof(gb->data[0])) {
-											// If this happens, we need to copy a row at a time...
-											for (row = 0; row < gb->h && row < th; row++) {
-												if (pitch < gb->w * sizeof(gb->data[0]))
-													memcpy(pixels, &gb->data[gb->w * row], pitch);
-												else
-													memcpy(pixels, &gb->data[gb->w * row], gb->w * sizeof(gb->data[0]));
-												pixels = (void *)((char*)pixels + pitch);
-											}
-										}
-										else {
-											int ch = gb->h;
-											if (ch > th)
-												ch = th;
-											memcpy(pixels, gb->data, gb->w * ch * sizeof(gb->data[0]));
-										}
-										sdl.UnlockTexture(texture);
-										dst.x = (cvstat.winwidth - gb->w) / 2;
-										dst.y = (cvstat.winheight - gb->h) / 2;
-										dst.w = gb->w;
-										dst.h = gb->h;
-										release_buffer(gb);
-									}
-									else {
-										src.x = 0;
-										src.y = 0;
-										src.w = list->rect.width;
-										src.h = list->rect.height;
-										sdl.QueryTexture(texture, NULL, NULL, &tw, &th);
-										sdl.LockTexture(texture, &src, &pixels, &pitch);
-										if (pitch != list->rect.width * sizeof(list->data[0])) {
-											// If this happens, we need to copy a row at a time...
-											for (row = 0; row < list->rect.height && row < th; row++) {
-												if (pitch < list->rect.width * sizeof(list->data[0]))
-													memcpy(pixels, &list->data[list->rect.width * row], pitch);
-												else
-													memcpy(pixels, &list->data[list->rect.width * row], list->rect.width * sizeof(list->data[0]));
-												pixels = (void *)((char*)pixels + pitch);
-											}
-										}
-										else {
-											int ch = list->rect.height;
-											if (ch > th)
-												ch = th;
-											memcpy(pixels, list->data, list->rect.width * ch * sizeof(list->data[0]));
-										}
-										sdl.UnlockTexture(texture);
-										dst.w = cvstat.winwidth;
-										dst.h = cvstat.winheight;
-										// Get correct aspect ratio for dst...
-										aspect_fix(&dst.w, &dst.h, cvstat.aspect_width, cvstat.aspect_height);
-										dst.x = (cvstat.winwidth - dst.w) / 2;
-										dst.y = (cvstat.winheight - dst.h) / 2;
-									}
-									sdl.RenderCopy(renderer, texture, &src, &dst);
-								}
-								bitmap_drv_free_rect(list);
-							}
-							sdl.RenderPresent(renderer);
-						}
-						pthread_mutex_unlock(&win_mutex);
-						break;
-					case SDL_USEREVENT_SETNAME:
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowTitle(win, (char *)ev.user.data1);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data1);
-						break;
-					case SDL_USEREVENT_SETICON:
-						if(sdl_icon != NULL)
-							sdl.FreeSurface(sdl_icon);
-						sdl_icon=sdl.CreateRGBSurfaceFrom(ev.user.data1
-								, *(unsigned long *)ev.user.data2
-								, *(unsigned long *)ev.user.data2
-								, 32
-								, *(unsigned long *)ev.user.data2*4
-								, *(DWORD *)"\377\0\0\0"
-								, *(DWORD *)"\0\377\0\0"
-								, *(DWORD *)"\0\0\377\0"
-								, *(DWORD *)"\0\0\0\377"
-						);
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowIcon(win, sdl_icon);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data2);
-						break;
-					case SDL_USEREVENT_SETTITLE:
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowTitle(win, (char *)ev.user.data1);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data1);
-						break;
-					case SDL_USEREVENT_SETVIDMODE:
-						pthread_mutex_lock(&vstatlock);
-						setup_surfaces_locked();
-						pthread_mutex_unlock(&vstatlock);
-						sdl_ufunc_retval=0;
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_HIDEMOUSE:
-						sdl.ShowCursor(SDL_DISABLE);
-						break;
-					case SDL_USEREVENT_SHOWMOUSE:
-						sdl.ShowCursor(SDL_ENABLE);
-						break;
-					case SDL_USEREVENT_INIT:
-						if(!sdl_init_good) {
-							if(sdl.WasInit(SDL_INIT_VIDEO)==SDL_INIT_VIDEO) {
-								pthread_mutex_lock(&win_mutex);
-								_beginthread(sdl_mouse_thread, 0, NULL);
-								sdl_init_good=1;
-								pthread_mutex_unlock(&win_mutex);
-							}
-						}
-						sdl_ufunc_retval=0;
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_GETWINPOS:
-						sdl.GetWindowPosition(win, ev.user.data1, ev.user.data2);
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_MOUSEPOINTER:
-					{
-						int cid = INT_MIN;
-						SDL_Cursor *oc = curs;
-						switch((intptr_t)ev.user.data1) {
-							case CIOLIB_MOUSEPTR_ARROW:
-								break;	// Default
-							case CIOLIB_MOUSEPTR_BAR:
-								cid = SDL_SYSTEM_CURSOR_IBEAM;
-								break;
-						}
-						if (cid == INT_MIN) {
-							sdl.SetCursor(sdl.GetDefaultCursor());
-							curs = NULL;
-						}
-						else {
-							curs = sdl.CreateSystemCursor(cid);
-							if (curs == NULL)
-								sdl.SetCursor(sdl.GetDefaultCursor());
-							else
-								sdl.SetCursor(curs);
-						}
-						if (oc)
-							sdl.FreeCursor(oc);
-						break;
-					}
-				}
-				break;
-			}
-			case SDL_SYSWMEVENT:			/* ToDo... This is where Copy/Paste needs doing */
-
-			/* Ignore this stuff */
-			case SDL_JOYAXISMOTION:
-			case SDL_JOYBALLMOTION:
-			case SDL_JOYHATMOTION:
-			case SDL_JOYBUTTONDOWN:
-			case SDL_JOYBUTTONUP:
-			default:
-				break;
-		}
-	}
-	return;
-}
-
-int sdl_initciolib(int mode)
-{
-#if defined(__DARWIN__)
-	if (initsdl_ret) {
-#else
-	if(init_sdl_video()) {
-#endif
-		fprintf(stderr,"SDL Video Initialization Failed\n");
-		return(-1);
-	}
-	sem_init(&sdl_key_pending, 0, 0);
-	sem_init(&sdl_ufunc_ret, 0, 0);
-	sem_init(&sdl_ufunc_rec, 0, 0);
-	pthread_mutex_init(&sdl_ufunc_mtx, NULL);
-	pthread_mutex_init(&sdl_headlock, NULL);
-	pthread_mutex_init(&win_mutex, NULL);
-	pthread_mutex_init(&sdl_keylock, NULL);
-	return(sdl_init(mode));
-}
-
-void
-sdl_beep(void)
-{
-        static unsigned char wave[2206];
-
-	if (wave[2205] == 0) {
-		xptone_makewave(440, wave, 2205, WAVE_SHAPE_SINE_SAW_HARM);
-		wave[2205] = 1;
-	}
-        xp_play_sample(wave, 2205, TRUE);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_mousepointer(enum ciolib_mouse_ptr type)
-{
-	sdl_user_func(SDL_USEREVENT_MOUSEPOINTER,type);
-	return(0);
-}
diff --git a/ciolib/sdl_con.h b/ciolib/sdl_con.h
deleted file mode 100644
index 8484f8a..0000000
--- a/ciolib/sdl_con.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _SDL_CON_H_
-#define _SDL_CON_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/* Low-Level stuff (Shouldn't be used by ciolib programs */
-int sdl_init(int mode);
-int sdl_load_font(char *filename, int width, int height, double scale);
-int sdl_init_mode(int mode);
-int sdl_setup_colours(void);
-int sdl_draw_char(unsigned short vch, int xpos, int ypos);
-int sdl_screen_redraw(void);
-void exit_sdl_con(void);
-
-/* High-level stuff */
-int sdl_puttext(int sx, int sy, int ex, int ey, void *fill);
-int sdl_gettext(int sx, int sy, int ex, int ey, void *fill);
-int sdl_kbhit(void);
-void sdl_delay(long msec);
-void sdl_gotoxy(int x, int y);
-int sdl_initciolib(long inmode);
-void sdl_setcursortype(int type);
-int sdl_getch(void);
-void sdl_textmode(int mode);
-void sdl_setname(const char *name);
-void sdl_seticon(const void *, unsigned long size);
-void sdl_settitle(const char *title);
-int sdl_hidemouse(void);
-int sdl_showmouse(void);
-void sdl_copytext(const char *text, size_t buflen);
-char *sdl_getcliptext(void);
-int sdl_setfont(int font, int force);
-int sdl_getfont(void);
-int sdl_loadfont(char *filename);
-int sdl_get_window_info(int *width, int *height, int *xpos, int *ypos);
-int sdl_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b);
-void sdl_setwinsize(int w, int h);
-void sdl_setwinposition(int x, int y);
-void sdl_beep(void);
-int sdl_mousepointer(enum ciolib_mouse_ptr type);
-
-#if defined(__DARWIN__)
-void sdl_init_darwin(void *args);
-void sdl_video_event_thread(void *data);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/sdlfuncs.c b/ciolib/sdlfuncs.c
deleted file mode 100644
index d5c2f09..0000000
--- a/ciolib/sdlfuncs.c
+++ /dev/null
@@ -1,316 +0,0 @@
-#include <stdlib.h>	/* getenv()/exit()/atexit() */
-#include <stdio.h>	/* NULL */
-
-#include "gen_defs.h"
-#include "threadwrap.h"
-#include <SDL.h>
-#include "ciolib.h"
-#include "sdlfuncs.h"
-#include "sdl_con.h"
-extern int sdl_video_initialized;
-
-struct sdlfuncs sdl;
-
-/* Make xp_dl do static linking */
-#ifdef STATIC_SDL
-#define STATIC_LINK
-#endif
-#include <xp_dl.h>
-
-static int sdl_funcs_loaded=0;
-
-static void QuitWrap(void);
-
-int load_sdl_funcs(struct sdlfuncs *sdlf)
-{
-	dll_handle	sdl_dll;
-	const char *libnames[]={"SDL2", "SDL", NULL};
-
-	sdlf->gotfuncs=0;
-	if((sdl_dll=xp_dlopen(libnames,RTLD_LAZY|RTLD_GLOBAL,SDL_PATCHLEVEL))==NULL)
-		return(-1);
-
-	if((sdlf->Init=xp_dlsym(sdl_dll, SDL_Init))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->Quit=xp_dlsym(sdl_dll, SDL_Quit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->PeepEvents=xp_dlsym(sdl_dll, SDL_PeepEvents))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetCurrentVideoDriver=xp_dlsym(sdl_dll, SDL_GetCurrentVideoDriver))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->EventState=xp_dlsym(sdl_dll, SDL_EventState))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateRGBSurfaceFrom=xp_dlsym(sdl_dll, SDL_CreateRGBSurfaceFrom))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderPresent=xp_dlsym(sdl_dll, SDL_RenderPresent))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->WaitEventTimeout=xp_dlsym(sdl_dll, SDL_WaitEventTimeout))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateWindowAndRenderer=xp_dlsym(sdl_dll, SDL_CreateWindowAndRenderer))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->FreeSurface=xp_dlsym(sdl_dll, SDL_FreeSurface))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowTitle=xp_dlsym(sdl_dll, SDL_SetWindowTitle))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowSize=xp_dlsym(sdl_dll, SDL_GetWindowSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowIcon=xp_dlsym(sdl_dll, SDL_SetWindowIcon))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->ShowCursor=xp_dlsym(sdl_dll, SDL_ShowCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->WasInit=xp_dlsym(sdl_dll, SDL_WasInit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowWMInfo=xp_dlsym(sdl_dll, SDL_GetWindowWMInfo))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetError=xp_dlsym(sdl_dll, SDL_GetError))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->InitSubSystem=xp_dlsym(sdl_dll, SDL_InitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QuitSubSystem=xp_dlsym(sdl_dll, SDL_QuitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateTexture=xp_dlsym(sdl_dll, SDL_CreateTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UpdateTexture=xp_dlsym(sdl_dll, SDL_UpdateTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderClear=xp_dlsym(sdl_dll, SDL_RenderClear))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderCopy=xp_dlsym(sdl_dll, SDL_RenderCopy))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetHint=xp_dlsym(sdl_dll, SDL_SetHint))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetHint=xp_dlsym(sdl_dll, SDL_GetHint))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetModState=xp_dlsym(sdl_dll, SDL_GetModState))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowSize=xp_dlsym(sdl_dll, SDL_SetWindowSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->DestroyTexture=xp_dlsym(sdl_dll, SDL_DestroyTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowFullscreen=xp_dlsym(sdl_dll, SDL_SetWindowFullscreen))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->LockTexture=xp_dlsym(sdl_dll, SDL_LockTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UnlockTexture=xp_dlsym(sdl_dll, SDL_UnlockTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QueryTexture=xp_dlsym(sdl_dll, SDL_QueryTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowPosition=xp_dlsym(sdl_dll, SDL_GetWindowPosition))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowPosition=xp_dlsym(sdl_dll, SDL_SetWindowPosition))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowMinimumSize=xp_dlsym(sdl_dll, SDL_SetWindowMinimumSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetClipboardText=xp_dlsym(sdl_dll, SDL_SetClipboardText))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetClipboardText=xp_dlsym(sdl_dll, SDL_GetClipboardText))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateSystemCursor=xp_dlsym(sdl_dll, SDL_CreateSystemCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetDefaultCursor=xp_dlsym(sdl_dll, SDL_GetDefaultCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->FreeCursor=xp_dlsym(sdl_dll, SDL_FreeCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetCursor=xp_dlsym(sdl_dll, SDL_SetCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->free=xp_dlsym(sdl_dll, SDL_free))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowFlags=xp_dlsym(sdl_dll, SDL_GetWindowFlags))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-#ifndef STATIC_SDL
-	{
-		int (HACK_HACK_HACK *ra)(char *name, Uint32 style, void *hInst);
-		if ((ra = xp_dlsym(sdl_dll, SDL_RegisterApp)) != NULL) {
-			ra(ciolib_appname, 0, NULL);
-		}
-	}
-#endif
-
-	sdlf->gotfuncs=1;
-	sdl_funcs_loaded=1;
-	return(0);
-}
-
-int init_sdl_video(void)
-{
-	const char	*drivername;
-
-	if(sdl_video_initialized)
-		return(0);
-
-	load_sdl_funcs(&sdl);
-
-	if (!sdl.gotfuncs)
-		return -1;
-
-	sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "2" );
-	sdl.SetHint(SDL_HINT_VIDEO_ALLOW_SCREENSAVER, "1" );
-#ifdef _WIN32
-	// code that tells windows we're High DPI aware so it doesn't scale our windows
-	// taken from Yamagi Quake II
-
-	typedef enum D3_PROCESS_DPI_AWARENESS {
-		D3_PROCESS_DPI_UNAWARE = 0,
-		D3_PROCESS_SYSTEM_DPI_AWARE = 1,
-		D3_PROCESS_PER_MONITOR_DPI_AWARE = 2
-	} YQ2_PROCESS_DPI_AWARENESS;
-
-	/* For Vista, Win7 and Win8 */
-	BOOL(WINAPI *SetProcessDPIAware)(void) = NULL;
-
-	/* Win8.1 and later */
-	HRESULT(WINAPI *SetProcessDpiAwareness)(enum D3_PROCESS_DPI_AWARENESS dpiAwareness) = NULL;
-
-	const char* user32dll[] = {"User32", NULL};
-	dll_handle userDLL = xp_dlopen(user32dll, RTLD_LAZY, 0);
-
-	if (userDLL)
-	{
-		SetProcessDPIAware = xp_dlsym(userDLL, SetProcessDPIAware);
-	}
-
-
-	const char* shcoredll[] = {"SHCore", NULL};
-	dll_handle shcoreDLL = xp_dlopen(shcoredll, RTLD_LAZY, 0);
-
-	if (shcoreDLL)
-	{
-		SetProcessDpiAwareness = xp_dlsym(shcoreDLL, SetProcessDpiAwareness);
-	}
-
-	if (SetProcessDpiAwareness) {
-		SetProcessDpiAwareness(D3_PROCESS_PER_MONITOR_DPI_AWARE);
-	}
-	else if (SetProcessDPIAware) {
-		SetProcessDPIAware();
-	}
-	/* Fail to windib (ie: No mouse attached) */
-	if(sdl.Init(SDL_INIT_VIDEO) == 0) {
-		sdl_video_initialized=TRUE;
-	}
-#else
-	/*
-	 * SDL2: Is the below comment still true for SDL2?
-	 * On Linux, SDL doesn't properly detect availability of the
-	 * framebuffer apparently.  This results in remote connections
-	 * displaying on the local framebuffer... a definate no-no.
-	 * This ugly hack attempts to prevent this... of course, remote X11
-	 * connections must still be allowed.
-	 */
-	if(getenv("DISPLAY") != NULL || (getenv("REMOTEHOST") == NULL && getenv("SSH_CLIENT") == NULL)) {
-		if(sdl.Init(SDL_INIT_VIDEO)==0) {
-			sdl_video_initialized=TRUE;
-		}
-	}
-#endif
-	if(sdl_video_initialized && (drivername = sdl.GetCurrentVideoDriver())!=NULL) {
-		/* Unacceptable drivers */
-		if((!strcmp(drivername, "caca")) || (!strcmp(drivername,"aalib")) || (!strcmp(drivername,"dummy"))) {
-			sdl.Quit();
-			sdl_video_initialized=FALSE;
-		}
-	}
-
-	if(sdl_video_initialized) {
-		atexit(QuitWrap);
-		return 0;
-	}
-
-	return(-1);
-}
-
-static void QuitWrap(void)
-{
-	if (sdl_video_initialized) {
-#if !defined(__DARWIN__)
-		exit_sdl_con();
-#endif
-		if(sdl.Quit)
-			sdl.Quit();
-	}
-}
diff --git a/ciolib/sdlfuncs.h b/ciolib/sdlfuncs.h
deleted file mode 100644
index 7dd75bd..0000000
--- a/ciolib/sdlfuncs.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef _SDLFUNCS_H_
-#define _SDLFUNCS_H_
-
-#include "SDL.h"
-#include "SDL_syswm.h"
-
-#ifdef _WIN32
-        #define HACK_HACK_HACK __cdecl
-#else
-        #define HACK_HACK_HACK
-#endif
-
-struct sdlfuncs {
-	int	(HACK_HACK_HACK *Init)	(Uint32 flags);
-	void	(HACK_HACK_HACK *Quit)	(void);
-	int	(HACK_HACK_HACK *PeepEvents)	(SDL_Event *events, int numevents,
-					SDL_eventaction action, Uint32 minType, Uint32 maxType);
-	const char *(HACK_HACK_HACK *GetCurrentVideoDriver)	(void);
-	Uint8	(HACK_HACK_HACK *EventState)	(Uint32 type, int state);
-	SDL_Surface *(HACK_HACK_HACK *CreateRGBSurfaceFrom)(void *pixels, int width, int height, int depth, int pitch,
-							Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
-	void	(HACK_HACK_HACK *RenderPresent)	(SDL_Renderer *renderer);
-	int	(HACK_HACK_HACK *WaitEventTimeout)	(SDL_Event *event, int timeout);
-	int (HACK_HACK_HACK *CreateWindowAndRenderer)	(int w, int h, Uint32 flags, SDL_Window **win, SDL_Renderer **ren);
-	void	(HACK_HACK_HACK *FreeSurface)	(SDL_Surface *surface);
-	void	(HACK_HACK_HACK *SetWindowTitle)	(SDL_Window *window, const char *title);
-	void	(HACK_HACK_HACK *GetWindowSize)	(SDL_Window *window, int *w, int *h);
-	void	(HACK_HACK_HACK *SetWindowIcon)	(SDL_Window *win, SDL_Surface *icon);
-	int	(HACK_HACK_HACK *ShowCursor)	(int toggle);
-	Uint32	(HACK_HACK_HACK *WasInit)	(Uint32 flags);
-	SDL_bool (HACK_HACK_HACK *GetWindowWMInfo) (SDL_Window *window, SDL_SysWMinfo *info);
-	const char	*(HACK_HACK_HACK *GetError)	(void);
-	int (HACK_HACK_HACK *InitSubSystem)(Uint32 flags);
-	void (HACK_HACK_HACK *QuitSubSystem)(Uint32 flags);
-	SDL_Texture* (HACK_HACK_HACK *CreateTexture)	(SDL_Renderer *renderer, Uint32 format, int access, int w, int h);
-	int (HACK_HACK_HACK *UpdateTexture)	(SDL_Texture *texture, const SDL_Rect * rect, const void *pixels, int pitch);
-	int (HACK_HACK_HACK *RenderClear)	(SDL_Renderer *renderer);
-	int (HACK_HACK_HACK *RenderCopy)	(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect);
-	SDL_bool (HACK_HACK_HACK *SetHint)	(const char *name, const char *value);
-	const char * (HACK_HACK_HACK *GetHint)	(const char *name);
-	SDL_Keymod (HACK_HACK_HACK *GetModState)	(void);
-	void (HACK_HACK_HACK *SetWindowSize)	(SDL_Window *window, int w, int h);
-	void (HACK_HACK_HACK *DestroyTexture)	(SDL_Texture *texture);
-	int (HACK_HACK_HACK *SetWindowFullscreen)	(SDL_Window *window, Uint32 flags);
-	int (HACK_HACK_HACK *LockTexture)	(SDL_Texture *texture, const SDL_Rect *rect, void **pixels, int *pitch);
-	void (HACK_HACK_HACK *UnlockTexture)	(SDL_Texture *texture);
-	int (HACK_HACK_HACK *QueryTexture)	(SDL_Texture *texture, Uint32 *format, int *access, int *w, int *h);
-	void (HACK_HACK_HACK *GetWindowPosition)	(SDL_Window *window, int *x, int *y);
-	void (HACK_HACK_HACK *SetWindowPosition)	(SDL_Window *window, int x, int y);
-	void (HACK_HACK_HACK *SetWindowMinimumSize)	(SDL_Window *window, int w, int y);
-	int (HACK_HACK_HACK *SetClipboardText)	(const char *);
-	char *(HACK_HACK_HACK *GetClipboardText)	(void);
-	SDL_Cursor *(HACK_HACK_HACK *CreateSystemCursor)	(SDL_SystemCursor id);
-	SDL_Cursor *(HACK_HACK_HACK *GetDefaultCursor)	(void);
-	void (HACK_HACK_HACK *SetCursor)	(SDL_Cursor *curs);
-	void (HACK_HACK_HACK *FreeCursor)	(SDL_Cursor *curs);
-	void(HACK_HACK_HACK *free)	(void *);
-	Uint32(HACK_HACK_HACK *GetWindowFlags)	(SDL_Window * window);
-	int	gotfuncs;
-};
-
-/* Defined in SDL_win32_main.c for Win32 */
-extern struct sdlfuncs	sdl;
-extern sem_t *sdl_exit_sem;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int load_sdl_funcs(struct sdlfuncs *sdlf);
-int init_sdl_audio(void);
-int init_sdl_video(void);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/syncicon64.c b/ciolib/syncicon64.c
deleted file mode 100644
index b2d6cb2..0000000
--- a/ciolib/syncicon64.c
+++ /dev/null
@@ -1,695 +0,0 @@
-/* GIMP RGBA C-Source image dump (syncicon64.c) */
-
-const char syncicon64[64*64*4] = 
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000\374\374\374\000\374\374"
-  "\374\000\374\374\374\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373"
-  "\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000"
-  "\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\374\374\374\000\374"
-  "\374\374\000\375\375\375\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374\000\373"
-  "\373\373\000\372\372\372\000\371\371\371\000\366\366\366\000\363\363\363\000\361\361"
-  "\361\000\356\356\356\000\354\354\354\000\352\352\352\000\351\351\351\000\350\350\350"
-  "\000\347\347\347\000\346\346\346\000\346\346\346\000\346\346\346\000\346\346\346\000"
-  "\347\347\347\000\350\350\350\000\351\351\351\000\352\352\352\000\354\354\354\000\356"
-  "\356\356\000\361\361\361\000\363\363\363\000\366\366\366\000\371\371\371\000\372\372"
-  "\372\000\373\373\373\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\375\375\375\000\374\374\374\000\373\373\373\000\371\371\371\000\365\365\365\000\361"
-  "\361\361\000\354\354\354\000\347\347\347\000\341\341\341\000\331\331\331\000\321\321"
-  "\321\000\311\311\311\000\302\302\302\000\274\274\274\000\267\267\267\000\262\262\262"
-  "\000\257\257\257\000\254\254\254\000\253\253\253\000\252\252\252\000\252\252\252\000"
-  "\253\253\253\000\254\254\254\000\257\257\257\000\262\262\262\000\266\266\266\000\274"
-  "\274\274\000\302\302\302\000\311\311\311\000\321\321\321\000\331\331\331\000\341\341"
-  "\341\000\347\347\347\000\354\354\354\000\361\361\361\000\365\365\365\000\371\371\371"
-  "\000\373\373\373\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374\000"
-  "\372\372\372\000\367\367\367\000\361\361\361\000\352\352\352\000\342\342\342\000\327"
-  "\327\327\000\312\312\312\000\275\275\275\000\261\261\261\000\246\246\246\000\231\231"
-  "\231\000\215\215\215\000\201\201\201\000xxx\377ppp\377hhh\377bbb\377]]]\377ZZZ"
-  "\377WWW\377VVV\377VVV\377WWW\377ZZZ\377]]]\377bbb\377hhh\377ppp\377xxx\377"
-  "\201\201\201\000\215\215\215\000\231\231\231\000\245\245\245\000\261\261\261\000\275"
-  "\275\275\000\312\312\312\000\327\327\327\000\342\342\342\000\352\352\352\000\361\361"
-  "\361\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375"
-  "\375\000\373\373\373\000\367\367\367\000\361\361\361\000\350\350\350\000\334\334\334"
-  "\000\314\314\314\000\273\273\273\000\251\251\251\000\226\226\226\000\203\203\203\000"
-  "rrr\377bbb\377UUU\377JJJ\377AAA\377:::\377\063\063\063\377---\377(((\377$$$"
-  "\377\"\"\"\377\037\037\037\377\036\036\036\377\036\036\036\377\036\036\036\377\036\036"
-  "\036\377\037\037\037\377\"\"\"\377$$$\377(((\377---\377\063\063\063\377:::\377A"
-  "AA\377JJJ\377UUU\377bbb\377rrr\377\203\203\203\000\226\226\226\000\251\251\251"
-  "\000\272\272\272\000\314\314\314\000\334\334\334\000\350\350\350\000\360\360\360\000"
-  "\367\367\367\000\373\373\373\000\375\375\375\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\374\374\374"
-  "\000\371\371\371\000\364\364\364\000\352\352\352\000\335\335\335\000\313\313\313\000"
-  "\265\265\265\000\236\236\236\000\206\206\206\000ooo\377ZZZ\377III\377<<<\377//"
-  "/\377%%%\377\036\036\036\377\036\036\036\377\037\037\037\377\040\040\040\377!!!\377\""
-  "\"\"\377!!!\377\033\033\033\377\036\036\036\377###\377###\377###\377###\377###"
-  "\377###\377\036\036\036\377\033\033\033\377!!!\377\"\"\"\377!!!\377\040\040\040\377"
-  "\037\037\037\377\036\036\036\377\036\036\036\377%%%\377///\377;;;\377III\377ZZZ\377"
-  "ooo\377\206\206\206\000\236\236\236\000\265\265\265\000\312\312\312\000\335\335\335"
-  "\000\352\352\352\000\363\363\363\000\371\371\371\000\374\374\374\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\374\374\374\000\371\371\371\000\361\361\361\000\345\345"
-  "\345\000\324\324\324\000\275\275\275\000\243\243\243\000\205\205\205\000jjj\377RRR"
-  "\377>>>\377---\377\"\"\"\377\036\036\036\377\040\040\040\377\"\"\"\377\033\033\033"
-  "\377###\377###\377\026\026\026\377\015\015\015\377\015\015\015\377\015\015\015\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\015"
-  "\015\015\377\026\026\026\377\026\026\026\377###\377\033\033\033\377\"\"\"\377\040\040"
-  "\040\377\036\036\036\377\"\"\"\377---\377>>>\377QQQ\377jjj\377\205\205\205\000"
-  "\242\242\242\000\275\275\275\000\324\324\324\000\345\345\345\000\361\361\361\000\371"
-  "\371\371\000\374\374\374\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\375\375\375\000\371\371\371\000\362\362\362\000\345\345\345\000\320\320\320"
-  "\000\265\265\265\000\225\225\225\000uuu\377WWW\377???\377,,,\377\036\036\036\377\037"
-  "\037\037\377\"\"\"\377\033\033\033\377###\377\026\026\026\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\026\026\026\377###\377\036"
-  "\036\036\377\"\"\"\377\037\037\037\377\036\036\036\377,,,\377???\377WWW\377uuu\377"
-  "\225\225\225\000\264\264\264\000\320\320\320\000\344\344\344\000\362\362\362\000\371"
-  "\371\371\000\375\375\375\000\376\376\376\000\373\373\373\000\365\365\365\000\351\351"
-  "\351\000\323\323\323\000\265\265\265\000\221\221\221\000mmm\377MMM\377\063\063\063\377"
-  "\"\"\"\377\037\037\037\377\"\"\"\377###\377\026\026\026\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\014\377\000\000z\377\000\000t\377\000\000\000\377\000\000\000\377"
-  "\000\000j\377\000\000\006\377\000\000\000\377\000\000\000\377\015\015\015\377\026\026\026\377###\377"
-  "\"\"\"\377\037\037\037\377!!!\377\063\063\063\377LLL\377mmm\377\221\221\221\000\265"
-  "\265\265\000\323\323\323\000\350\350\350\000\365\365\365\000\373\373\373\000\355\355"
-  "\355\000\334\334\334\000\276\276\276\000\230\230\230\000ppp\377KKK\377///\377\036"
-  "\036\036\377!!!\377\033\033\033\377\026\026\026\377\015\015\015\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\007\377\000\000\012\377\000\000\000\377\000\000\020\377\000\000\026\377\000\000)\377"
-  "\000\000\017\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\020\377\000\000\177\377\000\000G\377\000"
-  "\000\062\377\000\000\000\377\000\000\000\377\000\000-\377\000\000\002\377\000\000\000\377\006\006\006\377\010\010"
-  "\010\377\014\014\014\377\007\007\007\377\033\034\033\377\026\026\026\377\033\033\033\377!!!"
-  "\377\036\036\036\377///\377KKK\377ppp\377\227\227\227\000\276\276\276\000\334\334"
-  "\334\000\355\355\355\000\306\306\306\000\247\247\247\000}}}\377SSS\377\062\062\062\377"
-  "\036\036\036\377!!!\377\036\036\036\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\003\003\003\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000;\377\000\000T\377\000\000\003\377\000\000\214\377\000"
-  "\000\223\377\000\000;\377\000\000!\377\000\000\016\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\002\377\000\000\224\377\000\000"
-  "Q\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\025\025\025\377\033\034\033\377\027\027\027\377\027\027\027\377\021\021\021\377\000\000\000\377"
-  "\000\000\000\377\015\015\015\377\036\036\036\377!!!\377\036\036\036\377\062\062\062\377SSS"
-  "\377}}}\377\246\246\246\000\306\306\306\000\201\201\201\000aaa\377>>>\377###\377"
-  "\040\040\040\377\036\036\036\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\026\026\026\377\025\025\025\377"
-  "\021\022\021\377\027\030\027\377\000\000\000\377\000\000\007\377\000\000:\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000,\377\000\000\213\377\000\000\300\377\000\000_\377"
-  "\000\000=\377\000\000\000\377\000\000\000\377\000\000/\377\000\000H\377\000\000\001\377\000\000\000\377\000\000!"
-  "\377\000\000\237\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026\026\026\377\036\036\036\377\040\040"
-  "\040\377###\377===\377aaa\377\200\200\200\000;;;\377)))\377\036\036\036\377!!!"
-  "\377\026\026\026\377\000\000\001\377\000\000\002\377\000\000\004\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\001\001\001\377\001\001\001\377&&&\377OPO\377QRQ\377#$#\377\000\000\000\377\000\000\000\377"
-  "\000\000\001\377\000\000\002\377\000\000\014\377\000\000\036\377\000\000V\377\000\000V\377\000\000V\377\000\000"
-  "X\377\000\000\071\377\000\000\066\377\000\000\300\377\000\000\274\377\000\000\250\377\000\000:\377"
-  "\000\000\006\377\000\000\251\377\000\000\327\377\000\000)\377\000\000\021\377\000\000\024\377\000\004\240"
-  "\377\007\007\034\377???\377-.-\377WWW\377`_`\377`_`\377`_`\377TST\377\"\"\"\377"
-  "\000\000\000\377\000\000\006\377\000\000A\377\000\000\000\377\000\000%\377\000\000U\377\000\000\024\377\000\000"
-  "\001\377\000\000\000\377\000\000\000\377\026\026\026\377!!!\377\036\036\036\377)))\377;;;\377"
-  "\040\040\040\377!!!\377###\377\015\015\015\377\000\000\006\377\000\000q\377\000\000\025\377\000"
-  "\000\062\377\000\000\000\377\000\000\000\377\017\020\017\377xyx\377\203\203\203\377\230\230"
-  "\230\377\272\273\272\377lll\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000a\377\000"
-  "\000\216\377\000\000\216\377\000\000\244\377\000\000\337\377\000\000\334\377\000\000\315\377\000"
-  "\000\342\377\000\000\270\377\000\000d\377\000\000\301\377\000\000\242\377\000\000\214\377\000\000+"
-  "\377\000\000\016\377\000\000\333\377\000\000\346\377\000\000^\377\000\000S\377\000\000\236\377\000\012"
-  "\340\377\005\005\067\377///\377HIH\377\303\303\303\377\312\311\312\377\312\311"
-  "\312\377\312\311\312\377\265\265\265\377QRQ\377\000\000\000\377\000\000\005\377\000\000\060"
-  "\377\000\000\000\377\000\000\034\377\000\000?\377\000\000|\377\000\000y\377\000\000\007\377\000\000\000\377"
-  "\000\000\000\377\015\015\015\377###\377!!!\377\040\040\040\377\026\026\026\377\015\015\015"
-  "\377\000\000\010\377\000\000W\377\000\000)\377\000\000&\377\003\003\003\377\017\017\017\377ede\377"
-  "\231\231\231\377\226\227\226\377\271\272\271\377\275\276\275\377\274\275"
-  "\274\377\200\200\200\377&&&\377\000\000\003\377\000\000D\377\000\000\241\377\000\000\331\377"
-  "\000\000\344\377\000\000\330\377\000\000\214\377\010\010>\377\017\017D\377\017\017?\377\000\000"
-  "\063\377\000\000s\377\000\000\305\377\000\000\277\377\001\001?\377\016\016-\377\017\017\017\377"
-  "\010\010\013\377\000\000X\377\000\000\360\377\000\005>\377\000+\225\377\000\020\333\377\000\003\352"
-  "\377\000\000\223\377\000\000\020\377\015\015\015\377xwx\377\343\342\343\377\357\360\357"
-  "\377\357\360\357\377\340\341\340\377~~~\377\000\000\000\377\014\014\014\377\017\017"
-  "\017\377\017\017\017\377\017\017\017\377\017\017\017\377\004\004(\377\000\000\210\377\000\000Q"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000j\377\000\000c\377\000\000\002\377\000\000\000\377\062\062\062\377\266\267"
-  "\266\377\273\274\273\377\275\276\275\377\275\276\275\377\275\276\275\377"
-  "\275\276\275\377\275\276\275\377sss\377\016\016\016\377\000\001F\377\002\003\335\377"
-  "\000\002\375\377\000\000\374\377\004\004H\377\035\035'\377\036\036#\377klk\377\264\265\264"
-  "\377\235\236\235\377\000\000&\377\000\000\317\377\000\000\307\377\026\026V\377--.\377\246"
-  "\247\246\377\266\267\266\377jjj\377\000\000)\377\000\032\347\377\000\007\302\377\000/"
-  "\220\377\000\022_\377\025\025\037\377!!)\377!!\"\377!!!\377\061\062\061\377\262\262"
-  "\262\377\365\365\365\377\365\365\365\377\352\352\352\377\213\213\213\377"
-  "\006\006\006\377\216\217\216\377\266\267\266\377\266\267\266\377\252\253\252\377"
-  "\230\231\230\377##<\377\000\000\216\377\000\000Y\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\246\377\000\000\033\377"
-  "\000\000\000\377\000\000\000\377klk\377\276\277\276\377\275\276\275\377\275\276\275\377"
-  "\311\311\311\377\312\311\312\377\275\276\275\377\275\276\275\377\207\210"
-  "\207\377\001\001\004\377\000\005\352\377\013\020\373\377\000\012\375\377\000\000\363\377\030"
-  "\027?\377\260\257\260\377\265\266\265\377\271\272\271\377\260\261\260\377"
-  ")))\377\000\000~\377\000\000\317\377%%i\377\237\236\242\377\271\271\271\377\274\275"
-  "\274\377\275\276\275\377\255\255\255\377\000\001\004\377\000\\\251\377\000\003\201\377"
-  "\011\014\025\377\062\063\067\377\234\234\234\377\310\307\310\377\310\307\310\377"
-  "\310\307\310\377\217\216\217\377\225\226\225\377\302\302\302\377\300\301"
-  "\300\377\277\300\277\377\210\211\210\377###\377\224\224\224\377\275\276\275"
-  "\377\301\301\301\377xwx\377\010\010\071\377\002\002n\377\000\000\225\377\000\000r\377\000"
-  "\000[\377\000\000\040\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\011d\377\000\013\027\377\000\000\000\377\024\024\024\377\261\261\261\377\334\334"
-  "\334\377\333\334\333\377\324\324\324\377\205\203\205\377\211\210\211\377"
-  "\275\276\275\377\275\276\275\377\236\237\236\377\017\017\021\377\000\003\233\377"
-  "\007\012\375\377\000\006\301\377\000\000\313\377\031\030?\377\270\267\270\377\275\276"
-  "\275\377\271\272\271\377\240\241\240\377\022\023D\377\000\004\350\377\000\000]\377"
-  "RRR\377\300\300\300\377\301\301\301\377\275\276\275\377\275\276\275\377\261"
-  "\261\261\377\036\036\037\377\000\000Z\377\021\021\023\377iii\377\235\236\235\377\305"
-  "\305\305\377\310\310\310\377\310\310\310\377\310\310\310\377\303\303\303"
-  "\377\207\207\207\377\243\243\243\377\331\332\331\377\333\334\333\377\270"
-  "\270\270\377@@@\377qqq\377\303\304\303\377\277\300\277\377\224\224\224\377"
-  "\000\000|\377\000\000\177\377\002\002\211\377\002\002\370\377\000\000\354\377\000\000\207\377\000\000"
-  "\061\377\000\000\007\377\000\000\024\377\000\000\000\377\000\000\000\377\000\000\000\377\000\025\025\377\000"
-  "\024\027\377\000\000\001\377*+*\377\372\372\372\377\375\375\375\377\376\376\376\377"
-  "\372\371\372\377\211\211\211\377\031\031\031\377nmn\377\326\323\326\377\300"
-  "\300\300\377\214\215\214\377\000\000\015\377\000\000C\377\002\002\"\377\000\000\240\377\031"
-  "\030?\377\270\267\270\377\275\276\275\377\263\264\263\377\214\215\214\377"
-  "\000\001i\377\000\016\315\377\022\022\026\377\\]\\\377TTT\377\246\246\246\377\276\277"
-  "\276\377\275\276\275\377\264\265\264\377BCB\377\001\001\001\377\226\226\226\377"
-  "\314\313\314\377\277\300\277\377\275\276\275\377\275\276\275\377\275\276"
-  "\275\377\275\276\275\377\275\276\275\377EEE\377~}~\377\373\373\373\377\377"
-  "\377\377\377\362\362\362\377bbb\377FGF\377\312\311\312\377\275\276\275\377"
-  "\271\272\271\377\002\002#\377\000\000\267\377\006\006\367\377\006\006\371\377\000\000\355\377"
-  "\000\000\274\377\000\000l\377\000\000\016\377\000\000,\377\000\000\001\377\000\000\000\377\000\000\005\377\000"
-  "\005\035\377\000\004p\377\000\000B\377\014\014\017\377yzy\377\300\300\300\377\320\320\320"
-  "\377\315\315\315\377\274\274\274\377\220\216\220\377\040\040\040\377\062\061\062"
-  "\377\062\062\062\377;;;\377\025\026\025\377\040\040\040\377<=<\377\006\006c\377\031\030"
-  "\060\377\270\267\270\377\275\276\275\377\262\263\262\377\200\200\200\377\037"
-  "\040\066\377\000q\234\377\005\010\010\377\026\027\"\377\013\013\023\377LML\377\263\263"
-  "\263\377\275\276\275\377\301\302\301\377HGH\377\065\065\065\377\276\277\276"
-  "\377\301\302\301\377\276\277\276\377\300\300\300\377\276\277\276\377\275"
-  "\276\275\377\266\267\266\377\266\267\266\377\017\017\017\377\061\061\061\377\367"
-  "\367\367\377\377\377\377\377\375\375\375\377ooo\377...\377\260\261\260\377"
-  "\275\276\275\377\264\265\264\377UUU\377\025\026;\377\027\027L\377\027\027L\377"
-  "\025\026J\377\011\011\062\377\017\017'\377\003\003\006\377\000\000^\377\000\000\026\377\000\000\004\377"
-  "\000\000D\377\000\000\314\377\000\000\305\377\000\000\303\377\000\001A\377\003\011\035\377MKM\377"
-  "\300\275\300\377\276\276\276\377\275\276\275\377\275\276\275\377\201\201"
-  "\201\377\021\021\021\377./.\377\243\243\243\377\267\270\267\377\225\226\225"
-  "\377Z[Z\377\010\010F\377\034\034,\377\277\277\277\377\307\310\307\377\263\264"
-  "\263\377\213\213\213\377\264\264\264\377(--\377\031\030\031\377\000\000S\377\000\000"
-  "\070\377\061\061\061\377\270\270\270\377\307\310\307\377\314\314\314\377MMM\377"
-  "[\\[\377\310\311\310\377\310\311\310\377\302\303\302\377\274\272\274\377"
-  "\261\261\261\377\273\274\273\377\265\266\265\377\252\252\252\377\000\000\000\377"
-  "\027\030\027\377\343\343\343\377\376\376\376\377\377\377\377\377\331\332\331"
-  "\377\302\303\302\377\307\310\307\377\307\310\307\377\277\300\277\377\304"
-  "\305\304\377\242\243\242\377\231\232\231\377\231\232\231\377\231\232\231"
-  "\377>?>\377kkk\377\025\025\030\377\000\000t\377\000\000\027\377\000\000\032\377\000\000\300\377"
-  "\000\000\355\377\000\000r\377\000\000\257\377\000\005\363\377\000%\263\377\001\001X\377\001\001)\377"
-  "MMM\377xxx\377\307\305\307\377\316\315\316\377\216\215\216\377\037\040\037\377"
-  "\236\237\236\377\275\276\275\377\275\276\275\377\240\241\240\377\011\011\012"
-  "\377\061\061\061\377\346\345\346\377\377\377\377\377\261\261\261\377\310\310"
-  "\310\377\376\376\376\377\374\373\374\377\305\304\305\377__`\377\033\033\034"
-  "\377\030\030\030\377\343\343\343\377\377\377\377\377\364\362\364\377cbc\377"
-  "\332\332\332\377\375\375\375\377\377\377\377\377\271\271\271\377(((\377K"
-  "KK\377\262\263\262\377\275\276\275\377srs\377\000\000=\377\000\000\016\377\200\200"
-  "\200\377\372\372\372\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\376\376\376\377\377\377\377\377;;;\377\001"
-  "\001W\377\001\030h\377\001\063b\377\001\001a\377\001\001Z\377\000\000k\377\000\000W\377\000\000\000\377"
-  "\000\002>\377\000\030\307\377\000\020\342\377\000\000_\377\000\000\330\377\000\003\364\377\000\022"
-  "g\377\000\000g\377\000\000/\377\000\000\000\377\016\015\016\377jhj\377\266\265\266\377\310"
-  "\307\310\377\202\202\202\377\252\252\252\377\276\277\276\377\275\276\275"
-  "\377\267\267\267\377)()\377AAA\377\322\322\322\377\336\337\336\377\256\257"
-  "\256\377\245\245\245\377\337\337\337\377\336\337\336\377\336\337\336\377"
-  "\316\316\316\377\212\211\212\377)))\377\307\310\307\377\341\341\341\377\336"
-  "\335\336\377\\[\\\377\326\325\326\377\376\375\376\377\376\376\376\377\206"
-  "\206\206\377\000\000\000\377)))\377\202\203\202\377\275\276\275\377\227\230\227"
-  "\377##%\377\000\000\000\377www\377\343\343\343\377\336\337\336\377\313\314\313"
-  "\377\200\200\200\377\212\212\212\377\337\337\337\377\336\337\336\377\336"
-  "\337\336\377Z[Z\377\000\000s\377\000\033\340\377\000:\310\377\000\004\274\377\000\000\207"
-  "\377\000\000q\377\000\000\000\377\000\000\000\377\000\006b\377\000\062\315\377\000\036\330\377\000\000"
-  "M\377\000\000\205\377\000\000\067\377\037\037\037\377\223\223\223\377\223\223\223\377"
-  "+++\377\000\000x\377\000\000\015\377\224\225\224\377\302\302\302\377\275\276\275\377"
-  "\267\270\267\377\277\300\277\377\275\276\275\377\301\301\301\377\243\243"
-  "\243\377hhh\377\275\276\275\377\275\276\275\377\254\255\254\377\202\202\202"
-  "\377\277\300\277\377\275\276\275\377\275\276\275\377\275\276\275\377\302"
-  "\303\302\377\241\241\241\377\272\273\272\377\304\304\304\377\310\307\310"
-  "\377TUT\377\321\320\321\377\375\375\375\377\376\375\376\377\206\206\206\377"
-  "\000\000\000\377\001\001t\377\022\023$\377*+*\377*+*\377\020\020\020\377\000\000\000\377jjj\377"
-  "\316\315\316\377\275\276\275\377\227\230\227\377\000\000\000\377\025\025\025\377\277"
-  "\300\277\377\275\276\275\377\275\276\275\377{{{\377\000\000\007\377\000\000/\377\000"
-  "\000|\377\000\013\345\377\000\000>\377\000\000\000\377\000\000\000\377\000\000\000\377\000\001!\377\000\010"
-  "\263\377\000\021\366\377\000\021\337\377\000\000\274\377+++\377\231\227\231\377\265"
-  "\266\265\377wxw\377'('\377\037\037\067\377@?B\377\304\303\304\377\275\276\275"
-  "\377\320\316\320\377[Z[\377\310\306\310\377\331\331\331\377\361\360\361\377"
-  "\363\364\363\377\351\351\351\377\365\365\365\377\365\365\365\377\205\205"
-  "\205\377\215\214\215\377\301\301\301\377\300\301\300\377\223\222\223\377"
-  "^^^\377\263\264\263\377\275\276\275\377\275\276\275\377\302\302\302\377\310"
-  "\307\310\377FGF\377\251\247\251\377\364\363\364\377\372\371\372\377\314\314"
-  "\314\377MNM\377\006\006)\377\000\000\177\377\000\000b\377\016\016\016\377=>=\377\061\062\061"
-  "\377***\377\273\274\273\377\275\276\275\377\227\230\227\377\000\000\065\377\003"
-  "\003\063\377\216\216\216\377\275\276\275\377\275\276\275\377\263\264\263\377"
-  "\013\025&\377\000D\262\377\000\000\277\377\000\002n\377\000\000\011\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\001\377\000\000\064\377\000<\277\377\000N\273\377\000\000\245\377\062\063\063"
-  "\377\255\253\255\377\265\266\265\377\271\272\271\377\265\266\265\377\265"
-  "\266\265\377\276\276\276\377\316\314\316\377\303\303\303\377\325\323\325"
-  "\377\272\272\272\377WYW\377SRS\377\273\270\273\377\322\321\322\377\363\363"
-  "\363\377\362\362\362\377\360\360\360\377nnn\377\230\227\230\377\304\304\304"
-  "\377\303\304\303\377\225\224\225\377\007\007\007\377hhh\377\267\270\267\377\275"
-  "\276\275\377\301\301\301\377\307\307\307\377SSS\377\066\067\066\377\347\346"
-  "\347\377\361\360\361\377\324\324\324\377\275\275\275\377HGH\377&&-\377*)"
-  "/\377ghg\377\204\205\204\377HIH\377\031\031\031\377\260\260\260\377\277\300"
-  "\277\377\233\234\233\377\000\000M\377\000\010\261\377\206\206\206\377\301\302\301"
-  "\377\301\302\301\377\276\277\276\377\037*:\377\000\\\234\377\000\006\021\377\000\000"
-  "\004\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\062\063\062\377\255\253\255\377\275\276\275\377\275"
-  "\276\275\377\275\276\275\377\275\276\275\377\301\302\301\377\321\320\321"
-  "\377\332\330\332\377\311\311\311\377\275\276\275\377\265\265\265\377kkk\377"
-  "\021\021\021\377\062\063\062\377\277\300\277\377\275\276\275\377\261\262\261\377"
-  "+++\377\276\277\276\377\320\316\320\377\316\315\316\377\275\276\275\377\020"
-  "\020\020\377\000\000\000\377[\\[\377\264\265\264\377\275\276\275\377\307\307\307"
-  "\377\230\230\230\377\000\000\000\377yyy\377\313\311\313\377\275\276\275\377\327"
-  "\325\327\377\325\323\325\377\304\304\304\377\312\311\312\377\275\276\275"
-  "\377\237\240\237\377\200\201\200\377\000\000L\377\215\215\221\377\310\310\310"
-  "\377\253\254\253\377\000\002Y\377\000(\275\377\213\212\213\377\322\320\322\377"
-  "\322\320\322\377\302\302\302\377opo\377\000\212\214\377\000\037\040\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\011\011\377"
-  "\000\036\036\377\000\006\007\377\034\034\034\377\267\266\267\377\322\321\322\377\322\321"
-  "\322\377\277\277\277\377\232\233\232\377\263\264\263\377\303\303\303\377"
-  "\307\306\307\377{{{\377WX[\377[[`\377PPT\377\020\021\022\377]]]\377\311\310"
-  "\311\377\310\310\310\377\234\234\234\377FFF\377\272\273\272\377\302\302\302"
-  "\377\332\327\332\377\323\321\323\377ono\377\013\014R\377\010\010\037\377^^^\377"
-  "\274\274\274\377\302\302\302\377\245\245\245\377\026\027\026\377\022\022\023\377"
-  "^]`\377\206\207\206\377\306\305\306\377\300\301\300\377\301\301\301\377\266"
-  "\265\266\377\257\260\257\377\253\254\253\377PPP\377\000\000K\377\211\211\214"
-  "\377\301\301\301\377uuu\377\000;w\377\000\035e\377\200\200\200\377\306\306\306"
-  "\377\302\300\302\377\320\317\320\377<PP\377\000\232\233\377\000\016\016\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\023\023"
-  "\377\000\067\070\377\000\014\014\377\002\002\002\377HHH\377\303\302\303\377\303\302\303"
-  "\377\262\263\262\377jkj\377$$$\377'**\377'**\377\014\017\025\377\000\002\251\377"
-  "\000\001\302\377\000\000\243\377\000\000O\377\203\203\203\377\320\317\320\377\322\320"
-  "\320\377\211\210\210\377\024\024\024\377(((\377'''\377\303\302\303\377\303\302"
-  "\303\377\257\260\257\377\026\026\062\377\000\001\232\377\006\006\036\377XXX\377\272\273"
-  "\272\377\263\263\263\377\236\237\236\377\005\006!\377\000\000j\377\022\022\022\377'"
-  "')\377\235\236\236\377\274\274\274\377\230\226\230\377bbb\377'''\377\010\010"
-  "\010\377\000\000\000\377\206\207\206\377yzy\377\017\017\020\377\000h\220\377\003\030\035"
-  "\377z{z\377\275\276\275\377\264\263\264\377\334\333\334\377\020\030\030\377"
-  "\000$$\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\003\003\377\000\007\007\377\000bc\377\000\027\027\377\005\014\014\377\031-"
-  "-\377\031\031\031\377\027//\377\016//\377\000=>\377\000\217\221\377\000\240\243\377"
-  "\000\275\304\377\000w\345\377\000$\311\377\000\000\245\377\031\031k\377\306\304\306\377"
-  "\311\311\303\377\353\352y\377ff\032\377!!!\377\063\063\063\377\010\010\010\377\031"
-  "\031\037\377\031\031.\377YZY\377\060\060\060\377\000Is\377\000$\263\377\010\010\061\377"
-  "\031\031.\377ooo\377\236\237\236\377{|\200\377():\377\020\020\020\377\000\000]\377"
-  "\024\024\063\377\031\031\066\377\024\024\065\377\013\013\034\377\000\000\000\377\000\000\000\377"
-  "\066\066\066\377\224\224\224\377WWW\377\000\000,\377\012\030M\377uxx\377\226\226\226"
-  "\377\236\237\236\377\235\236\235\377<<<\377\002\002\002\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000!!\377\000_`\377\000\000\000\377\000ln\377"
-  "\000\235\237\377\000\226\227\377\000\000\004\377\000QY\377\000\244\262\377\000g\273\377\000"
-  "\037\223\377\000\000K\377\063\063\063\377\325\323\325\377\325\325\232\377\363\362"
-  "Q\377\207\207\034\377[\\[\377kjj\377EE\022\377\000\000\035\377\000\000e\377\000\000\031\377"
-  "\000\000\062\377\000P~\377\000\247\315\377\000$\363\377\000\010\225\377\000\000:\377\000\000\022"
-  "\377\031\031\031\377\213\213\213\377KKK\377\000\000\000\377\000\000\015\377\000\000\211\377"
-  "\000\000\233\377\000\000S\377\035\035\035\377\012\012\012\377\231\231\231\377\010\010\010"
-  "\377\000\000\000\377\000\000&\377\000\000*\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\001\001\377\000\002\002\377\000\000\000\377\000\002\002\377\000\003\003\377\000\003\003\377\000\000\020"
-  "\377\000\002\034\377\000\003&\377\000\002\065\377\000\001\003\377\"\"#\377\231\231\231\377\350"
-  "\346\217\377\374\374\023\377\377\377\001\377\375\375W\377\374\374\374\377\372"
-  "\372\367\377\221\221-\377\000\000\001\377\000\000\002\377\000\000\061\377\000\000b\377\000\013\272"
-  "\377\000Y\315\377\000M\316\377\000\037\314\377\000\000\227\377\000\000\214\377\000\000\003\377"
-  "\003\003\003\377\001\001\001\377\000\000\000\377FFF\377\002\002\004\377\000\000\003\377\000\000\002\377\071\071"
-  "\071\377\023\023\023\377\003\003\003\377\000\000\000\377\000\000\000\377\000\000\001\377\000\000K\377\000\000"
-  "\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\007\377\000\000\013\377\000\000\017\377\000\000\025\377\000"
-  "\000\000\377\034\035\034\377PPP\377cc\031\377ll\000\377\206\206\000\377\377\377%\377"
-  "\377\377l\377\232\232j\377\023\023\023\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000G\377\000\000V\377\000\005V\377\000\015V\377\000\000\037\377\000\000\206\377\000\000Z\377"
-  "\000\000\071\377\000\000\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\027\027\000\377\314\314\003\377\372\372"
-  "\012\377\236\236\000\377\014\014\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000W\377\000\000"
-  "\220\377\000\000]\377\000\000\024\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377FF\000\377\343\343\035\377\216"
-  "\216k\377\025\025\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\017\377\000\000\027\377\000\000\001\377\000\000u\377\000\000"
-  "\027\377\000\000\015\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\040\040\040"
-  "\377!!!\377###\377\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\315\315\063\377\240\240\007\377"
-  "\004\004\004\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000/\377\000\000K\377\000\000\000\377\000\000\004\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\015\015\015\377###\377!!!\377\040\040\040\377:::\377(((\377\036"
-  "\036\036\377!!!\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000``\377\314\341\322\377\226\226\030\377\\\\\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026"
-  "\026\026\377!!!\377\037\037\037\377(((\377:::\377\200\200\200\000aaa\377===\377"
-  "###\377!!!\377\036\036\036\377\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000CC\377m|W\377\315\315\011\377@@\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\036\036\036\377!!!\377###\377=="
-  "=\377aaa\377\200\200\200\000\306\306\306\000\246\246\246\000}}}\377SSS\377\062\062"
-  "\062\377\036\036\036\377!!!\377\036\036\036\377\015\015\015\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\257\257\000\377==\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\015\015\015\377###\377\"\"\"\377\036\036\036\377\062\062\062\377RRR\377}"
-  "}}\377\246\246\246\000\305\305\305\000\355\355\355\000\334\334\334\000\276\276\276"
-  "\000\227\227\227\000ooo\377KKK\377///\377\036\036\036\377!!!\377\033\033\033\377\026"
-  "\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\207\207\000\377\001\001\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\026\026\026\377\033\033\033\377!!!\377\036\036\036\377///\377JJJ\377ooo\377\227\227"
-  "\227\000\276\276\276\000\333\333\333\000\355\355\355\000\372\372\372\000\365\365\365"
-  "\000\350\350\350\000\323\323\323\000\264\264\264\000\221\221\221\000mmm\377LLL\377"
-  "\063\063\063\377\"\"\"\377\037\037\037\377\"\"\"\377###\377\026\026\026\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\\\\\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026\026\026"
-  "\377###\377\"\"\"\377\037\037\037\377!!!\377\063\063\063\377LLL\377mmm\377\220"
-  "\220\220\000\264\264\264\000\322\322\322\000\350\350\350\000\365\365\365\000\372\372"
-  "\372\000\375\375\375\000\374\374\374\000\371\371\371\000\362\362\362\000\345\345\345"
-  "\000\320\320\320\000\264\264\264\000\225\225\225\000uuu\377WWW\377>>>\377+++\377"
-  "\036\036\036\377\037\037\037\377\"\"\"\377\036\036\036\377\026\026\026\377\015\015\015\377"
-  "\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\015"
-  "\015\015\377\026\026\026\377\036\036\036\377\"\"\"\377\037\037\037\377\036\036\036\377"
-  "+++\377>>>\377WWW\377uuu\377\224\224\224\000\264\264\264\000\317\317\317\000\344"
-  "\344\344\000\362\362\362\000\371\371\371\000\374\374\374\000\375\375\375\000\376\376"
-  "\376\000\376\376\376\000\375\375\375\000\374\374\374\000\370\370\370\000\361\361\361"
-  "\000\345\345\345\000\323\323\323\000\275\275\275\000\242\242\242\000\205\205\205\000"
-  "jjj\377RRR\377>>>\377---\377!!!\377\036\036\036\377\040\040\040\377\"\"\"\377\033"
-  "\033\033\377###\377\026\026\026\377\015\015\015\377\015\015\015\377\015\015\015\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\015\015\015\377\015\015\015\377\026\026\026\377###\377\033\033\033\377\"\"\"\377\040"
-  "\040\040\377\036\036\036\377!!!\377---\377>>>\377QQQ\377jjj\377\205\205\205\000"
-  "\242\242\242\000\274\274\274\000\323\323\323\000\345\345\345\000\361\361\361\000\370"
-  "\370\370\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374"
-  "\000\371\371\371\000\363\363\363\000\352\352\352\000\335\335\335\000\312\312\312\000"
-  "\265\265\265\000\236\236\236\000\206\206\206\000ooo\377ZZZ\377III\377;;;\377.."
-  ".\377%%%\377\036\036\036\377\036\036\036\377\037\037\037\377\040\040\040\377\"\"\"\377"
-  "\"\"\"\377!!!\377\033\033\033\377\036\036\036\377###\377###\377###\377###\377#"
-  "##\377###\377\036\036\036\377\033\033\033\377!!!\377\"\"\"\377\"\"\"\377\040\040"
-  "\040\377\037\037\037\377\036\036\036\377\036\036\036\377%%%\377...\377;;;\377III\377"
-  "YYY\377nnn\377\205\205\205\000\236\236\236\000\265\265\265\000\312\312\312\000\335"
-  "\335\335\000\352\352\352\000\363\363\363\000\370\370\370\000\374\374\374\000\375\375"
-  "\375\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377"
-  "\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\375\375\375\000\374\374\374\000\372\372\372\000\366\366\366\000\360\360\360\000\347"
-  "\347\347\000\333\333\333\000\313\313\313\000\272\272\272\000\250\250\250\000\226\226"
-  "\226\000\203\203\203\000rrr\377bbb\377UUU\377JJJ\377AAA\377:::\377\062\062\062\377"
-  "---\377(((\377$$$\377!!!\377\037\037\037\377\036\036\036\377\035\035\035\377\035\035"
-  "\035\377\036\036\036\377\037\037\037\377!!!\377$$$\377(((\377---\377\062\062\062\377"
-  "\071\071\071\377AAA\377JJJ\377UUU\377bbb\377rrr\377\203\203\203\000\226\226\226"
-  "\000\250\250\250\000\272\272\272\000\313\313\313\000\333\333\333\000\347\347\347\000"
-  "\360\360\360\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000"
-  "\374\374\374\000\372\372\372\000\366\366\366\000\361\361\361\000\352\352\352\000\342"
-  "\342\342\000\327\327\327\000\312\312\312\000\275\275\275\000\261\261\261\000\245\245"
-  "\245\000\231\231\231\000\214\214\214\000\201\201\201\000xxx\377ooo\377hhh\377bbb"
-  "\377]]]\377ZZZ\377WWW\377VVV\377VVV\377WWW\377ZZZ\377]]]\377bbb\377hhh\377"
-  "ooo\377xxx\377\201\201\201\000\214\214\214\000\231\231\231\000\245\245\245\000\261"
-  "\261\261\000\275\275\275\000\312\312\312\000\327\327\327\000\342\342\342\000\352\352"
-  "\352\000\361\361\361\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375"
-  "\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375"
-  "\000\375\375\375\000\374\374\374\000\372\372\372\000\370\370\370\000\365\365\365\000"
-  "\360\360\360\000\354\354\354\000\347\347\347\000\341\341\341\000\331\331\331\000\321"
-  "\321\321\000\311\311\311\000\301\301\301\000\273\273\273\000\266\266\266\000\262\262"
-  "\262\000\257\257\257\000\254\254\254\000\253\253\253\000\252\252\252\000\252\252\252"
-  "\000\253\253\253\000\254\254\254\000\257\257\257\000\262\262\262\000\266\266\266\000"
-  "\273\273\273\000\301\301\301\000\310\310\310\000\321\321\321\000\331\331\331\000\341"
-  "\341\341\000\347\347\347\000\354\354\354\000\360\360\360\000\365\365\365\000\370\370"
-  "\370\000\372\372\372\000\374\374\374\000\375\375\375\000\375\375\375\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000"
-  "\374\374\374\000\374\374\374\000\373\373\373\000\372\372\372\000\370\370\370\000\366"
-  "\366\366\000\363\363\363\000\360\360\360\000\356\356\356\000\354\354\354\000\352\352"
-  "\352\000\350\350\350\000\347\347\347\000\346\346\346\000\346\346\346\000\346\346\346"
-  "\000\346\346\346\000\346\346\346\000\346\346\346\000\347\347\347\000\350\350\350\000"
-  "\352\352\352\000\354\354\354\000\356\356\356\000\360\360\360\000\363\363\363\000\366"
-  "\366\366\000\370\370\370\000\372\372\372\000\373\373\373\000\374\374\374\000\374\374"
-  "\374\000\375\375\375\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375"
-  "\375\375\000\375\375\375\000\374\374\374\000\374\374\374\000\374\374\374\000\373\373"
-  "\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373"
-  "\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000"
-  "\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\374\374\374\000\374"
-  "\374\374\000\375\375\375\000\375\375\375\000\375\375\375\000\375\375\375\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377";
-
diff --git a/ciolib/syncicon64.h b/ciolib/syncicon64.h
deleted file mode 100644
index 58a37ce..0000000
--- a/ciolib/syncicon64.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef SYNCICON64_H_
-#define SYNCICON64_H_
-
-#define SYNCICON64_WIDTH	64
-#define SYNCICON64_HEIGHT	64
-extern const char syncicon64[64*64*4];
-
-#endif
diff --git a/ciolib/syncicon64.ico b/ciolib/syncicon64.ico
deleted file mode 100644
index 39069e2a0e15a5740dd956ceb5bf4d81988aee2c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16958
zcmZQzU}RuqaBu+83Je-f3=Con3=A3!3=9qo3=9nn5OD?^;Q#;s45N573`WzyXc`zz
z1EXnRG!2lR2LAo~$1qTMAmR&`U;qC7%K*cF{`_Hp;orZ1Gmwj6X28sa(YV||i}1i^
z7t9?n_ksNP>(?)aA3uIDeEar|;q&Lu3?DvxV0icL9mAV9Zx~*^dd2YK#S4b#&!00q
zd-e<~2FZccfYgHYfb@dQ0GS0c6J$2X4v<|idtvUt=0=bhx#0oQi;iJ-f$Rpk1LU5s
zU%!I=334yU{SO~LWVm_rCd0*x7a2~TJjrnI;6aAnyLU5e+qR8i)22-f>({SmShHpg
z!|K(m8CI=Y1;!vYNDL$gQUg*8(gV_a;=~ECSs*h(W`pbi*#!z0kli3RfZPId6U=?+
z?uPM+2@9B77!5NMWIo6qP&|D6_z@hRj~+c@xPJXQ!>LoJ820Yn%dm0dMuw$Jmom(p
zIg_EMr-z}jv5}#oqT+vke*XWAjEw(DNlE`>V`KkEMMeD&4-fwz78VA^AT~%0BnMIh
zQVY@p(hD*JWERLwkl7$RKz4!b1lbL811P<K+yrtP$c-Sk!rTq>2QrN<9FXNfY><AC
zIUw^u=7Pc-6!y1o-)1;{`ZU9?UAq`otXRP?ZQ3-3=H_OGqM{<O|3X7U|9g3P{daV9
z{BLDt_20<I=)bP6?tcvpjsGetD*qJ~75~f2%m0^?llw0#D+|UTHb@L42T}u43(^D9
zYiVf-HVb4X$ZSyffb0U<39=jH29R4oZUVUt<VKKNL2d@Q9pnd)UqF6B$DnXP7XzsU
z>G}EdCpZs-!uIanyWlw9x^*kVym|8&+S=L}K=A{LGfz*?|JK&l|Mm3r{;R60g8c>a
zkAi~2e<dX)Fb4TeT3Q+`udJ;69~%bg1E~S2h3NyC0SX(C90-H#0NDky6J&Q}WaR(6
zyuAOdt*v0Uf!qj68z47>+zu)`KzRh@Cy?LJ{R`uR<UndbYC&n~>C>kSmoHxir|U(F
z7BPU#&&taB9~2by-_Fhs9H$_6g4_ghBgnlVw}bp8CMNcumzNig85kJ;lZ#>IfXoD$
z4YC7d7syVK-5@uB(hA5;fq{YlL2d-O73AhUd-j0+0P+jSPawa6{0Q<Zy1zm3{pr&u
z29Vkd7cMYt*|LRU>eQ(WrKP3dyb3a3TU#3(f1vmPxdCK9$XzfulIurO^}*}|*$r|7
z$Soi@f!H87g4_x!Q$TK?GGz+bFXzvnXL$1D2?NNFAiu)G0hC8T<tV7$0mV1S-xDWJ
zWXR3U{qN)B^WWIm7@U4V=7a13#R14(oNkVZAv>;dnn^_Z0l5j}Hjo=ZZUv<aklR6i
z0QqIYgbCnqxOC|fxE==i8RYl3Z{IT9xpRkM-@bhe)2B}d=WB0o@BjMx`rx<*nFC65
zAoGcGUwiw121dpK2?Ln>KyC%O8RT|QngIC)RDOcWERY{Teg&14Aip0wc8p=!vSkdl
zwYC3)gM-24HAoLkFDR|S%q5Cmzy3dit?hvNALdSw+hJ(}<R?&l0xG{ieg*mY=+UDL
z4Gj$piHV8-ZEbDAWir|RW?=a5?9A{#ye9WQ=h?IW85|r2MHqm>0u&A)|AYJn3J;K9
zL4F4L9aKky>RXsRDD8mskb@Hv82(>+c;>&vv}ykt2B;js=WdYSKw$tXA3%Nv`5jb`
zfW$!I0tzR5`iYS<K6~~*`+^1kSy)(zihq3uhX3Bs@{I*b6Jrm#YCwJj`4!}6kl#Uk
za?Qf3&&}<>?BmD(v-|q~Gl+^33<G`!hX3LW4F4G!82*<+*}M!4|C#9&7Fhj2iQVGj
z|C!I6`Oo$1*MEk2^ZqmN@DL0Gm>a?w82(RSVE7-)!0=y$5;xFLFFOOne{Keb|Dbpi
zh1w${EAu}fAmG1ba`JzMoSgp*ZEgQm|NsA=^Z)<<tXZ@E3kwTlgn>H)!~ZZ4W@Y#v
z#>?<uo`K<i8w11tC<ccAmJAI4L1_RME(1X`GBW&UVuG|=K{PWn!+#JKU|{$!!^H4k
zjhW%UDHFqgW=4kp%1TQAXU?4YzyH~b|H6O%{Ac|C|9|-3zyJUI`Sbt#uV4RlCr$*X
zZzcwY|Aq_<|C1OP{_o;u_<uH%;r}^bhW}^e8U9aaVEEqyP4~>q%>NmoZ3s6vxBo0m
zOyK+g(huqnfx;7{1{N-$yaOsjsF`OJ6&d~~#6$d_m&5RX{#=It)2A`~2bEEgfeimQ
zEn)b-JDuVGWO+#W1!`+uy?pimtgBc52Y&keU#7kNe{@Xr|E#R+|3a>=|795%{--i9
z{Fh{4_;19(@V_pA;s4p?4F5l?F#Mm&!SLUTf#JUpNM2I%e|LBHe^46?<Ude4=wx8{
zKbwK!e=q|BxWCB7#RU#;4h{}*x>93c_^$;`iy%GZU{Kt$voripPGa~kF3#|uhllmQ
zuCC;NNlD57`ugJk_4WDw+u1VwpV-gvfAIo_|3~&R{C`@`@c*O=!~dlW4F9twCI25g
za_s-%lPCXIzIy#%DlHA%*9C<O$er?%lK=H2CI3f8MgBK1F!*2W$?$)(3d4Ux4i2z5
zsBJcH{=EMUHP!#EG&TMU2nc}70b>!7|7Mbs|4l_i{>yN4gZ&HgpP8B2|0z?Zfcqvo
z3=IE$CAj`qRFwXoHf`E}kU4Yb&HZm<WAmShi3zR;qz@Ms7H0TwVGi;)DBUyt_wexe
zfB4X0Fy6Fz)BmjOEO7r_OH2Jf2#fOb{9nn$@c$4a!~ew$4FCNZ82&dmH~+tI{=)wY
z7cTwp=;-_}A|e9r_p7U`gUtb%w|>L=|3+eB|7S5W{Fh^6`yUYz@qgFuUH><4-VAoP
zA{*=fEKphy68f*HuKs`Cyt)7P?Ah~w#<UsW@dc1spzs9wqpiK|e`QtWe*u2}{}VD8
z{>w@*|F5d9`oDMI-v3)RZ~1@c_MQI{5(58KR3PaXqz4z~<Yf3SC&%!gosHqYjEv0x
z?c28hzjW~u81LV||NpGnv;J@1vibkv!-xMLKX&|ob#?Xs=!o$D3DMF2LjnT+3keE<
z$97JhIQjp?i4*_l%$f5aly^aXJ9OyK|6A8@{l9$i^8ft2{Qp5b-2de{IR3}Q#ew|>
zl3%)X>3=bCvH!wCLjMzD<NkyEcI@b}{|62p_<!)=!T;N~Zu<`kyVYw}gUeb_e(&k*
z1j~W?dF9p&|5Ifd{x>u<{6BW=*#AQZ4uRt$Ai(DT>{$%|`S=Kj0W55cjE(-UUA-0@
zj-arF;e&?`{=azP;{RJWZv8)b@+4S(>(;IRv$M1R3knMU2kF~?U_V%V<ED-OL4DDE
z`}h67aPGqYb7#+i#X;#BWDlrp*s^sCSnT-m<Ns&Om;p|wm6etMPoF#u7QcS=`hQTF
za^%R7|EEr#0*lRGF#mr;W5a(R28RC=dwaoQ4GNP;CWileH5mSPcXj{2bm0;hgTghx
zApd_)7sG!AdF=iNm7OLG4FC7rF#O-`2g%FEQ2%e;w)OwcT|57SXb|4FZ{PoOXU>7s
z0LWdtcJ2Bf9vS{WI4Jo4?j5_qY31|h&;LJt`t<+9hY#R!nHke({0F)J@R7s+r%svr
zpPii@JQlcp$9AxPKyeH5KdA3zW^VTX`LpN$KYsZ5|H_ps|M%|Q``^Re<G-$&+JAjb
zt^es6>Hk|=TmE}^dVtHN4I4K62Zi_SIkW%!GBEt#$ieWxt*z}pD4swV6!unH^8e?=
zF#H!}gOuH%ut&y<j12!bb1?k>Cdlyrz97T@Jq!%sc$+zWCfMKQ73KfcHPru`%gg_F
zvUm7@<nR%&yFqap9Tolm#IY0qZ{EBKcJt>ipZ~vn`SSnQuV2BqwYBwsZ%;2cje^qg
z<VlmkX&#i1U}*{zM<<S-`0wWK_J8H_mH)qd{__9V&tLz~oH_H~*U$IACL7!TdT5==
z$H({I*3S07p^@Q#EiJA8yZ7t{yJh-}>Hkd`82%eGGym`F>jR5{%m>+{Cd&PPlMBQD
z{R|BM^OzX^bE4G~No)-N&l)lOzahr}4#QRkhX3Xa4B#=!$&)Al2Vqb;u7I{lrc9mk
zALM3``Jgxig+GW5ipRx^7lY###0TLuYuEg5YH9+<5r_}NhYlb5zi{C~aJdIc8zBFO
zgoc3g*5AK>|Nr~@4;+u6cq(CJ{I4P`^j}L`3yfj;2Q<zF%Tpl#gVc(OilW#BDx*N{
zHBcX;hJoS#Q*MU;c4+>$V`BJ!T!P{MBLRm0@eB<AZ!j?Y|H91hKV697e>wxhe~?~~
z*?hcw|Fbf(z~vCgy&!+BTD9swD2;*qwSD{c|C$<_;IZ0EmoELkcmLl1b?evt2bF90
z@81XWL1O35o%`R_+4WyjQ}h4v6UYBQeE9JHy}S4R$3(~czjpN+*zf=TA^Z<g*VNnu
zj#H37Rh5;&<wSXT`Txg{AA`+3edaW{-0SM<`j2c^RCLt;Vg`o)52P9XpRi*1zlVk4
ze>(%i|3aiNkYZr?e}IAE|62xz|3wT8|JO4x{Qu0#@PD%^!~Y0I#{Zg(jQ@RoegA{T
z;*TFa4lc*~di(y%E69WEE0Etoc)`L2|G79h{~H<_{(tuL*?$n&xN#%6d;<CB&+k9~
zj~+StKOsK;zl^l>e+dZ*u=_#kzI^)fKRGG+|E*iM{)6HlB(`(sPH^1`Y6pSpUyvQe
zMaBPZ85sWaF+j@sU%!5Vlwx3zeIP;57;!iw<Npi^#{WsijQ<lE8UIHyGXBqIVE7N}
zYk=Yv)Sh!;VEBKAf#LsA28REK85sUMGBW&^<z)Wv>+Sphz}^G@LFFFEeh_YKYy_9}
zdir|*LFpZo2c}M&`X3b5ZX6u{b!24zgX&9A+=B8Ss4cf;%a;GTx*Go_B_zRZI15la
z*wFC*jvYI|X#kwpeSN|0#S<q_{0CuB9@(>N&wo%Dg7P`2`~{^qkekIN#KB<)^XJW5
zH~)jwgX{!hP@X(;^vM53ix>T$Icp{y+u7TJ>naIR(f=jTz9z^#R#3Z=mEnH@3&VdW
zP~V1!2i&eWaNxlI3l}c@KYR8pxSpQSH{n01&unC91Rf^?g|DcXC|JzK*5-dQ8{2;a
z3CaIEw(kI^S5Ulx>SHqn`TuhY8UAx{u>My9)$!ci|9yOYz-=B-n1ae`P&sdEY6{Lz
zAU-Hxf$Rs-AT`^zZ~G6z{QUgjH1_@bcTg0A(+jBW2$~bvuyF&}UQoRXnk%su6aDWa
zE)K?CVxs?zI642T^Yi~_V`lyz$H4Gk3@IOoiZc8c7lHJ{L1hgnZGqAvD2zenac5^I
zxX#JT&HI1t^0ogUxApY)fct6A3=IF3n3(=AU|{%fkK}(){DahFGBW%>%g69vOi1W|
zOl-{mkdTo7%a$zz`xWFjkb9k+oxpt_Q2X`F=`$$h7)T8aySlpmudA*5|NHlEu>V1I
zEoe>%RDZzQ2%tJ!nThHDb_Rz3-`Uvy|72qW=WkHmmIKW{pf)q8?gzy`2&Zr|{1@kj
zv=Kn<R#3XTbLY<g+jnk*>*Cht*8iOyo#5~Vxdqh57UbvuKbx81|6eZl{|DI^{+~wk
zKgb=Ra=}Gd=>H2ANWUI5{s;;?P<;V12ZTX($;-)s`@X`0g8wr!Gyj9y??;aw1(zS7
z_9O^{+Mez0?cjU|O7kGMf%1@pgTw#A!ovTcHU=o|gZc%a@*Y%gb}}*j|G~uc{|y7A
z>;v^bL3IN9_`)&<hX2w?=^;BO8y-I(H-g%Gu<!-(+dJC-voJFLf5po1|F;15|G!)e
z|38ELFD~(a!}<;2wgbrjpfm|8!|NCr{-0-H_@Ak&`hU^9`Ts%X+n&99z~Q-e?b`n=
zj12!*#xVSEWM=p;%ES5J+}H@*h6dF&Fx=nQ{~uJ=fa+gRdjjOwj?ND7xGl)fAa{Yn
zwW7S@za<C9|2!t9|5KsmdNc#We+4A}f#Mt)gZdoF3=IE4eQc08Xsj5N-#}##$Xs+>
zTwMGg)E;qTWcYuVnd$#uCWili7#RM0u(14BmzDjmEGPFL6o#O*4T?)p9~I>P<DfAQ
zF|q%8y1M_DEnf!C)1bOslY!y?b18=Zhu9hZPta%hA1}o4UtU!7zow$%e<ejla9<MC
z?%A|y6S!>!YGb{6^$OfqW@BUf-`C#<HVfqDRjXJ1pD}aBe;Z}x|9uP$|0D7E8#E>g
z8Uy5j)(IeYfZPfiUjUUgsVS-8zV@`~)4*+EP&k0%4OFhFsi}d-B|!DZLI#HaHyIfI
zKY_L(Kw}wp931~$`1$|a^Yi~VW?%r<#h^L{)E2X6Wc;to$M+v(2R8@D{|E+#{~s6_
z{@bxK{GY1L@c*^|!~a*z4F4xHF#HFNxq#dVir2@F9{+#;;XN2Xc=+IdU0ofxJ;1}m
z12zj}9t>-+u>9{}VE7-1!~Y;NLFGAUEEF^*3gWXt+XtYrEzmdxC@p|6zX1RLipmOb
z9~abD*|mGu{~XX*7n0eD3=H7#28H<&28RFl85sWGVPN=wmVx2_BL;^5I~W-Lr!X-5
zKghuFe-U)NM;lrm-DY6;|BQhFTrPvgIp%@dEnE!$%~@H&b5Wo+KPdl$@*oU@`d)!S
zfnfiG>M#SSTVz1_kb&Vps0^rNVE7Np?;t;bFvyP}zk>V>@;j&w1LaTT@qbXc2+9Yb
zwgE^F41>m`Ko}J7{sI2~L3S&vK-yy<H86cV3=IF}K<OL_gW?x7u4e{qZ-L6<6%3GZ
zA5fUDWMKGzoq^#$DE$dS$3GXaF#MNcXa8?+Z~tFcPZvDakr1EoABIDML%?&BAiF_k
zI70oe%E0hH6lw;@O(1y?2Bme7zd?Ql`5EMQ(E19{TnK2+6cjF?FagPf)PnTj!k};f
zsR6aQ1%(9vgW4n@wV<#Djb(w@=onPzbVL0QYHNeqaxgWZcD4s}92_L3$iVP_KGZ)T
zJ|!6BPLQ8KegpXtdHx49|F?Yka-8#jAiad_28}U+$_r$5)(i~)L!jfCpt1mzk3nJ}
ze}USsgvKgC>2C@&@8VMn3V&%C>Hp&5;$RFKhk&^Ql-5E1hQ&FkOb7L|Ve@|=zk}vL
zVe`K;X3StHC@27rJ%Z*;VR}Jxsi1HGnFlkQ5DiKPT+sLfm0zH?7AS3l#?1-og~@~T
zf$DJ3SUGZ8q>EHffy#c+co?Ys1C1?!!UE)0kegxt2Kfclj{x}%HvbFqGsy3twPc{V
z@Ru)Ng4arb){nsE|3Up8(D)^6P8~#p(htadQo;h}A983=SyIKo0B*0t^n>bZP=1H;
zL2d!L3FJ1A8$t7XAism$4x9f6`3dAV&>9EOS_hDyL4F6V0|BiE0j-Gut&M=K{{X2)
zUjG3qgLHIsz-t0P=7a13g)zuZkli3Rz}!P?8e|v9PLSQ8GzxMH$W0(N$c-Sk!q$I)
z`~X_h0b0|7y#52^XOQ2KF=$N)C>%g*WkBI@<;oTC`k%#%7h_%j1F{!nC#YNjv0>o>
zau>*bAa}wrIbj0R3o;9YLFR(&0NDky6J$4tjcff6Xq_C$4<NsQ`~>nF$dAZ=2CV@D
zVPr9o8j#vAU%r6X`GM9_oj!e<0hA`Nt^WdzvxD*&Xl)kAO&|=450D!{=@8^b5DjuW
zNDkx=Y#1a5QUg*8(*rUCWEMycgh6(I>;lzYp!Hv%HE5vzA81V)$Za4uqObn~`32-B
zWIuw~Ab+D{kT?v3(g-MzeE<HP0Th0qd;=;s&YU>|Uemd9<w}C<|3G;V6hEN(cF@{B
zkiU@q1M(9HgTz2`AT=PhAUz<xpgDR+M@R6QLQtO;)Yn5^{|9mdX#F3^O(3^{+z49#
z2XZsW?I1tE`~#!W{fvzdQwyR&W`M#Ev|b2gE+{NOYwJL3FF|WCLE#NbYoN86pmimn
zwVJ)Xz3}y)pmG<qrW53L&>BxroPqKuzV)9VJ)kisQ2PXA7RXFe*MEZCj*PMSlNd2%
zGhkr>3R_UR0+pkn@BppJ1+BdVt<eRo)rGD9J#^?0185!I_U+qATK@~u1JVmxLkuzt
zWG2XLkR2eqKz4%c2Dt&`7Et_v+=lE{5StkPk*Wq{E)0Y01lbL811Nof+yh#B3R-sw
zawBLBH^{x9^a845LFp6Z2lO@IATf{}NDW9WNDoLa$PAEKATvQ`gX{p=1+o)lH_RO{
znpD3~Lp{uH7!7h42!q@R!yq@4ieY*|W`Quwd}Nv$?jJRS^gS=5VKy3OqiJ9?4UDFN
zA)f}o^C&bR7(fRL{0GghGXMV%8XRX}u>b%60q7tC_Wz(kOHiNi4~WaaVE+L^^B;iF
p%%F1%z(*HA_(PtA`3L4dn15mZhlK|`e83X+|KZ^W3Nac)5&*(z#ZdqN

diff --git a/ciolib/utf8_codepages.c b/ciolib/utf8_codepages.c
deleted file mode 100644
index b3a9005..0000000
--- a/ciolib/utf8_codepages.c
+++ /dev/null
@@ -1,1929 +0,0 @@
-#include <inttypes.h>
-#include <stdlib.h>
-#include "utf8_codepages.h"
-
-struct ciolib_cpmap {
-	uint32_t	unicode;
-	uint8_t		cpchar;
-};
-
-// Sorted by unicode codepoint...
-const static struct ciolib_cpmap cp437_table[162] = {
-	{0x0000, 0},   {0x00A0, 255}, {0x00A1, 173}, {0x00A2, 155},
-	{0x00A3, 156}, {0x00A5, 157}, {0x00A6, 124}, {0x00A7, 21},  {0x00AA, 166},
-	{0x00AB, 174}, {0x00AC, 170}, {0x00B0, 248}, {0x00B1, 241},
-	{0x00B2, 253}, {0x00B5, 230}, {0x00B6, 20},  {0x00B7, 250},
-	{0x00BA, 167}, {0x00BB, 175}, {0x00BC, 172}, {0x00BD, 171},
-	{0x00BF, 168}, {0x00C4, 142}, {0x00C5, 143}, {0x00C6, 146},
-	{0x00C7, 128}, {0x00C9, 144}, {0x00D1, 165}, {0x00D6, 153},
-	{0x00DC, 154}, {0x00DF, 225}, {0x00E0, 133}, {0x00E1, 160},
-	{0x00E2, 131}, {0x00E4, 132}, {0x00E5, 134}, {0x00E6, 145},
-	{0x00E7, 135}, {0x00E8, 138}, {0x00E9, 130}, {0x00EA, 136},
-	{0x00EB, 137}, {0x00EC, 141}, {0x00ED, 161}, {0x00EE, 140}, 
-	{0x00EF, 139}, {0x00F1, 164}, {0x00F2, 149}, {0x00F3, 162},
-	{0x00F4, 147}, {0x00F6, 148}, {0x00F7, 246}, {0x00F9, 151},
-	{0x00FA, 163}, {0x00FB, 150}, {0x00FC, 129}, {0x00FF, 152},
-	{0x0192, 159}, {0x0393, 226}, {0x0398, 233}, {0x03A3, 228},
-	{0x03A6, 232}, {0x03A9, 234}, {0x03B1, 224}, {0x03B4, 235},
-	{0x03B5, 238}, {0x03C0, 227}, {0x03C3, 229}, {0x03C4, 231},
-	{0x03C6, 237}, {0x2022, 7},   {0x203C, 19},  {0x207F, 252},
-	{0x20A7, 158}, {0x2190, 27},  {0x2191, 24},  {0x2192, 26},
-	{0x2193, 25},  {0x2194, 29},  {0x2195, 18},  {0x21A8, 23},
-	{0x2219, 249}, {0x221A, 251}, {0x221E, 236}, {0x221F, 28},
-	{0x2229, 239}, {0x2248, 247}, {0x2261, 240}, {0x2264, 243},
-	{0x2265, 242}, {0x2310, 169}, {0x2320, 244}, {0x2321, 245},
-	{0x2500, 196}, {0x2502, 179}, {0x250C, 218}, {0x2510, 191},
-	{0x2514, 192}, {0x2518, 217}, {0x251C, 195}, {0x2524, 180},
-	{0x252C, 194}, {0x2534, 193}, {0x253C, 197}, {0x2550, 205},
-	{0x2551, 186}, {0x2552, 213}, {0x2553, 214}, {0x2554, 201},
-	{0x2555, 184}, {0x2556, 183}, {0x2557, 187}, {0x2558, 212},
-	{0x2559, 211}, {0x255A, 200}, {0x255B, 190}, {0x255C, 189},
-	{0x255D, 188}, {0x255E, 198}, {0x255F, 199}, {0x2560, 204},
-	{0x2561, 181}, {0x2562, 182}, {0x2563, 185}, {0x2564, 209},
-	{0x2565, 210}, {0x2566, 203}, {0x2567, 207}, {0x2568, 208},
-	{0x2569, 202}, {0x256A, 216}, {0x256B, 215}, {0x256C, 206},
-	{0x2580, 223}, {0x2584, 220}, {0x2588, 219}, {0x258C, 221},
-	{0x2590, 222}, {0x2591, 176}, {0x2592, 177}, {0x2593, 178},
-	{0x25A0, 254}, {0x25AC, 22},  {0x25B2, 30},  {0x25BA, 16},
-	{0x25BC, 31},  {0x25C4, 17},  {0x25CB, 9},   {0x25D8, 8},
-	{0x25D9, 10},  {0x263A, 1},   {0x263B, 2},   {0x263C, 15},
-	{0x2640, 12},  {0x2642, 11},  {0x2660, 6},   {0x2663, 5}, 
-	{0x2665, 3},   {0x2666, 4},   {0x266A, 13},  {0x266B, 14},
-	{0xfffd, '?'}
-};
-
-const static uint32_t cp437_ext_table[32] = {
-	0x0000, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022,
-	0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C,
-	0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8,
-	0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC
-};
-
-const static uint32_t cp437_unicode_table[128] = {
-	0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 
-	0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, 
-	0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 
-	0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 
-	0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 
-	0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, 
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, 
-	0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 
-	0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, 
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 
-	0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, 
-	0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 
-	0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 
-	0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 
-	0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
-};
-
-const static struct ciolib_cpmap cp1251_table[156] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
-	{0x00ae, 174}, {0x00b0, 176}, {0x00b1, 177}, {0x00b5, 181},
-	{0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187}, {0x0401, 168},
-	{0x0402, 128}, {0x0403, 129}, {0x0404, 170}, {0x0405, 189},
-	{0x0406, 178}, {0x0407, 175}, {0x0408, 163}, {0x0409, 138},
-	{0x040a, 140}, {0x040b, 142}, {0x040c, 141}, {0x040e, 161},
-	{0x040f, 143}, {0x0410, 192}, {0x0411, 193}, {0x0412, 194},
-	{0x0413, 195}, {0x0414, 196}, {0x0415, 197}, {0x0416, 198},
-	{0x0417, 199}, {0x0418, 200}, {0x0419, 201}, {0x041a, 202},
-	{0x041b, 203}, {0x041c, 204}, {0x041d, 205}, {0x041e, 206},
-	{0x041f, 207}, {0x0420, 208}, {0x0421, 209}, {0x0422, 210},
-	{0x0423, 211}, {0x0424, 212}, {0x0425, 213}, {0x0426, 214},
-	{0x0427, 215}, {0x0428, 216}, {0x0429, 217}, {0x042a, 218},
-	{0x042b, 219}, {0x042c, 220}, {0x042d, 221}, {0x042e, 222},
-	{0x042f, 223}, {0x0430, 224}, {0x0431, 225}, {0x0432, 226},
-	{0x0433, 227}, {0x0434, 228}, {0x0435, 229}, {0x0436, 230},
-	{0x0437, 231}, {0x0438, 232}, {0x0439, 233}, {0x043a, 234},
-	{0x043b, 235}, {0x043c, 236}, {0x043d, 237}, {0x043e, 238},
-	{0x043f, 239}, {0x0440, 240}, {0x0441, 241}, {0x0442, 242},
-	{0x0443, 243}, {0x0444, 244}, {0x0445, 245}, {0x0446, 246},
-	{0x0447, 247}, {0x0448, 248}, {0x0449, 249}, {0x044a, 250},
-	{0x044b, 251}, {0x044c, 252}, {0x044d, 253}, {0x044e, 254},
-	{0x044f, 255}, {0x0451, 184}, {0x0452, 144}, {0x0453, 131},
-	{0x0454, 186}, {0x0455, 190}, {0x0456, 179}, {0x0457, 191},
-	{0x0458, 188}, {0x0459, 154}, {0x045a, 156}, {0x045b, 158},
-	{0x045c, 157}, {0x045e, 162}, {0x045f, 159}, {0x0490, 165},
-	{0x0491, 180}, {0x2013, 150}, {0x2014, 151}, {0x2018, 145},
-	{0x2019, 146}, {0x201a, 130}, {0x201c, 147}, {0x201d, 148},
-	{0x201e, 132}, {0x2020, 134}, {0x2021, 135}, {0x2022, 7},
-	{0x2026, 133}, {0x2030, 137}, {0x2039, 139}, {0x203a, 155},
-	{0x203c, 19}, {0x20ac, 136}, {0x2116, 185}, {0x2122, 153},
-	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
-	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
-	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
-	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
-	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
-	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
-	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t cp1251_unicode_table[128] = {
-	0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
-	0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
-	0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
-	0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
-	0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
-	0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
-	0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
-	0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f
-};
-
-const static struct ciolib_cpmap koi8_r_table[160] = {
-	{0x00a0, 154}, {0x00a7,  21}, {0x00a9, 191}, {0x00b0, 156},
-	{0x00b2, 157}, {0x00b6,  20}, {0x00b7, 158}, {0x00f7, 159},
-	{0x0401, 179}, {0x0410, 225}, {0x0411, 226}, {0x0412, 247},
-	{0x0413, 231}, {0x0414, 228}, {0x0415, 229}, {0x0416, 246},
-	{0x0417, 250}, {0x0418, 233}, {0x0419, 234}, {0x041a, 235},
-	{0x041b, 236}, {0x041c, 237}, {0x041d, 238}, {0x041e, 239},
-	{0x041f, 240}, {0x0420, 242}, {0x0421, 243}, {0x0422, 244},
-	{0x0423, 245}, {0x0424, 230}, {0x0425, 232}, {0x0426, 227},
-	{0x0427, 254}, {0x0428, 251}, {0x0429, 253}, {0x042a, 255},
-	{0x042b, 249}, {0x042c, 248}, {0x042d, 252}, {0x042e, 224},
-	{0x042f, 241}, {0x0430, 193}, {0x0431, 194}, {0x0432, 215},
-	{0x0433, 199}, {0x0434, 196}, {0x0435, 197}, {0x0436, 214},
-	{0x0437, 218}, {0x0438, 201}, {0x0439, 202}, {0x043a, 203},
-	{0x043b, 204}, {0x043c, 205}, {0x043d, 206}, {0x043e, 207},
-	{0x043f, 208}, {0x0440, 210}, {0x0441, 211}, {0x0442, 212},
-	{0x0443, 213}, {0x0444, 198}, {0x0445, 200}, {0x0446, 195},
-	{0x0447, 222}, {0x0448, 219}, {0x0449, 221}, {0x044a, 223},
-	{0x044b, 217}, {0x044c, 216}, {0x044d, 220}, {0x044e, 192},
-	{0x044f, 209}, {0x0451, 163}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 149},
-	{0x221a, 150}, {0x221f,  28}, {0x2248, 151}, {0x2264, 152},
-	{0x2265, 153}, {0x2320, 147}, {0x2321, 155}, {0x2500, 128},
-	{0x2502, 129}, {0x250c, 130}, {0x2510, 131}, {0x2514, 132},
-	{0x2518, 133}, {0x251c, 134}, {0x2524, 135}, {0x252c, 136},
-	{0x2534, 137}, {0x253c, 138}, {0x2550, 160}, {0x2551, 161},
-	{0x2552, 162}, {0x2553, 164}, {0x2554, 165}, {0x2555, 166},
-	{0x2556, 167}, {0x2557, 168}, {0x2558, 169}, {0x2559, 170},
-	{0x255a, 171}, {0x255b, 172}, {0x255c, 173}, {0x255d, 174},
-	{0x255e, 175}, {0x255f, 176}, {0x2560, 177}, {0x2561, 178},
-	{0x2562, 180}, {0x2563, 181}, {0x2564, 182}, {0x2565, 183},
-	{0x2566, 184}, {0x2567, 185}, {0x2568, 186}, {0x2569, 187},
-	{0x256a, 188}, {0x256b, 189}, {0x256c, 190}, {0x2580, 139},
-	{0x2584, 140}, {0x2588, 141}, {0x258c, 142}, {0x2590, 143},
-	{0x2591, 144}, {0x2592, 145}, {0x2593, 146}, {0x25a0, 148},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t koi8_r_unicode_table[128] = {
-	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
-	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
-	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
-	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
-	0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
-	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
-	0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
-	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
-	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
-	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
-	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
-};
-
-const static uint32_t empty_ext_table[32] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
-};
-
-const static struct ciolib_cpmap iso8859_2_table[127] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00ad, 173}, {0x00b0, 176}, {0x00b4, 180}, {0x00b6, 20},
-	{0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194}, {0x00c4, 196},
-	{0x00c7, 199}, {0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00d3, 211}, {0x00d4, 212}, {0x00d6, 214},
-	{0x00d7, 215}, {0x00da, 218}, {0x00dc, 220}, {0x00dd, 221},
-	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e4, 228},
-	{0x00e7, 231}, {0x00e9, 233}, {0x00eb, 235}, {0x00ed, 237},
-	{0x00ee, 238}, {0x00f3, 243}, {0x00f4, 244}, {0x00f6, 246},
-	{0x00f7, 247}, {0x00fa, 250}, {0x00fc, 252}, {0x00fd, 253},
-	{0x0102, 195}, {0x0103, 227}, {0x0104, 161}, {0x0105, 177},
-	{0x0106, 198}, {0x0107, 230}, {0x010c, 200}, {0x010d, 232},
-	{0x010e, 207}, {0x010f, 239}, {0x0110, 208}, {0x0111, 240},
-	{0x0118, 202}, {0x0119, 234}, {0x011a, 204}, {0x011b, 236},
-	{0x0139, 197}, {0x013a, 229}, {0x013d, 165}, {0x013e, 181},
-	{0x0141, 163}, {0x0142, 179}, {0x0143, 209}, {0x0144, 241},
-	{0x0147, 210}, {0x0148, 242}, {0x0150, 213}, {0x0151, 245},
-	{0x0154, 192}, {0x0155, 224}, {0x0158, 216}, {0x0159, 248},
-	{0x015a, 166}, {0x015b, 182}, {0x015e, 170}, {0x015f, 186},
-	{0x0160, 169}, {0x0161, 185}, {0x0162, 222}, {0x0163, 254},
-	{0x0164, 171}, {0x0165, 187}, {0x016e, 217}, {0x016f, 249},
-	{0x0170, 219}, {0x0171, 251}, {0x0179, 172}, {0x017a, 188},
-	{0x017b, 175}, {0x017c, 191}, {0x017d, 174}, {0x017e, 190},
-	{0x02c7, 183}, {0x02d8, 162}, {0x02d9, 255}, {0x02db, 178},
-	{0x02dd, 189}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_2_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,
-	0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,
-	0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,
-	0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,
-	0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
-	0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
-	0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
-	0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
-	0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
-	0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9
-};
-
-const static struct ciolib_cpmap iso8859_4_table[127] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00ad, 173}, {0x00af, 175}, {0x00b0, 176}, {0x00b4, 180},
-	{0x00b6, 20}, {0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194},
-	{0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198},
-	{0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205}, {0x00ce, 206},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
-	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e9, 233},
-	{0x00eb, 235}, {0x00ed, 237}, {0x00ee, 238}, {0x00f4, 244},
-	{0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248},
-	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x0100, 192},
-	{0x0101, 224}, {0x0104, 161}, {0x0105, 177}, {0x010c, 200},
-	{0x010d, 232}, {0x0110, 208}, {0x0111, 240}, {0x0112, 170},
-	{0x0113, 186}, {0x0116, 204}, {0x0117, 236}, {0x0118, 202},
-	{0x0119, 234}, {0x0122, 171}, {0x0123, 187}, {0x0128, 165},
-	{0x0129, 181}, {0x012a, 207}, {0x012b, 239}, {0x012e, 199},
-	{0x012f, 231}, {0x0136, 211}, {0x0137, 243}, {0x0138, 162},
-	{0x013b, 166}, {0x013c, 182}, {0x0145, 209}, {0x0146, 241},
-	{0x014a, 189}, {0x014b, 191}, {0x014c, 210}, {0x014d, 242},
-	{0x0156, 163}, {0x0157, 179}, {0x0160, 169}, {0x0161, 185},
-	{0x0166, 172}, {0x0167, 188}, {0x0168, 221}, {0x0169, 253},
-	{0x016a, 222}, {0x016b, 254}, {0x0172, 217}, {0x0173, 249},
-	{0x017d, 174}, {0x017e, 190}, {0x02c7, 183}, {0x02d9, 255},
-	{0x02db, 178}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_4_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,
-	0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,
-	0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,
-	0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,
-	0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,
-	0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,
-	0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,
-	0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9
-};
-
-#if 0
-const static struct ciolib_cpmap cp866_table[160] = {
-	{0x00a0, 255}, {0x00a4, 253}, {0x00a7,  21}, {0x00b0, 248},
-	{0x00b6,  20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 242},
-	{0x0407, 244}, {0x040e, 246}, {0x0410, 128}, {0x0411, 129},
-	{0x0412, 130}, {0x0413, 131}, {0x0414, 132}, {0x0415, 133},
-	{0x0416, 134}, {0x0417, 135}, {0x0418, 136}, {0x0419, 137},
-	{0x041a, 138}, {0x041b, 139}, {0x041c, 140}, {0x041d, 141},
-	{0x041e, 142}, {0x041f, 143}, {0x0420, 144}, {0x0421, 145},
-	{0x0422, 146}, {0x0423, 147}, {0x0424, 148}, {0x0425, 149},
-	{0x0426, 150}, {0x0427, 151}, {0x0428, 152}, {0x0429, 153},
-	{0x042a, 154}, {0x042b, 155}, {0x042c, 156}, {0x042d, 157},
-	{0x042e, 158}, {0x042f, 159}, {0x0430, 160}, {0x0431, 161},
-	{0x0432, 162}, {0x0433, 163}, {0x0434, 164}, {0x0435, 165},
-	{0x0436, 166}, {0x0437, 167}, {0x0438, 168}, {0x0439, 169},
-	{0x043a, 170}, {0x043b, 171}, {0x043c, 172}, {0x043d, 173},
-	{0x043e, 174}, {0x043f, 175}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0454, 243},
-	{0x0457, 245}, {0x045e, 247}, {0x2022,   7}, {0x203c,  19},
-	{0x2116, 252}, {0x2190,  27}, {0x2191,  24}, {0x2192,  26},
-	{0x2193,  25}, {0x2194,  29}, {0x2195,  18}, {0x21a8,  23},
-	{0x2219, 249}, {0x221a, 251}, {0x221f,  28}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
-};
-#endif
-
-const static struct ciolib_cpmap cp866m_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00b0, 248}, {0x00B2, 253},
-	{0x00b6,  20}, {0x00b7, 250}, {0x00F7, 246}, {0x0401, 240},
-	{0x0410, 128}, {0x0411, 129}, {0x0412, 130}, {0x0413, 131},
-	{0x0414, 132}, {0x0415, 133}, {0x0416, 134}, {0x0417, 135},
-	{0x0418, 136}, {0x0419, 137}, {0x041a, 138}, {0x041b, 139},
-	{0x041c, 140}, {0x041d, 141}, {0x041e, 142}, {0x041f, 143},
-	{0x0420, 144}, {0x0421, 145}, {0x0422, 146}, {0x0423, 147},
-	{0x0424, 148}, {0x0425, 149}, {0x0426, 150}, {0x0427, 151},
-	{0x0428, 152}, {0x0429, 153}, {0x042a, 154}, {0x042b, 155},
-	{0x042c, 156}, {0x042d, 157}, {0x042e, 158}, {0x042f, 159},
-	{0x0430, 160}, {0x0431, 161}, {0x0432, 162}, {0x0433, 163},
-	{0x0434, 164}, {0x0435, 165}, {0x0436, 166}, {0x0437, 167},
-	{0x0438, 168}, {0x0439, 169}, {0x043a, 170}, {0x043b, 171},
-	{0x043c, 172}, {0x043d, 173}, {0x043e, 174}, {0x043f, 175},
-	{0x0440, 224}, {0x0441, 225}, {0x0442, 226}, {0x0443, 227},
-	{0x0444, 228}, {0x0445, 229}, {0x0446, 230}, {0x0447, 231},
-	{0x0448, 232}, {0x0449, 233}, {0x044a, 234}, {0x044b, 235},
-	{0x044c, 236}, {0x044d, 237}, {0x044e, 238}, {0x044f, 239},
-	{0x0451, 241}, {0x045F, 252}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221f,  28}, {0x2264, 243}, {0x2265, 242},
-	{0x2320, 244}, {0x2321, 245}, {0x2248, 247}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866m_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x045F, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap iso8859_9_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
-	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
-	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
-	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
-	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
-	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212},
-	{0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216},
-	{0x00d9, 217}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
-	{0x00df, 223}, {0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226},
-	{0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230},
-	{0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234},
-	{0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238},
-	{0x00ef, 239}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00ff, 255}, {0x011e, 208}, {0x011f, 240},
-	{0x0130, 221}, {0x0131, 253}, {0x015e, 222}, {0x015f, 254},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_9_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
-};
-
-const static struct ciolib_cpmap iso8859_8_table[90] = {
-	{0x00a0, 160}, {0x00a2, 162}, {0x00a3, 163}, {0x00a4, 164},
-	{0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
-	{0x00ae, 174}, {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177},
-	{0x00b2, 178}, {0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181},
-	{0x00b6, 182}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185},
-	{0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189}, {0x00be, 190},
-	{0x00d7, 170}, {0x00f7, 186}, {0x05d0, 224}, {0x05d1, 225},
-	{0x05d2, 226}, {0x05d3, 227}, {0x05d4, 228}, {0x05d5, 229},
-	{0x05d6, 230}, {0x05d7, 231}, {0x05d8, 232}, {0x05d9, 233},
-	{0x05da, 234}, {0x05db, 235}, {0x05dc, 236}, {0x05dd, 237},
-	{0x05de, 238}, {0x05df, 239}, {0x05e0, 240}, {0x05e1, 241},
-	{0x05e2, 242}, {0x05e3, 243}, {0x05e4, 244}, {0x05e5, 245},
-	{0x05e6, 246}, {0x05e7, 247}, {0x05e8, 248}, {0x05e9, 249},
-	{0x05ea, 250}, {0x200e, 253}, {0x200f, 254}, {0x2017, 223},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_8_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017,
-	0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
-	0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
-	0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
-	0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd
-};
-
-const static struct ciolib_cpmap koi8_u_table[160] = {
-	{0x00a0, 154}, {0x00a7,  21}, {0x00a9, 191}, {0x00b0, 156},
-	{0x00b2, 157}, {0x00b6,  20}, {0x00b7, 158}, {0x00f7, 159},
-	{0x0401, 179}, {0x0404, 180}, {0x0406, 182}, {0x0407, 183},
-	{0x0410, 225}, {0x0411, 226}, {0x0412, 247}, {0x0413, 231},
-	{0x0414, 228}, {0x0415, 229}, {0x0416, 246}, {0x0417, 250},
-	{0x0418, 233}, {0x0419, 234}, {0x041a, 235}, {0x041b, 236},
-	{0x041c, 237}, {0x041d, 238}, {0x041e, 239}, {0x041f, 240},
-	{0x0420, 242}, {0x0421, 243}, {0x0422, 244}, {0x0423, 245},
-	{0x0424, 230}, {0x0425, 232}, {0x0426, 227}, {0x0427, 254},
-	{0x0428, 251}, {0x0429, 253}, {0x042a, 255}, {0x042b, 249},
-	{0x042c, 248}, {0x042d, 252}, {0x042e, 224}, {0x042f, 241},
-	{0x0430, 193}, {0x0431, 194}, {0x0432, 215}, {0x0433, 199},
-	{0x0434, 196}, {0x0435, 197}, {0x0436, 214}, {0x0437, 218},
-	{0x0438, 201}, {0x0439, 202}, {0x043a, 203}, {0x043b, 204},
-	{0x043c, 205}, {0x043d, 206}, {0x043e, 207}, {0x043f, 208},
-	{0x0440, 210}, {0x0441, 211}, {0x0442, 212}, {0x0443, 213},
-	{0x0444, 198}, {0x0445, 200}, {0x0446, 195}, {0x0447, 222},
-	{0x0448, 219}, {0x0449, 221}, {0x044a, 223}, {0x044b, 217},
-	{0x044c, 216}, {0x044d, 220}, {0x044e, 192}, {0x044f, 209},
-	{0x0451, 163}, {0x0454, 164}, {0x0456, 166}, {0x0457, 167},
-	{0x0490, 189}, {0x0491, 173}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 149},
-	{0x221a, 150}, {0x221f,  28}, {0x2248, 151}, {0x2264, 152},
-	{0x2265, 153}, {0x2320, 147}, {0x2321, 155}, {0x2500, 128},
-	{0x2502, 129}, {0x250c, 130}, {0x2510, 131}, {0x2514, 132},
-	{0x2518, 133}, {0x251c, 134}, {0x2524, 135}, {0x252c, 136},
-	{0x2534, 137}, {0x253c, 138}, {0x2550, 160}, {0x2551, 161},
-	{0x2552, 162}, {0x2554, 165}, {0x2557, 168}, {0x2558, 169},
-	{0x2559, 170}, {0x255a, 171}, {0x255b, 172}, {0x255d, 174},
-	{0x255e, 175}, {0x255f, 176}, {0x2560, 177}, {0x2561, 178},
-	{0x2563, 181}, {0x2566, 184}, {0x2567, 185}, {0x2568, 186},
-	{0x2569, 187}, {0x256a, 188}, {0x256c, 190}, {0x2580, 139},
-	{0x2584, 140}, {0x2588, 141}, {0x258c, 142}, {0x2590, 143},
-	{0x2591, 144}, {0x2592, 145}, {0x2593, 146}, {0x25a0, 148},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t koi8_u_unicode_table[128] = {
-	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
-	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
-	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
-	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
-	0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
-	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
-	0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
-	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
-	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
-	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
-	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
-};
-
-const static struct ciolib_cpmap iso8859_15_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a5, 165}, {0x00a7, 167}, {0x00a9, 169}, {0x00aa, 170},
-	{0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174},
-	{0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b5, 181}, {0x00b6, 20}, {0x00b7, 183},
-	{0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
-	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
-	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
-	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
-	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
-	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
-	{0x0152, 188}, {0x0153, 189}, {0x0160, 166}, {0x0161, 168},
-	{0x0178, 190}, {0x017d, 180}, {0x017e, 184}, {0x2022, 7},
-	{0x203c, 19}, {0x20ac, 164}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_15_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7,
-	0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,
-	0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
-};
-
-const static struct ciolib_cpmap iso8859_5_table[127] = {
-	{0x00a0, 160}, {0x00a7, 21}, {0x00ad, 173}, {0x00b6, 20},
-	{0x0401, 161}, {0x0402, 162}, {0x0403, 163}, {0x0404, 164},
-	{0x0405, 165}, {0x0406, 166}, {0x0407, 167}, {0x0408, 168},
-	{0x0409, 169}, {0x040a, 170}, {0x040b, 171}, {0x040c, 172},
-	{0x040e, 174}, {0x040f, 175}, {0x0410, 176}, {0x0411, 177},
-	{0x0412, 178}, {0x0413, 179}, {0x0414, 180}, {0x0415, 181},
-	{0x0416, 182}, {0x0417, 183}, {0x0418, 184}, {0x0419, 185},
-	{0x041a, 186}, {0x041b, 187}, {0x041c, 188}, {0x041d, 189},
-	{0x041e, 190}, {0x041f, 191}, {0x0420, 192}, {0x0421, 193},
-	{0x0422, 194}, {0x0423, 195}, {0x0424, 196}, {0x0425, 197},
-	{0x0426, 198}, {0x0427, 199}, {0x0428, 200}, {0x0429, 201},
-	{0x042a, 202}, {0x042b, 203}, {0x042c, 204}, {0x042d, 205},
-	{0x042e, 206}, {0x042f, 207}, {0x0430, 208}, {0x0431, 209},
-	{0x0432, 210}, {0x0433, 211}, {0x0434, 212}, {0x0435, 213},
-	{0x0436, 214}, {0x0437, 215}, {0x0438, 216}, {0x0439, 217},
-	{0x043a, 218}, {0x043b, 219}, {0x043c, 220}, {0x043d, 221},
-	{0x043e, 222}, {0x043f, 223}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0452, 242},
-	{0x0453, 243}, {0x0454, 244}, {0x0455, 245}, {0x0456, 246},
-	{0x0457, 247}, {0x0458, 248}, {0x0459, 249}, {0x045a, 250},
-	{0x045b, 251}, {0x045c, 252}, {0x045e, 254}, {0x045f, 255},
-	{0x2022, 7}, {0x203c, 19}, {0x2116, 240}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_5_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
-	0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
-	0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f
-};
-
-const static struct ciolib_cpmap cp850_table[158] = {
-	{0x00a0, 255}, {0x00a1, 173}, {0x00a2, 189}, {0x00a3, 156},
-	{0x00a4, 207}, {0x00a5, 190}, {0x00a6, 221}, {0x00a7, 21},
-	{0x00a8, 249}, {0x00a9, 184}, {0x00aa, 166}, {0x00ab, 174},
-	{0x00ac, 170}, {0x00ad, 240}, {0x00ae, 169}, {0x00af, 238},
-	{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b3, 252},
-	{0x00b4, 239}, {0x00b5, 230}, {0x00b6, 20}, {0x00b7, 250},
-	{0x00b8, 247}, {0x00b9, 251}, {0x00ba, 167}, {0x00bb, 175},
-	{0x00bc, 172}, {0x00bd, 171}, {0x00be, 243}, {0x00bf, 168},
-	{0x00c0, 183}, {0x00c1, 181}, {0x00c2, 182}, {0x00c3, 199},
-	{0x00c4, 142}, {0x00c5, 143}, {0x00c6, 146}, {0x00c7, 128},
-	{0x00c8, 212}, {0x00c9, 144}, {0x00ca, 210}, {0x00cb, 211},
-	{0x00cc, 222}, {0x00cd, 214}, {0x00ce, 215}, {0x00cf, 216},
-	{0x00d0, 209}, {0x00d1, 165}, {0x00d2, 227}, {0x00d3, 224},
-	{0x00d4, 226}, {0x00d5, 229}, {0x00d6, 153}, {0x00d7, 158},
-	{0x00d8, 157}, {0x00d9, 235}, {0x00da, 233}, {0x00db, 234},
-	{0x00dc, 154}, {0x00dd, 237}, {0x00de, 232}, {0x00df, 225},
-	{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e3, 198},
-	{0x00e4, 132}, {0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135},
-	{0x00e8, 138}, {0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137},
-	{0x00ec, 141}, {0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139},
-	{0x00f0, 208}, {0x00f1, 164}, {0x00f2, 149}, {0x00f3, 162},
-	{0x00f4, 147}, {0x00f5, 228}, {0x00f6, 148}, {0x00f7, 246},
-	{0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163}, {0x00fb, 150},
-	{0x00fc, 129}, {0x00fd, 236}, {0x00fe, 231}, {0x00ff, 152},
-	{0x0131, 213}, {0x0192, 159}, {0x2017, 242}, {0x2022, 7},
-	{0x203c, 19}, {0x2190, 27}, {0x2191, 24}, {0x2192, 26},
-	{0x2193, 25}, {0x2194, 29}, {0x2195, 18}, {0x21a8, 23},
-	{0x221f, 28}, {0x2500, 196}, {0x2502, 179}, {0x250c, 218},
-	{0x2510, 191}, {0x2514, 192}, {0x2518, 217}, {0x251c, 195},
-	{0x2524, 180}, {0x252c, 194}, {0x2534, 193}, {0x253c, 197},
-	{0x2550, 205}, {0x2551, 186}, {0x2554, 201}, {0x2557, 187},
-	{0x255a, 200}, {0x255d, 188}, {0x2560, 204}, {0x2563, 185},
-	{0x2566, 203}, {0x2569, 202}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x2591, 176}, {0x2592, 177},
-	{0x2593, 178}, {0x25a0, 254}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t cp850_unicode_table[128] = {
-	0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
-	0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
-	0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
-	0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
-	0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
-	0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
-	0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
-	0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
-	0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
-	0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
-	0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
-	0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
-	0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp865_table[160] = {
-	{0x00a0, 255}, {0x00a1, 173}, {0x00a3, 156}, {0x00a4, 175},
-	{0x00a7,  21}, {0x00aa, 166}, {0x00ab, 174}, {0x00ac, 170},
-	{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b5, 230},
-	{0x00b6,  20}, {0x00b7, 250}, {0x00ba, 167}, {0x00bc, 172},
-	{0x00bd, 171}, {0x00bf, 168}, {0x00c4, 142}, {0x00c5, 143},
-	{0x00c6, 146}, {0x00c7, 128}, {0x00c9, 144}, {0x00d1, 165},
-	{0x00d6, 153}, {0x00d8, 157}, {0x00dc, 154}, {0x00df, 225},
-	{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e4, 132},
-	{0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135}, {0x00e8, 138},
-	{0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137}, {0x00ec, 141},
-	{0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139}, {0x00f1, 164},
-	{0x00f2, 149}, {0x00f3, 162}, {0x00f4, 147}, {0x00f6, 148},
-	{0x00f7, 246}, {0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163},
-	{0x00fb, 150}, {0x00fc, 129}, {0x00ff, 152}, {0x0192, 159},
-	{0x0393, 226}, {0x0398, 233}, {0x03a3, 228}, {0x03a6, 232},
-	{0x03a9, 234}, {0x03b1, 224}, {0x03b4, 235}, {0x03b5, 238},
-	{0x03c0, 227}, {0x03c3, 229}, {0x03c4, 231}, {0x03c6, 237},
-	{0x2022,   7}, {0x203c,  19}, {0x207f, 252}, {0x20a7, 158},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221e, 236}, {0x221f,  28}, {0x2229, 239},
-	{0x2248, 247}, {0x2261, 240}, {0x2264, 243}, {0x2265, 242},
-	{0x2310, 169}, {0x2320, 244}, {0x2321, 245}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp865_unicode_table[128] = {
-	0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
-	0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
-	0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
-	0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192,
-	0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
-	0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
-	0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
-	0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
-
-};
-
-const static struct ciolib_cpmap iso8859_7_table[124] = {
-	{0x00a0, 160}, {0x00a3, 163}, {0x00a6, 166}, {0x00a7, 21},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172},
-	{0x00ad, 173}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187},
-	{0x00bd, 189}, {0x037a, 170}, {0x0384, 180}, {0x0385, 181},
-	{0x0386, 182}, {0x0388, 184}, {0x0389, 185}, {0x038a, 186},
-	{0x038c, 188}, {0x038e, 190}, {0x038f, 191}, {0x0390, 192},
-	{0x0391, 193}, {0x0392, 194}, {0x0393, 195}, {0x0394, 196},
-	{0x0395, 197}, {0x0396, 198}, {0x0397, 199}, {0x0398, 200},
-	{0x0399, 201}, {0x039a, 202}, {0x039b, 203}, {0x039c, 204},
-	{0x039d, 205}, {0x039e, 206}, {0x039f, 207}, {0x03a0, 208},
-	{0x03a1, 209}, {0x03a3, 211}, {0x03a4, 212}, {0x03a5, 213},
-	{0x03a6, 214}, {0x03a7, 215}, {0x03a8, 216}, {0x03a9, 217},
-	{0x03aa, 218}, {0x03ab, 219}, {0x03ac, 220}, {0x03ad, 221},
-	{0x03ae, 222}, {0x03af, 223}, {0x03b0, 224}, {0x03b1, 225},
-	{0x03b2, 226}, {0x03b3, 227}, {0x03b4, 228}, {0x03b5, 229},
-	{0x03b6, 230}, {0x03b7, 231}, {0x03b8, 232}, {0x03b9, 233},
-	{0x03ba, 234}, {0x03bb, 235}, {0x03bc, 236}, {0x03bd, 237},
-	{0x03be, 238}, {0x03bf, 239}, {0x03c0, 240}, {0x03c1, 241},
-	{0x03c2, 242}, {0x03c3, 243}, {0x03c4, 244}, {0x03c5, 245},
-	{0x03c6, 246}, {0x03c7, 247}, {0x03c8, 248}, {0x03c9, 249},
-	{0x03ca, 250}, {0x03cb, 251}, {0x03cc, 252}, {0x03cd, 253},
-	{0x03ce, 254}, {0x2015, 175}, {0x2018, 161}, {0x2019, 162},
-	{0x2022, 7}, {0x203c, 19}, {0x20ac, 164}, {0x20af, 165},
-	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
-	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
-	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
-	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
-	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
-	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
-	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_7_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7,
-	0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,
-	0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
-	0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
-	0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
-	0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,
-	0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
-	0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
-	0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
-	0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd
-};
-
-const static struct ciolib_cpmap iso8859_1_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
-	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
-	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
-	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
-	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
-	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
-	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
-	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
-	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
-	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
-	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_1_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
-};
-
-const static struct ciolib_cpmap cp866m2_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00A9, 252}, {0x00b0, 248},
-	{0x00B2, 253}, {0x00b6,  20}, {0x00b7, 250}, {0x00F7, 246},
-	{0x0401, 240}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130},
-	{0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134},
-	{0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138},
-	{0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142},
-	{0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146},
-	{0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150},
-	{0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154},
-	{0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158},
-	{0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162},
-	{0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166},
-	{0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170},
-	{0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174},
-	{0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226},
-	{0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230},
-	{0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234},
-	{0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238},
-	{0x044f, 239}, {0x0451, 241}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221f,  28}, {0x2264, 243}, {0x2265, 242},
-	{0x2320, 244}, {0x2321, 245}, {0x2248, 247}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866m2_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp866u_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00A9, 252}, {0x00B2, 253},
-	{0x00b6,  20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 244},
-	{0x0406, 246}, {0x0407, 248}, {0x0410, 128}, {0x0411, 129},
-	{0x0412, 130}, {0x0413, 131}, {0x0414, 132}, {0x0415, 133},
-	{0x0416, 134}, {0x0417, 135}, {0x0418, 136}, {0x0419, 137},
-	{0x041a, 138}, {0x041b, 139}, {0x041c, 140}, {0x041d, 141},
-	{0x041e, 142}, {0x041f, 143}, {0x0420, 144}, {0x0421, 145},
-	{0x0422, 146}, {0x0423, 147}, {0x0424, 148}, {0x0425, 149},
-	{0x0426, 150}, {0x0427, 151}, {0x0428, 152}, {0x0429, 153},
-	{0x042a, 154}, {0x042b, 155}, {0x042c, 156}, {0x042d, 157},
-	{0x042e, 158}, {0x042f, 159}, {0x0430, 160}, {0x0431, 161},
-	{0x0432, 162}, {0x0433, 163}, {0x0434, 164}, {0x0435, 165},
-	{0x0436, 166}, {0x0437, 167}, {0x0438, 168}, {0x0439, 169},
-	{0x043a, 170}, {0x043b, 171}, {0x043c, 172}, {0x043d, 173},
-	{0x043e, 174}, {0x043f, 175}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0454, 245},
-	{0x0456, 247}, {0x0457, 249}, {0x0490, 242}, {0x0491, 243},
-	{0x2022,   7}, {0x203c,  19}, {0x2190,  27}, {0x2191,  24},
-	{0x2192,  26}, {0x2193,  25}, {0x2194,  29}, {0x2195,  18},
-	{0x21a8,  23}, {0x221a, 251}, {0x221f,  28}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866u_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456,
-	0x0407, 0x0457, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp1131_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00b6,  20}, {0x00b7, 250},
-	{0x0401, 240}, {0x0404, 242}, {0x0406, 248}, {0x0407, 244},
-	{0x040e, 246}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130},
-	{0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134},
-	{0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138},
-	{0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142},
-	{0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146},
-	{0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150},
-	{0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154},
-	{0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158},
-	{0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162},
-	{0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166},
-	{0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170},
-	{0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174},
-	{0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226},
-	{0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230},
-	{0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234},
-	{0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238},
-	{0x044f, 239}, {0x0451, 241}, {0x0454, 243}, {0x0456, 249},
-	{0x0457, 245}, {0x045e, 247}, {0x0490, 252}, {0x0491, 253},
-	{0x2022,   7}, {0x203c,  19}, {0x2190,  27}, {0x2191,  24},
-	{0x2192,  26}, {0x2193,  25}, {0x2194,  29}, {0x2195,  18},
-	{0x21a8,  23}, {0x2219, 254}, {0x221a, 251}, {0x221f,  28},
-	{0x2500, 196}, {0x2502, 179}, {0x250c, 218}, {0x2510, 191},
-	{0x2514, 192}, {0x2518, 217}, {0x251c, 195}, {0x2524, 180},
-	{0x252c, 194}, {0x2534, 193}, {0x253c, 197}, {0x2550, 205},
-	{0x2551, 186}, {0x2552, 213}, {0x2553, 214}, {0x2554, 201},
-	{0x2555, 184}, {0x2556, 183}, {0x2557, 187}, {0x2558, 212},
-	{0x2559, 211}, {0x255a, 200}, {0x255b, 190}, {0x255c, 189},
-	{0x255d, 188}, {0x255e, 198}, {0x255f, 199}, {0x2560, 204},
-	{0x2561, 181}, {0x2562, 182}, {0x2563, 185}, {0x2564, 209},
-	{0x2565, 210}, {0x2566, 203}, {0x2567, 207}, {0x2568, 208},
-	{0x2569, 202}, {0x256a, 216}, {0x256b, 215}, {0x256c, 206},
-	{0x2580, 223}, {0x2584, 220}, {0x2588, 219}, {0x258c, 221},
-	{0x2590, 222}, {0x2591, 176}, {0x2592, 177}, {0x2593, 178},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp1131_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
-	0x0406, 0x0456, 0x00b7, 0x221a, 0x0490, 0x0491, 0x2219, 0x00a0
-};
-
-const static struct ciolib_cpmap armscii8_table[122] = {
-	{0x00a0, 160}, {0x00a7, 162}, {0x00ab, 167}, {0x00b6, 20},
-	{0x00bb, 166}, {0x02bc, 254}, {0x0531, 178}, {0x0532, 180},
-	{0x0533, 182}, {0x0534, 184}, {0x0535, 186}, {0x0536, 188},
-	{0x0537, 190}, {0x0538, 192}, {0x0539, 194}, {0x053a, 196},
-	{0x053b, 198}, {0x053c, 200}, {0x053d, 202}, {0x053e, 204},
-	{0x053f, 206}, {0x0540, 208}, {0x0541, 210}, {0x0542, 212},
-	{0x0543, 214}, {0x0544, 216}, {0x0545, 218}, {0x0546, 220},
-	{0x0547, 222}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
-	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
-	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
-	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
-	{0x055b, 176}, {0x055c, 175}, {0x055d, 170}, {0x055e, 177},
-	{0x0561, 179}, {0x0562, 181}, {0x0563, 183}, {0x0564, 185},
-	{0x0565, 187}, {0x0566, 189}, {0x0567, 191}, {0x0568, 193},
-	{0x0569, 195}, {0x056a, 197}, {0x056b, 199}, {0x056c, 201},
-	{0x056d, 203}, {0x056e, 205}, {0x056f, 207}, {0x0570, 209},
-	{0x0571, 211}, {0x0572, 213}, {0x0573, 215}, {0x0574, 217},
-	{0x0575, 219}, {0x0576, 221}, {0x0577, 223}, {0x0578, 225},
-	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
-	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
-	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
-	{0x0585, 251}, {0x0586, 253}, {0x0589, 163}, {0x058a, 173},
-	{0x058e, 161}, {0x2013, 172}, {0x2014, 168}, {0x2022, 7},
-	{0x2026, 174}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t armscii8_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab,
-	0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c,
-	0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
-	0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
-	0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
-	0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
-	0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
-	0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
-	0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
-	0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
-	0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
-	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
-};
-
-const static struct ciolib_cpmap haik8_table[122] = {
-	{0x00a0, 128}, {0x00a7, 21}, {0x00ab, 135}, {0x00b6, 20},
-	{0x00bb, 134}, {0x02bc, 254}, {0x0531, 146}, {0x0532, 148},
-	{0x0533, 150}, {0x0534, 152}, {0x0535, 154}, {0x0536, 156},
-	{0x0537, 158}, {0x0538, 160}, {0x0539, 162}, {0x053a, 164},
-	{0x053b, 166}, {0x053c, 168}, {0x053d, 170}, {0x053e, 172},
-	{0x053f, 174}, {0x0540, 176}, {0x0541, 178}, {0x0542, 180},
-	{0x0543, 182}, {0x0544, 184}, {0x0545, 186}, {0x0546, 188},
-	{0x0547, 190}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
-	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
-	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
-	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
-	{0x055b, 144}, {0x055c, 143}, {0x055d, 138}, {0x055e, 145},
-	{0x0561, 147}, {0x0562, 149}, {0x0563, 151}, {0x0564, 153},
-	{0x0565, 155}, {0x0566, 157}, {0x0567, 159}, {0x0568, 161},
-	{0x0569, 163}, {0x056a, 165}, {0x056b, 167}, {0x056c, 169},
-	{0x056d, 171}, {0x056e, 173}, {0x056f, 175}, {0x0570, 177},
-	{0x0571, 179}, {0x0572, 181}, {0x0573, 183}, {0x0574, 185},
-	{0x0575, 187}, {0x0576, 189}, {0x0577, 191}, {0x0578, 225},
-	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
-	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
-	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
-	{0x0585, 251}, {0x0586, 253}, {0x0589, 131}, {0x058a, 141},
-	{0x058e, 129}, {0x2013, 140}, {0x2014, 136}, {0x2022, 7},
-	{0x2026, 142}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t haik8_unicode_table[128] = {
-	0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab,
-	0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c,
-	0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
-	0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
-	0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
-	0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
-	0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
-	0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
-	0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
-	0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
-	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
-};
-
-const static struct ciolib_cpmap atascii_table[148] = {
-	{0x0007, 252}, {0x0008, 126}, {0x0009, 127}, {0x000d, 155},
-	{0x001b, 27}, {0x0020, 32}, {0x0021, 33}, {0x0022, 34},
-	{0x0023, 35}, {0x0024, 36}, {0x0025, 37}, {0x0026, 38},
-	{0x0027, 39}, {0x0028, 40}, {0x0029, 41}, {0x002a, 42},
-	{0x002b, 43}, {0x002c, 44}, {0x002d, 45}, {0x002e, 46},
-	{0x002f, 47}, {0x0030, 48}, {0x0031, 49}, {0x0032, 50},
-	{0x0033, 51}, {0x0034, 52}, {0x0035, 53}, {0x0036, 54},
-	{0x0037, 55}, {0x0038, 56}, {0x0039, 57}, {0x003a, 58},
-	{0x003b, 59}, {0x003c, 60}, {0x003d, 61}, {0x003e, 62},
-	{0x003f, 63}, {0x0040, 64}, {0x0041, 65}, {0x0042, 66},
-	{0x0043, 67}, {0x0044, 68}, {0x0045, 69}, {0x0046, 70},
-	{0x0047, 71}, {0x0048, 72}, {0x0049, 73}, {0x004a, 74},
-	{0x004b, 75}, {0x004c, 76}, {0x004d, 77}, {0x004e, 78},
-	{0x004f, 79}, {0x0050, 80}, {0x0051, 81}, {0x0052, 82},
-	{0x0053, 83}, {0x0054, 84}, {0x0055, 85}, {0x0056, 86},
-	{0x0057, 87}, {0x0058, 88}, {0x0059, 89}, {0x005a, 90},
-	{0x005b, 91}, {0x005c, 92}, {0x005d, 93}, {0x005e, 94},
-	{0x005f, 95}, {0x0061, 97}, {0x0062, 98}, {0x0063, 99},
-	{0x0064, 100}, {0x0065, 101}, {0x0066, 102}, {0x0067, 103},
-	{0x0068, 104}, {0x0069, 105}, {0x006a, 106}, {0x006b, 107},
-	{0x006c, 108}, {0x006d, 109}, {0x006e, 110}, {0x006f, 111},
-	{0x0070, 112}, {0x0071, 113}, {0x0072, 114}, {0x0073, 115},
-	{0x0074, 116}, {0x0075, 117}, {0x0076, 118}, {0x0077, 119},
-	{0x0078, 120}, {0x0079, 121}, {0x007a, 122}, {0x007c, 124},
-	{0x007f, 253}, {0x00a0, 155}, {0x2022, 148}, {0x2190, 30},
-	{0x2191, 28}, {0x2192, 159}, {0x2193, 157}, {0x21b0, 125},
-	{0x241b, 27}, {0x2500, 18}, {0x250c, 145}, {0x2510, 5},
-	{0x2514, 26}, {0x2518, 131}, {0x251c, 129}, {0x2524, 132},
-	{0x252c, 23}, {0x2534, 24}, {0x253c, 147}, {0x2571, 6},
-	{0x2572, 135}, {0x2580, 149}, {0x2582, 142}, {0x2584, 21},
-	{0x2586, 141}, {0x2588, 160}, {0x258a, 130}, {0x258c, 25},
-	{0x258e, 150}, {0x2590, 153}, {0x2596, 143}, {0x2597, 137},
-	{0x2598, 140}, {0x2599, 139}, {0x259b, 137}, {0x259c, 143},
-	{0x259d, 139}, {0x259f, 140}, {0x25b6, 127}, {0x25c0, 126},
-	{0x25d8, 148}, {0x25e2, 136}, {0x25e3, 10}, {0x25e4, 136},
-	{0x25e5, 138}, {0x2660, 123}, {0x2663, 144}, {0x2665, 63},
-	{0x2666, 96}, {0xfffd, 63}, {0x1fb82, 13}, {0x1fb87, 2}
-};
-
-const static uint32_t atascii_unicode_table[256] = {
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x001b, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x0008, 0x0009,
-	0x2665, 0x251c, 0x258a, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e4, 0x259b, 0x25e5, 0x2599, 0x259f, 0x2586, 0x2582, 0x259c,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x25d8, 0x2580, 0x258e, 0x252c,
-	0x2534, 0x2590, 0x2514, 0x000d, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x2588, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x0007, 0x007f, 0x25c0, 0x25b6
-};
-
-const static uint32_t atascii_ext_table[256] = {
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6,
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x00a0, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6
-};
-
-const static struct ciolib_cpmap petsciiu_table[129] = {
-	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
-	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
-	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
-	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
-	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
-	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
-	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
-	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
-	{0x0040, 64}, {0x0041, 65}, {0x0042, 66}, {0x0043, 67},
-	{0x0044, 68}, {0x0045, 69}, {0x0046, 70}, {0x0047, 71},
-	{0x0048, 72}, {0x0049, 73}, {0x004a, 74}, {0x004b, 75},
-	{0x004c, 76}, {0x004d, 77}, {0x004e, 78}, {0x004f, 79},
-	{0x0050, 80}, {0x0051, 81}, {0x0052, 82}, {0x0053, 83},
-	{0x0054, 84}, {0x0055, 85}, {0x0056, 86}, {0x0057, 87},
-	{0x0058, 88}, {0x0059, 89}, {0x005a, 90}, {0x005b, 91},
-	{0x005d, 93}, {0x00a0, 160}, {0x00a3, 92}, {0x03c0, 126},
-	{0x2190, 95}, {0x2191, 94}, {0x2500, 96}, {0x2502, 125},
-	{0x250c, 176}, {0x2510, 174}, {0x2514, 173}, {0x2518, 189},
-	{0x251c, 171}, {0x2524, 179}, {0x252c, 178}, {0x2534, 177},
-	{0x253c, 123}, {0x256d, 117}, {0x256e, 105}, {0x256f, 107},
-	{0x2570, 106}, {0x2571, 110}, {0x2572, 109}, {0x2573, 118},
-	{0x2581, 164}, {0x2582, 175}, {0x2583, 185}, {0x2584, 162},
-	{0x258c, 161}, {0x258d, 181}, {0x258e, 180}, {0x258f, 165},
-	{0x2592, 166}, {0x2594, 163}, {0x2595, 167}, {0x2596, 187},
-	{0x2597, 172}, {0x2598, 190}, {0x259a, 191}, {0x259d, 188},
-	{0x25cb, 119}, {0x25cf, 113}, {0x25e4, 169}, {0x25e5, 127},
-	{0x2660, 97}, {0x2663, 120}, {0x2665, 115}, {0x2666, 122},
-	{0xfffd, 63}, {0x1fb70, 116}, {0x1fb71, 103}, {0x1fb72, 98},
-	{0x1fb74, 104}, {0x1fb75, 121}, {0x1fb76, 101}, {0x1fb77, 100},
-	{0x1fb78, 99}, {0x1fb7a, 102}, {0x1fb7b, 114}, {0x1fb7c, 108},
-	{0x1fb7d, 111}, {0x1fb7e, 112}, {0x1fb7f, 186}, {0x1fb82, 183},
-	{0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182}, {0x1fb8c, 124},
-	{0x1fb8f, 168}
-};
-
-const static uint32_t petsciiu_unicode_table[256] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
-	0x2500, 0x2660,0x1fb72,0x1fb78,0x1fb77,0x1fb76,0x1fb7a,0x1fb71,
-	0x1fb74,0x256e, 0x2570, 0x256f,0x1fb7c, 0x2572, 0x2571,0x1fb7d,
-	0x1fb7e,0x25cf,0x1fb7b, 0x2665,0x1fb70, 0x256d, 0x2573, 0x25cb,
-	0x2663,0x1fb75, 0x2666, 0x253c,0x1fb8c, 0x2502, 0x03c0, 0x25e5,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x25e4,0x1fb87, 0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583,0x1fb7f, 0x2596, 0x259d, 0x2518, 0x2598, 0x259a,
-	0x2500, 0x2660,0x1fb72,0x1fb78,0x1fb77,0x1fb76,0x1fb7a,0x1fb71,
-	0x1fb74,0x256e, 0x2570, 0x256f,0x1fb7c, 0x2572, 0x2571,0x1fb7d,
-	0x1fb7e,0x25cf,0x1fb7b, 0x2665,0x1fb70, 0x256d, 0x2573, 0x25cb,
-	0x2663,0x1fb75, 0x2666, 0x253c,0x1fb8c, 0x2502, 0x03c0, 0x25e5,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x25e4,0x1fb87, 0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583,0x1fb7f, 0x2596, 0x259d, 0x2518, 0x2598, 0x03c0
-};
-
-const static struct ciolib_cpmap petsciil_table[129] = {
-	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
-	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
-	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
-	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
-	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
-	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
-	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
-	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
-	{0x0040, 64}, {0x0041, 97}, {0x0042, 98}, {0x0043, 99},
-	{0x0044, 100}, {0x0045, 101}, {0x0046, 102}, {0x0047, 103},
-	{0x0048, 104}, {0x0049, 105}, {0x004a, 106}, {0x004b, 107},
-	{0x004c, 108}, {0x004d, 109}, {0x004e, 110}, {0x004f, 111},
-	{0x0050, 112}, {0x0051, 113}, {0x0052, 114}, {0x0053, 115},
-	{0x0054, 116}, {0x0055, 117}, {0x0056, 118}, {0x0057, 119},
-	{0x0058, 120}, {0x0059, 121}, {0x005a, 122}, {0x005b, 91},
-	{0x005d, 93}, {0x0061, 65}, {0x0062, 66}, {0x0063, 67},
-	{0x0064, 68}, {0x0065, 69}, {0x0066, 70}, {0x0067, 71},
-	{0x0068, 72}, {0x0069, 73}, {0x006a, 74}, {0x006b, 75},
-	{0x006c, 76}, {0x006d, 77}, {0x006e, 78}, {0x006f, 79},
-	{0x0070, 80}, {0x0071, 81}, {0x0072, 82}, {0x0073, 83},
-	{0x0074, 84}, {0x0075, 85}, {0x0076, 86}, {0x0077, 87},
-	{0x0078, 88}, {0x0079, 89}, {0x007a, 90}, {0x00a0, 160},
-	{0x00a3, 92}, {0x2190, 95}, {0x2191, 94}, {0x2500, 96},
-	{0x2502, 125}, {0x250c, 176}, {0x2510, 174}, {0x2514, 173},
-	{0x2518, 189}, {0x251c, 171}, {0x2524, 179}, {0x252c, 178},
-	{0x2534, 177}, {0x253c, 123}, {0x2581, 164}, {0x2582, 175},
-	{0x2583, 185}, {0x2584, 162}, {0x258c, 161}, {0x258d, 181},
-	{0x258e, 180}, {0x258f, 165}, {0x2592, 166}, {0x2594, 163},
-	{0x2595, 167}, {0x2596, 187}, {0x2597, 172}, {0x2598, 190},
-	{0x259a, 191}, {0x259d, 188}, {0x2713, 186}, {0xfffd, 63},
-	{0x1fb82, 183}, {0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182},
-	{0x1fb8c, 124}, {0x1fb8f, 168}, {0x1fb96, 126}, {0x1fb98, 127},
-	{0x1fb99, 169}
-};
-
-const static uint32_t petsciil_unicode_table[256] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
-	0x2500, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x253c,0x1fb8c, 0x2502,0x1fb96,0x1fb98,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x1fb99,0x1fb87,0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583, 0x2713, 0x2596, 0x259d, 0x2518, 0x2598, 0x259a,
-	0x2500, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x253c,0x1fb8c, 0x2502,0x1fb96,0x1fb98,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x1fb99,0x1fb87,0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583, 0x2713, 0x2596, 0x259d, 0x2518, 0x2598,0x1fb96
-};
-
-static int
-cmptab(const void *key, const void *entry)
-{
-	const uint32_t *pkey = key;
-	const struct ciolib_cpmap *pentry = entry;
-
-	if (*pkey == pentry->unicode)
-		return 0;
-	if (*pkey < pentry->unicode)
-		return -1;
-	return 1;
-}
-
-static uint8_t
-cptable_from_unicode_cpoint(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef)
-{
-	struct ciolib_cpmap *mapped;
-
-	if (cpoint < 128)
-		return cpoint;
-	mapped = bsearch(&cpoint, cpdef->cp_table, cpdef->cp_table_sz, sizeof(cpdef->cp_table[0]), cmptab);
-	if (mapped == NULL)
-		return unmapped;
-	return mapped->cpchar;
-}
-
-static uint32_t
-cpoint_from_cptable(uint8_t ch, const struct codepage_def *cpdef)
-{
-	if (ch < 128)
-		return ch;
-	return cpdef->cp_unicode_table[ch - 128];
-}
-
-static uint32_t
-cpoint_from_cptable_ext(uint8_t ch, const struct codepage_def *cpdef)
-{
-	if (ch < 32)
-		return cpdef->cp_ext_unicode_table[ch];
-	return ciolib_cp[cpdef->cp].from_cpchar(ch, cpdef);
-}
-
-static uint32_t
-ft_cpoint_from_cptable(uint8_t ch, const struct codepage_def *cpdef)
-{
-	return cpdef->cp_unicode_table[ch];
-}
-
-static uint32_t
-ft_cpoint_from_cptable_ext(uint8_t ch, const struct codepage_def *cpdef)
-{
-	return cpdef->cp_ext_unicode_table[ch];
-}
-
-static int
-write_cp(uint8_t *str, uint32_t cp)
-{
-	if (cp < 128) {
-		*str = cp;
-		return 1;
-	}
-	if (cp < 0x800) {
-		*(str++) = 0xc0 | (cp >> 6);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 2;
-	}
-	if (cp < 0x10000) {
-		*(str++) = 0xe0 | (cp >> 12);
-		*(str++) = 0x80 | ((cp >> 6) & 0x3f);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 3;
-	}
-	if (cp < 0x110000) {
-		*(str++) = 0xf0 | (cp >> 18);
-		*(str++) = 0x80 | ((cp >> 12) & 0x3f);
-		*(str++) = 0x80 | ((cp >> 6) & 0x3f);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 4;
-	}
-	return -1;
-}
-
-static int
-read_cp(const uint8_t *str, uint32_t *cp)
-{
-	int incode;
-	const uint8_t *p = str;
-
-	if (cp == NULL)
-		goto error;
-
-	if (str == NULL)
-		goto error;
-
-	if (*p & 0x80) {
-		if ((*p & 0xe0) == 0xc0) {
-			incode = 1;
-			*cp = *p & 0x1f;
-		}
-		else if ((*p & 0xf0) == 0xe0) {
-			incode = 2;
-			*cp = *p & 0x0f;
-		}
-		else if ((*p & 0xf8) == 0xf0) {
-			incode = 3;
-			*cp = *p & 0x07;
-		}
-		else
-			goto error;
-
-		while (incode) {
-			p++;
-			incode--;
-			if ((*p & 0xc0) != 0x80)
-				goto error;
-			*cp <<= 6;
-			*cp |= (*p & 0x3f);
-		}
-	}
-	else {
-		*cp = *p;
-	}
-	return p - str + 1;
-
-error:
-	if (cp)
-		*cp = 0xffff;
-	return -1;
-}
-
-static int
-utf8_bytes(uint32_t cp)
-{
-	if (cp < 0x80)
-		return 1;
-	if (cp < 0x800)
-		return 2;
-	if (cp < 0x10000)
-		return 3;
-	if (cp < 0x11000)
-		return 4;
-	return -1;
-}
-
-static uint8_t *
-cpstr_to_utf8(const char *cpstr, size_t buflen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t needed = 0;
-	int cplen;
-	uint8_t *ret = NULL;
-	uint8_t *rp;
-	size_t idx;
-	uint8_t ch;
-
-	// Calculate the number of bytes needed
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		if (ch == 0)
-			cplen = 4;
-		else if (ch < 128)
-			cplen = 1;
-		else
-			cplen = utf8_bytes(cpdef->cp_unicode_table[ch - 128]);
-		if (cplen == -1)
-			goto error;
-		needed += cplen;
-	}
-
-	ret = malloc(needed + 1);
-	if (ret == NULL)
-		goto error;
-
-	rp = ret;
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		if (ch == 0) {
-			*(rp++) = 0xef;
-			*(rp++) = 0xbf;
-			*(rp++) = 0xbe;
-			cplen = 0;
-		}
-		else if (ch < 128) {
-			*rp = ch;
-			cplen = 1;
-		}
-		else {
-			cplen = write_cp(rp, cpdef->cp_unicode_table[ch - 128]);
-			if (cplen < 1)
-				goto error;
-		}
-		rp += cplen;
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-	return ret;
-
-error:
-	free(ret);
-	return NULL;
-}
-
-static uint8_t
-ft_from_unicode_cpoint(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef)
-{
-	struct ciolib_cpmap *mapped;
-
-	mapped = bsearch(&cpoint, cpdef->cp_table, cpdef->cp_table_sz, sizeof(cpdef->cp_table[0]), cmptab);
-	if (mapped == NULL)
-		return unmapped;
-	return mapped->cpchar;
-}
-
-static uint8_t *
-ftstr_to_utf8(const char *cpstr, size_t buflen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t needed = 0;
-	int cplen;
-	uint8_t *ret = NULL;
-	uint8_t *rp;
-	size_t idx;
-	uint8_t ch;
-
-	// Calculate the number of bytes needed
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		cplen = utf8_bytes(cpdef->cp_unicode_table[ch]);
-		if (cplen == -1)
-			goto error;
-		needed += cplen;
-	}
-
-	ret = malloc(needed + 1);
-	if (ret == NULL)
-		goto error;
-
-	rp = ret;
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		cplen = write_cp(rp, cpdef->cp_unicode_table[ch]);
-		if (cplen < 1)
-			goto error;
-		rp += cplen;
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-	return ret;
-
-error:
-	free(ret);
-	return NULL;
-}
-
-/*
- * Converts UTF-8 to defined codepage, replacing unmapped characters
- * with unmapped if unmapped is zero, unmapped characters are stripped.
- * 
- * Returns NULL if there are invalid sequences or codepoints.
- * Does not normalize the unicode, just a simple mapping
- * (TODO: Normalize into combined chars etc)
- */
-static char *
-utf8_to_cpstr(const uint8_t *utf8str, char unmapped, size_t inlen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t idx;
-	char *rp;
-	size_t outsz = 0;
-	int incode = 0;
-	uint32_t codepoint;
-	char *ret = NULL;
-
-	// TODO: Normalize UTF-8...
-
-	// Calculate the number of code points and validate.
-	for (idx = 0; idx < inlen; idx++) {
-		if (incode) {
-			switch (utf8str[idx] & 0xc0) {
-				case 0x80:
-					incode--;
-					if (incode == 0)
-						outsz++;
-					break;
-				default:
-					goto error;
-			}
-		}
-		else {
-			if (utf8str[idx] & 0x80) {
-				if ((utf8str[idx] & 0xe0) == 0xc0)
-					incode = 1;
-				else if ((utf8str[idx] & 0xf0) == 0xe0)
-					incode = 2;
-				else if ((utf8str[idx] & 0xf8) == 0xf0)
-					incode = 3;
-				else
-					goto error;
-			}
-			else
-				outsz++;
-		}
-	}
-	ret = malloc(outsz + 1);
-	if (ret == NULL)
-		goto error;
-	rp = ret;
-
-	// Fill the string...
-	for (idx = 0; idx < inlen;) {
-		idx += read_cp(&utf8str[idx], &codepoint);
-		if (codepoint == 0xffff || codepoint == 0xfffe)
-			goto error;
-		*(rp++) = cpdef->from_unicode_cpoint(codepoint, unmapped, cpdef);
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-
-	return ret;
-error:
-	free(ret);
-	return NULL;
-}
-
-const struct codepage_def ciolib_cp[CIOLIB_CP_COUNT] = {
-	// 0
-	{"CP437", CIOLIB_CP437, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp437_table, sizeof(cp437_table) / sizeof(cp437_table[0]),
-		cp437_unicode_table, cp437_ext_table},
-	{"CP1251", CIOLIB_CP1251, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp1251_table, sizeof(cp1251_table) / sizeof(cp1251_table[0]),
-		cp1251_unicode_table, cp437_ext_table},
-	{"KOI8-R", CIOLIB_KOI8_R, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		koi8_r_table, sizeof(koi8_r_table) / sizeof(koi8_r_table[0]),
-		koi8_r_unicode_table, empty_ext_table},
-	{"ISO-8859-2", CIOLIB_ISO_8859_2, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_2_table, sizeof(iso8859_2_table) / sizeof(iso8859_2_table[0]),
-		iso8859_2_unicode_table, empty_ext_table},
-	{"ISO-8859-4", CIOLIB_ISO_8859_4, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_4_table, sizeof(iso8859_4_table) / sizeof(iso8859_4_table[0]),
-		iso8859_4_unicode_table, empty_ext_table},
-	// 5
-	{"CP866M", CIOLIB_CP866M, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866m_table, sizeof(cp866m_table) / sizeof(cp866m_table[0]),
-		cp866m_unicode_table, cp437_ext_table},
-	{"ISO-8859-9", CIOLIB_ISO_8859_9, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_9_table, sizeof(iso8859_9_table) / sizeof(iso8859_9_table[0]),
-		iso8859_9_unicode_table, empty_ext_table},
-	{"ISO-8859-8", CIOLIB_ISO_8859_8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_8_table, sizeof(iso8859_8_table) / sizeof(iso8859_8_table[0]),
-		iso8859_8_unicode_table, empty_ext_table},
-	{"KOI8-U", CIOLIB_KOI8_U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		koi8_u_table, sizeof(koi8_u_table) / sizeof(koi8_u_table[0]),
-		koi8_u_unicode_table, empty_ext_table},
-	{"ISO-8859-15", CIOLIB_ISO_8859_15, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_15_table, sizeof(iso8859_15_table) / sizeof(iso8859_15_table[0]),
-		iso8859_15_unicode_table, empty_ext_table},
-	// 10
-	{"ISO-8859-5", CIOLIB_ISO_8859_5, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_5_table, sizeof(iso8859_5_table) / sizeof(iso8859_5_table[0]),
-		iso8859_5_unicode_table, empty_ext_table},
-	{"CP850", CIOLIB_CP850, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp850_table, sizeof(cp850_table) / sizeof(cp850_table[0]),
-		cp850_unicode_table, cp437_ext_table},
-	{"CP865", CIOLIB_CP865, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp865_table, sizeof(cp865_table) / sizeof(cp865_table[0]),
-		cp865_unicode_table, cp437_ext_table},
-	{"ISO-8859-7", CIOLIB_ISO_8859_7, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_7_table, sizeof(iso8859_7_table) / sizeof(iso8859_7_table[0]),
-		iso8859_7_unicode_table, empty_ext_table},
-	{"ISO-8859-1", CIOLIB_ISO_8859_1, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_1_table, sizeof(iso8859_1_table) / sizeof(iso8859_1_table[0]),
-		iso8859_1_unicode_table, empty_ext_table},
-	// 15
-	{"CP866M2", CIOLIB_CP866M2, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866m2_table, sizeof(cp866m2_table) / sizeof(cp866m2_table[0]),
-		cp866m2_unicode_table, cp437_ext_table},
-	{"CP866U", CIOLIB_CP866U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866u_table, sizeof(cp866u_table) / sizeof(cp866u_table[0]),
-		cp866u_unicode_table, cp437_ext_table},
-	{"CP1131", CIOLIB_CP1131, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp1131_table, sizeof(cp1131_table) / sizeof(cp1131_table[0]),
-		cp1131_unicode_table, cp437_ext_table},
-	{"ARMSCII-8", CIOLIB_ARMSCII8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		armscii8_table, sizeof(armscii8_table) / sizeof(armscii8_table[0]),
-		armscii8_unicode_table, cp437_ext_table},
-	{"HAIK8", CIOLIB_HAIK8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		haik8_table, sizeof(haik8_table) / sizeof(haik8_table[0]),
-		haik8_unicode_table, cp437_ext_table},
-	// 20
-	{"ATASCII", CIOLIB_ATASCII, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  ft_cpoint_from_cptable_ext, 
-		atascii_table, sizeof(atascii_table) / sizeof(atascii_table[0]),
-		atascii_unicode_table, atascii_ext_table},
-	{"PETSCIIU", CIOLIB_PETSCIIU, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		petsciiu_table, sizeof(petsciiu_table) / sizeof(petsciiu_table[0]),
-		petsciiu_unicode_table, empty_ext_table},
-	{"PETSCIIL", CIOLIB_PETSCIIL, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		petsciil_table, sizeof(petsciil_table) / sizeof(petsciil_table[0]),
-		petsciil_unicode_table, empty_ext_table},
-};
-
-uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return NULL;
-
-	return ciolib_cp[cp].to_utf8(cpstr, buflen, outlen, &ciolib_cp[cp]);
-}
-
-char *utf8_to_cp(enum ciolib_codepage cp, const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return NULL;
-
-	return ciolib_cp[cp].utf8_to(utf8str, unmapped, buflen, outlen, &ciolib_cp[cp]);
-}
-
-uint8_t cpchar_from_unicode_cpoint(enum ciolib_codepage cp, uint32_t cpoint, char unmapped)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return unmapped;
-
-	return ciolib_cp[cp].from_unicode_cpoint(cpoint, unmapped, &ciolib_cp[cp]);
-}
-
-uint32_t cpoint_from_cpchar(enum ciolib_codepage cp, uint8_t ch)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return 0;
-
-	return ciolib_cp[cp].from_cpchar(ch, &ciolib_cp[cp]);
-}
-
-uint32_t cpoint_from_cpchar_ext(enum ciolib_codepage cp, uint8_t ch)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return 0;
-
-	return ciolib_cp[cp].from_cpchar_ext(ch, &ciolib_cp[cp]);
-}
diff --git a/ciolib/utf8_codepages.h b/ciolib/utf8_codepages.h
deleted file mode 100644
index f654d9c..0000000
--- a/ciolib/utf8_codepages.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef UTF8_CODEPAGES_H
-#define UTF8_CODEPAGES_H
-
-enum ciolib_codepage {
-	CIOLIB_CP437,
-	CIOLIB_CP1251,
-	CIOLIB_KOI8_R,
-	CIOLIB_ISO_8859_2,
-	CIOLIB_ISO_8859_4,
-	CIOLIB_CP866M,
-	CIOLIB_ISO_8859_9,
-	CIOLIB_ISO_8859_8,
-	CIOLIB_KOI8_U,
-	CIOLIB_ISO_8859_15,
-	CIOLIB_ISO_8859_5,
-	CIOLIB_CP850,
-	CIOLIB_CP865,
-	CIOLIB_ISO_8859_7,
-	CIOLIB_ISO_8859_1,
-	CIOLIB_CP866M2,
-	CIOLIB_CP866U,
-	CIOLIB_CP1131,
-	CIOLIB_ARMSCII8,
-	CIOLIB_HAIK8,
-	CIOLIB_ATASCII,
-	CIOLIB_PETSCIIU,
-	CIOLIB_PETSCIIL,
-	CIOLIB_CP_COUNT
-};
-
-struct codepage_def {
-	const char name[32];
-	const enum ciolib_codepage cp;
-	uint8_t *(*to_utf8)(const char *cp437str, size_t buflen, size_t *outlen, const struct codepage_def *cpdef);
-	char *(*utf8_to)(const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen, const struct codepage_def *cpdef);
-	uint8_t (*from_unicode_cpoint)(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef);
-	uint32_t (*from_cpchar)(uint8_t cpoint, const struct codepage_def *cpdef);
-	uint32_t (*from_cpchar_ext)(uint8_t cpoint, const struct codepage_def *cpdef);
-	const struct ciolib_cpmap *cp_table;
-	const size_t cp_table_sz;
-	const uint32_t *cp_unicode_table;
-	const uint32_t *cp_ext_unicode_table;
-};
-
-extern const struct codepage_def ciolib_cp[CIOLIB_CP_COUNT];
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen);
-char *utf8_to_cp(enum ciolib_codepage cp, const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen);
-uint8_t cpchar_from_unicode_cpoint(enum ciolib_codepage cp, uint32_t cpoint, char unmapped);
-uint32_t cpoint_from_cpchar(enum ciolib_codepage cp, uint8_t ch);
-uint32_t cpoint_from_cpchar_ext(enum ciolib_codepage cp, uint8_t ch);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/vidmodes.c b/ciolib/vidmodes.c
deleted file mode 100644
index cd8bbb8..0000000
--- a/ciolib/vidmodes.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/* $Id: vidmodes.c,v 1.33 2020/06/27 00:04:45 deuce Exp $ */
-
-#include <stdlib.h>
-#include <stdbool.h>
-
-/* xpdev: */
-#include <gen_defs.h>	/* FREE_AND_NULL */
-
-#include "vidmodes.h"
-
-// TODO: Pretty much all the 1:1 aspect ratios are wrong...
-struct video_params vparams[] = {
-	/* BW 40x25 */
-	{BW40, GREYSCALE_PALETTE,             40, 25, 14, 15, 16, 8, 7, 0,  4, 3, 320,  200},
-	/* CO 40x25 */
-	{C40, COLOUR_PALETTE,                 40, 25, 14, 15, 16, 8, 7, 0,  4, 3, 320,  200},
-	/* BW 80x25 */
-	{BW80, GREYSCALE_PALETTE,             80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 80x25 */
-	{C80, COLOUR_PALETTE,                 80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* MONO */
-	{MONO, 0,                             80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 40x14 */
-	{C40X14, COLOUR_PALETTE,              40, 14, 14, 15, 16, 8, 7, 0,  4, 3, 320,  224},
-	/* CO 40x21 */
-	{C40X21, COLOUR_PALETTE,              40, 21, 14, 15, 16, 8, 7, 0,  4, 3, 320,  336},
-	/* CO 40x28 */
-	{C40X28, COLOUR_PALETTE,              40, 28, 12, 13, 14, 8, 7, 0,  4, 3, 320,  392},
-	/* CO 40x43 */
-	{C40X43, COLOUR_PALETTE,              40, 43,  7,  7,  8, 8, 7, 0,  4, 3, 320,  774},
-	/* CO 40x50 */
-	{C40X50, COLOUR_PALETTE,              40, 50,  7,  7,  8, 8, 7, 0,  4, 3, 320,  400},
-	/* CO 40x60 */
-	{C40X60, COLOUR_PALETTE,              40, 60,  7,  7,  8, 8, 7, 0,  4, 3, 320,  480},
-	/* CO 80x14 */
-	{C80X14, COLOUR_PALETTE,              80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* CO 80x21 */
-	{C80X21, COLOUR_PALETTE,              80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* CO 80x28 */
-	{C80X28, COLOUR_PALETTE,              80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* CO 80x30 */
-	{C80X30, COLOUR_PALETTE,              80, 30, 14, 15, 16, 8, 7, 0,  4, 3, 640,  480},
-	/* CO 80x43 */
-	{C80X43, COLOUR_PALETTE,              80, 43,  7,  7,  8, 8, 7, 0,  4, 3, 640,  350},
-	/* EGA 80x25 */
-	{EGA80X25, COLOUR_PALETTE,            80, 25, 12, 13, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* CO 80x50 */
-	{C80X50, COLOUR_PALETTE,              80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 80x60 */
-	{C80X60, COLOUR_PALETTE,              80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* B 40x14 */
-	{BW40X14, GREYSCALE_PALETTE,          40, 14, 14, 15, 16, 8, 7, 0,  4, 3, 320,  224},
-	/* BW 40x21 */
-	{BW40X21, GREYSCALE_PALETTE,          40, 21, 14, 15, 16, 8, 7, 0,  4, 3, 320,  336},
-	/* BW 40x28 */
-	{BW40X28, GREYSCALE_PALETTE,          40, 28, 12, 13, 14, 8, 7, 0,  4, 3, 320,  392},
-	/* BW 40x43 */
-	{BW40X43, GREYSCALE_PALETTE,          40, 43,  7,  7, 14, 8, 7, 0,  4, 3, 320,  350},
-	/* BW 40x50 */
-	{BW40X50, GREYSCALE_PALETTE,          40, 50,  7,  7,  8, 8, 7, 0,  4, 3, 320,  400},
-	/* BW 40x60 */
-	{BW40X60, GREYSCALE_PALETTE,          40, 60,  7,  7,  8, 8, 7, 0,  4, 3, 320,  480},
-	/* BW 80x14 */
-	{BW80X14, GREYSCALE_PALETTE,          80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* BW 80x21 */
-	{BW80X21, GREYSCALE_PALETTE,          80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* BW 80x28 */
-	{BW80X28, GREYSCALE_PALETTE,          80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* BW 80x43 */
-	{BW80X43, GREYSCALE_PALETTE,          80, 43,  7,  7, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* BW 80x50 */
-	{BW80X50, GREYSCALE_PALETTE,          80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* BW 80x60 */
-	{BW80X60, GREYSCALE_PALETTE,          80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* MONO 80x14 */
-	{MONO14, MONO_PALETTE,                80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* MONO 80x21 */
-	{MONO21, MONO_PALETTE,                80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* MONO 80x28 */
-	{MONO28, MONO_PALETTE,                80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* MONO 80x43 */
-	{MONO43, MONO_PALETTE,                80, 43,  7,  7, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* MONO 80x50 */
-	{MONO50, MONO_PALETTE,                80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* MONO 80x60 */
-	{MONO60, MONO_PALETTE,                80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* Magical C4350 Mode */
-	{C4350, COLOUR_PALETTE,               80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* Commodore 64 40x25 mode */
-	// This is the NTSC aspect ratio... the pixel aspect ratio is about 75:100 due to the
-	// borders.
-	{C64_40X25, C64_PALETTE,              40, 25,  0,  7,  8, 8, 0x6e, CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  6, 5, 320, 200},
-	/* Commodore 128 40x25 mode */
-	// The C128 uses the same aspect ratio as the C64 in 40 column mode
-	{C128_40X25, C64_PALETTE,             40, 25,  0,  7,  8, 8, 0xbd, CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  6, 5, 320, 200},
-	/* Commodore 128 80x25 mode */
-	// But in 80-column mode is a 4:3 CGA style output.
-	{C128_80X25, COLOUR_PALETTE,          80, 25,  0,  7,  8, 8, 7,    CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  4, 3, 640, 200},
-	/* Atari 800 40x24 mode */
-	{ATARI_40X24, ATARI_PALETTE,          40, 24,  0,  7,  8, 8, 7, 0,  4, 3, 320,  192},
-	/* Atari 800 XEP80 80x25 mode */
-	{ATARI_80X25, GREYSCALE_PALETTE,      80, 25,  0, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* VESA 21x132 mode */
-	{VESA_132X21, COLOUR_PALETTE,        132, 21, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 336},
-	/* VESA 25x132 mode */
-	{VESA_132X25, COLOUR_PALETTE,        132, 25, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 400},
-	/* VESA 28x132 mode */
-	{VESA_132X28, COLOUR_PALETTE,        132, 28, 12, 13, 14, 8, 7, 0,  4, 3, 1056, 392},
-	/* VESA 30x132 mode */
-	{VESA_132X30, COLOUR_PALETTE,        132, 30, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 480},
-	/* VESA 34x132 mode */
-	{VESA_132X34, COLOUR_PALETTE,        132, 34, 12, 13, 14, 8, 7, 0,  4, 3, 1056, 476},
-	/* VESA 43x132 mode */
-	{VESA_132X43, COLOUR_PALETTE,        132, 43,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 350},
-	/* VESA 50x132 mode */
-	{VESA_132X50, COLOUR_PALETTE,        132, 50,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 400},
-	/* VESA 60x132 mode */
-	{VESA_132X60, COLOUR_PALETTE,        132, 60,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 480},
-	/* Awesome modes */
-	{ST132X37_16_9, COLOUR_PALETTE,      132, 37, 14, 15, 16, 8, 7, 0, 16, 9, 1056, 600},
-	{ST132X52_5_4, COLOUR_PALETTE,       132, 52, 14, 15, 16, 8, 7, 0,  5, 4, 1056, 823},
-	/* Stupid modes */
-	{VGA80X25, COLOUR_PALETTE,            80, 25, 14, 15, 16, 9, 7, CIOLIB_VIDEO_EXPAND | CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND, 4, 3, 720, 400},
-	/* DigitalMon */
-	{LCD80X25, COLOUR_PALETTE,            80, 25, 14, 15, 16, 8, 7, 0,  8, 5, 640,  400},
-	/* Custom mode */
-	{CIOLIB_MODE_CUSTOM, COLOUR_PALETTE, 80,  25, 14, 15, 16, 8, 7, 0,  0, 0,   -1,  -1},
-};
-
-uint32_t palettes[5][16] = {
-	/* Mono */
-	{ 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	  0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07
-	},
-	/* Black and White */
-	{ 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	  0x08, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f
-	},
-	/* Colour */
-	{ 0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07, 
-	  0x08, 0x0c, 0x0a, 0x0e, 0x09, 0x0d, 0x0b, 0x0f
-	},
-	/* C64 */
-	{ 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 
-	  0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f
-	},
-	/* Atari */
-	{ 0x110, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111,
-	  0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111
-	},
-};
-
-struct dac_colors dac_default[TOTAL_DAC_SIZE] = {
-	/* "System" colours */
-	{0, 0, 0},       // Black
-	{168, 0, 0},     // Red
-	{0, 168, 0},     // Green
-	{168, 84, 0},    // Brown
-	{0, 0, 168},     // Blue
-	{168, 0, 168},   // Magenta
-	{0, 168, 168},   // Cyan
-	{168, 168, 168}, // Light Gray
-
-	{84, 84, 84},    // Dark Gray
-	{255, 84, 84},   // Light Red
-	{84, 255, 84},   // Light Green
-	{255, 255, 84},  // Yellow
-	{84, 84, 255},   // Light Blue
-	{255, 84, 255},  // Light Magenta
-	{84, 255, 255},  // Light Cyan
-	{255, 255, 255}, // White
-
-	/* XTerm 256 colour palette */
-	{0, 0, 0}, {0, 0, 95}, {0, 0, 135}, {0, 0, 175},
-	{0, 0, 215}, {0, 0, 255}, {0, 95, 0}, {0, 95, 95},
-	{0, 95, 135}, {0, 95, 175}, {0, 95, 215}, {0, 95, 255},
-	{0, 135, 0}, {0, 135, 95}, {0, 135, 135}, {0, 135, 175},
-	{0, 135, 215}, {0, 135, 255}, {0, 175, 0}, {0, 175, 95},
-	{0, 175, 135}, {0, 175, 175}, {0, 175, 215}, {0, 175, 255},
-	{0, 215, 0}, {0, 215, 95}, {0, 215, 135}, {0, 215, 175},
-	{0, 215, 215}, {0, 215, 255}, {0, 255, 0}, {0, 255, 95},
-	{0, 255, 135}, {0, 255, 175}, {0, 255, 215}, {0, 255, 255},
-	{95, 0, 0}, {95, 0, 95}, {95, 0, 135}, {95, 0, 175},
-	{95, 0, 215}, {95, 0, 255}, {95, 95, 0}, {95, 95, 95},
-	{95, 95, 135}, {95, 95, 175}, {95, 95, 215}, {95, 95, 255},
-	{95, 135, 0}, {95, 135, 95}, {95, 135, 135}, {95, 135, 175},
-	{95, 135, 215}, {95, 135, 255}, {95, 175, 0}, {95, 175, 95},
-	{95, 175, 135}, {95, 175, 175}, {95, 175, 215}, {95, 175, 255},
-	{95, 215, 0}, {95, 215, 95}, {95, 215, 135}, {95, 215, 175},
-	{95, 215, 215}, {95, 215, 255}, {95, 255, 0}, {95, 255, 95},
-	{95, 255, 135}, {95, 255, 175}, {95, 255, 215}, {95, 255, 255},
-	{135, 0, 0}, {135, 0, 95}, {135, 0, 135}, {135, 0, 175},
-	{135, 0, 215}, {135, 0, 255}, {135, 95, 0}, {135, 95, 95},
-	{135, 95, 135}, {135, 95, 175}, {135, 95, 215}, {135, 95, 255},
-	{135, 135, 0}, {135, 135, 95}, {135, 135, 135}, {135, 135, 175},
-	{135, 135, 215}, {135, 135, 255}, {135, 175, 0}, {135, 175, 95},
-	{135, 175, 135}, {135, 175, 175}, {135, 175, 215}, {135, 175, 255},
-	{135, 215, 0}, {135, 215, 95}, {135, 215, 135}, {135, 215, 175},
-	{135, 215, 215}, {135, 215, 255}, {135, 255, 0}, {135, 255, 95},
-	{135, 255, 135}, {135, 255, 175}, {135, 255, 215}, {135, 255, 255},
-	{175, 0, 0}, {175, 0, 95}, {175, 0, 135}, {175, 0, 175},
-	{175, 0, 215}, {175, 0, 255}, {175, 95, 0}, {175, 95, 95},
-	{175, 95, 135}, {175, 95, 175}, {175, 95, 215}, {175, 95, 255},
-	{175, 135, 0}, {175, 135, 95}, {175, 135, 135}, {175, 135, 175},
-	{175, 135, 215}, {175, 135, 255}, {175, 175, 0}, {175, 175, 95},
-	{175, 175, 135}, {175, 175, 175}, {175, 175, 215}, {175, 175, 255},
-	{175, 215, 0}, {175, 215, 95}, {175, 215, 135}, {175, 215, 175},
-	{175, 215, 215}, {175, 215, 255}, {175, 255, 0}, {175, 255, 95},
-	{175, 255, 135}, {175, 255, 175}, {175, 255, 215}, {175, 255, 255},
-	{215, 0, 0}, {215, 0, 95}, {215, 0, 135}, {215, 0, 175},
-	{215, 0, 215}, {215, 0, 255}, {215, 95, 0}, {215, 95, 95},
-	{215, 95, 135}, {215, 95, 175}, {215, 95, 215}, {215, 95, 255},
-	{215, 135, 0}, {215, 135, 95}, {215, 135, 135}, {215, 135, 175},
-	{215, 135, 215}, {215, 135, 255}, {215, 175, 0}, {215, 175, 95},
-	{215, 175, 135}, {215, 175, 175}, {215, 175, 215}, {215, 175, 255},
-	{215, 215, 0}, {215, 215, 95}, {215, 215, 135}, {215, 215, 175},
-	{215, 215, 215}, {215, 215, 255}, {215, 255, 0}, {215, 255, 95},
-	{215, 255, 135}, {215, 255, 175}, {215, 255, 215}, {215, 255, 255},
-	{255, 0, 0}, {255, 0, 95}, {255, 0, 135}, {255, 0, 175},
-	{255, 0, 215}, {255, 0, 255}, {255, 95, 0}, {255, 95, 95},
-	{255, 95, 135}, {255, 95, 175}, {255, 95, 215}, {255, 95, 255},
-	{255, 135, 0}, {255, 135, 95}, {255, 135, 135}, {255, 135, 175},
-	{255, 135, 215}, {255, 135, 255}, {255, 175, 0}, {255, 175, 95},
-	{255, 175, 135}, {255, 175, 175}, {255, 175, 215}, {255, 175, 255},
-	{255, 215, 0}, {255, 215, 95}, {255, 215, 135}, {255, 215, 175},
-	{255, 215, 215}, {255, 215, 255}, {255, 255, 0}, {255, 255, 95},
-	{255, 255, 135}, {255, 255, 175}, {255, 255, 215}, {255, 255, 255},
-	{8, 8, 8}, {18, 18, 18}, {28, 28, 28}, {38, 38, 38},
-	{48, 48, 48}, {58, 58, 58}, {68, 68, 68}, {78, 78, 78},
-	{88, 88, 88}, {98, 98, 98}, {108, 108, 108}, {118, 118, 118},
-	{128, 128, 128}, {138, 138, 138}, {148, 148, 148}, {158, 158, 158},
-	{168, 168, 168}, {178, 178, 178}, {188, 188, 188}, {198, 198, 198},
-	{208, 208, 208}, {218, 218, 218}, {228, 228, 228}, {238, 238, 238}, 
-
-	/* C64 colours */
-	/* Black, White, Red, Cyan, Purple, Green, Blue, Yellow */
-	/* Orange, Brown, Lt Red, Dk Grey, Grey, Lt Green, Lt Blue, Lt Grey */
-#if 0
-	/* Taken from CTerm source */
-	{0x00, 0x00, 0x00},	// Black
-	{0xFD, 0xFE, 0xFC},	// White
-	{0xBE, 0x1A, 0x24},	// Red
-	{0x30, 0xE6, 0xC6},	// Cyan
-	{0xB4, 0x1A, 0xE2},	// Purple
-	{0x1F, 0xD2, 0x1E},	// Green
-	{0x21, 0x1B, 0xAE},	// Blue
-	{0xDF, 0xF6, 0x0A},	// Yellow
-	{0xB8, 0x41, 0x04},	// Orange
-	{0x6A, 0x33, 0x04},	// Brown
-	{0xFE, 0x4A, 0x57},	// Light Red
-	{0x42, 0x45, 0x40},	// Dark Grey
-	{0x70, 0x74, 0x6F},	// Grey
-	{0x59, 0xFE, 0x59},	// Light Green
-	{0x5F, 0x53, 0xFE},	// Light Blue
-	{0xA4, 0xA7, 0xA2},	// Light Grey
-#else
-	/*
-	 * Taken from https://www.pepto.de/projects/colorvic/
-	 * a much more convincing source.
-	 */
-	{0x00, 0x00, 0x00},
-	{0xFF, 0xFF, 0xFF},
-	{0x81, 0x33, 0x38},
-	{0x75, 0xCE, 0xC8},
-	{0x8E, 0x3C, 0x97},
-	{0x56, 0xAC, 0x4D},
-	{0x2E, 0x2C, 0x9B},
-	{0xED, 0xF1, 0x71},
-	{0x8E, 0x50, 0x29},
-	{0x55, 0x38, 0x00},
-	{0xC4, 0x6C, 0x71},
-	{0x4A, 0x4A, 0x4A},
-	{0x7B, 0x7B, 0x7B},
-	{0xA9, 0xFF, 0x9F},
-	{0x70, 0x6D, 0xEB},
-	{0xB2, 0xB2, 0xB2},
-#endif
-
-	/* Atari Colours */
-	/* BG, FG */
-	{0, 81, 129}, {96, 183, 231},
-};
-
-int find_vmode(int mode)
-{
-    unsigned i;
-
-	for (i = 0; i < NUMMODES; i++)
-		if (vparams[i].mode == mode)
-			return i;
-
-	return -1;
-}
-
-struct vstat_vmem *get_vmem(struct video_stats *vs)
-{
-	vs->vmem->refcount++;
-	return vs->vmem;
-}
-
-void release_vmem(struct vstat_vmem *vm)
-{
-	if (vm == NULL)
-		return;
-	vm->refcount--;
-	if (vm->refcount == 0) {
-		FREE_AND_NULL(vm->vmem);
-		FREE_AND_NULL(vm);
-	}
-}
-
-static struct vstat_vmem *new_vmem(int cols, int rows, bool palette)
-{
-	struct vstat_vmem *ret = malloc(sizeof(struct vstat_vmem));
-
-	if (ret == NULL)
-		return ret;
-	ret->refcount = 1;
-	ret->vmem = malloc(cols*rows*sizeof(ret->vmem[0]));
-	if (ret->vmem == NULL) {
-		free(ret);
-		return NULL;
-	}
-	return ret;
-}
-
-int load_vmode(struct video_stats *vs, int mode)
-{
-	int i;
-
-	i=find_vmode(mode);
-	if(i==-1)
-		return(-1);
-	release_vmem(vs->vmem);
-	vs->vmem=new_vmem(vparams[i].cols, vparams[i].rows, vs->flags & VIDMODES_FLAG_PALETTE_VMEM);
-	if (vs->vmem == NULL)
-		return -1;
-	vs->rows=vparams[i].rows;
-	vs->cols=vparams[i].cols;
-	vs->curs_start=vparams[i].curs_start;
-	vs->curs_end=vparams[i].curs_end;
-	vs->default_curs_start=vparams[i].curs_start;
-	vs->default_curs_end=vparams[i].curs_end;
-	vs->curs_blinks=1;
-	vs->curs_visible=1;
-	vs->curs_row=1;
-	vs->curs_col=1;
-	vs->bright_background=vparams[i].flags & CIOLIB_VIDEO_BGBRIGHT;
-	vs->no_bright=vparams[i].flags & CIOLIB_VIDEO_NOBRIGHT;
-	vs->bright_altcharset=vparams[i].flags & CIOLIB_VIDEO_ALTCHARS;
-	vs->no_blink=vparams[i].flags & CIOLIB_VIDEO_NOBLINK;
-	vs->blink_altcharset=vparams[i].flags & CIOLIB_VIDEO_BLINKALTCHARS;
-	if (vparams[i].flags & CIOLIB_VIDEO_EXPAND)
-		vs->flags |= VIDMODES_FLAG_EXPAND;
-	else
-		vs->flags &= ~VIDMODES_FLAG_EXPAND;
-	if (vparams[i].flags & CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND)
-		vs->flags |= VIDMODES_FLAG_LINE_GRAPHICS_EXPAND;
-	else
-		vs->flags &= ~VIDMODES_FLAG_LINE_GRAPHICS_EXPAND;
-	if(vs->curs_row < 0)
-		vs->curs_row=0;
-	if(vs->curs_row >= vparams[i].rows)
-		vs->curs_row=vparams[i].rows-1;
-	if(vs->curs_col < 0)
-		vs->curs_col=0;
-	if(vs->curs_col >= vparams[i].cols)
-		vs->curs_col=vparams[i].cols-1;
-	memcpy(vs->palette, palettes[vparams[i].palette], sizeof(vs->palette));
-	vs->charheight=vparams[i].charheight;
-	vs->charwidth=vparams[i].charwidth;
-	vs->mode=mode;
-	vs->currattr = vparams[i].default_attr;
-	vs->aspect_width = vparams[i].aspect_width;
-	vs->aspect_height = vparams[i].aspect_height;
-	if (vs->aspect_width == 0 || vs->aspect_height == 0) {
-		vs->aspect_width = vs->scrnwidth;
-		vs->aspect_height = vs->scrnheight;
-	}
-	if (vparams[i].xres > 0)
-		vs->scrnwidth = vparams[i].xres;
-	else
-		vs->scrnwidth = vs->charwidth * vs->cols;
-	if (vparams[i].yres > 0)
-		vs->scrnheight = vparams[i].yres;
-	else
-		vs->scrnheight = vs->charheight * vs->rows;
-	vs->forced_font = NULL;
-	return(0);
-}
diff --git a/ciolib/vidmodes.h b/ciolib/vidmodes.h
deleted file mode 100644
index ebdcf38..0000000
--- a/ciolib/vidmodes.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* $Id: vidmodes.h,v 1.33 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _VIDMODES_H_
-#define _VIDMODES_H_
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-
-#define TOTAL_DAC_SIZE	274
-
-/* Entry type for the DAC table. */
-struct dac_colors {
-	unsigned char red;
-	unsigned char green;
-	unsigned char blue;
-};
-
-struct  video_params {
-	int	mode;
-	int palette;
-	int	cols;
-	int rows;
-	int	curs_start;
-	int curs_end;
-	int charheight;
-	int charwidth;
-	int	default_attr;
-	int	flags;
-	int	aspect_width;
-	int	aspect_height;
-	int	xres;
-	int	yres;
-};
-
-struct vstat_vmem {
-	unsigned refcount;
-	struct vmem_cell *vmem;
-};
-
-struct video_stats {
-	int rows;
-	int cols;
-	int curs_row;
-	int curs_col;
-	int curs_start;
-	int curs_end;
-	int curs_blinks;
-	int curs_visible;
-	int default_curs_start;
-	int default_curs_end;
-	int mode;
-	int charheight;
-	int charwidth;
-	int bright_background;
-	int blink;
-	int curs_blink;
-	int no_bright;
-	int no_blink;
-	int bright_altcharset;
-	int blink_altcharset;
-	int currattr;
-	int scaling;
-	int scrnwidth;
-	int scrnheight;
-	int winwidth;
-	int winheight;
-	int aspect_width;
-	int aspect_height;
-	uint32_t flags;
-#define VIDMODES_FLAG_PALETTE_VMEM         1
-#define VIDMODES_FLAG_EXPAND               2
-#define VIDMODES_FLAG_LINE_GRAPHICS_EXPAND 4
-	uint32_t palette[16];
-	struct vstat_vmem *vmem;
-	uint8_t *forced_font;
-};
-
-enum {
-	 MONO_PALETTE
-	,GREYSCALE_PALETTE
-	,COLOUR_PALETTE
-	,C64_PALETTE
-	,ATARI_PALETTE
-};
-
-extern struct video_params vparams[56];
-#define NUMMODES      (sizeof(vparams) / sizeof(struct video_params))
-extern uint32_t palettes[5][16];
-extern struct dac_colors dac_default[TOTAL_DAC_SIZE];
-extern char vga_font_bitmap[4096];
-extern char vga_font_bitmap14[3584];
-extern char vga_font_bitmap8[2048];
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int find_vmode(int mode);
-struct vstat_vmem *get_vmem(struct video_stats *vs);
-void release_vmem(struct vstat_vmem *vm);
-int load_vmode(struct video_stats *vs, int mode);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/win32cio.c b/ciolib/win32cio.c
deleted file mode 100644
index e1c4ac8..0000000
--- a/ciolib/win32cio.c
+++ /dev/null
@@ -1,934 +0,0 @@
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <windows.h>	/* INPUT_RECORD, etc. */
-#include <genwrap.h>
-#include <stdio.h>		/* stdin */
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include "ciolib.h"
-#include "vidmodes.h"
-#include "win32cio.h"
-
-struct keyvals {
-	int	VirtualKeyCode
-		,Key
-		,Shift
-		,CTRL
-		,ALT;
-};
-
-CIOLIBEXPORTVAR const struct keyvals keyval[] =
-{
-	{VK_BACK, 0x08, 0x08, 0x7f, 0x0e00},
-	{VK_TAB, 0x09, 0x0f00, 0x9400, 0xa500},
-	{VK_RETURN, 0x0d, 0x0d, 0x0a, 0xa600},
-	{VK_ESCAPE, 0x1b, 0x1b, 0x1b, 0x0100},
-	{VK_SPACE, 0x20, 0x20, 0x0300, 0x20,},
-	{'0', '0', ')', 0, 0x8100},
-	{'1', '1', '!', 0, 0x7800},
-	{'2', '2', '@', 0x0300, 0x7900},
-	{'3', '3', '#', 0, 0x7a00},
-	{'4', '4', '$', 0, 0x7b00},
-	{'5', '5', '%', 0, 0x7c00},
-	{'6', '6', '^', 0x1e, 0x7d00},
-	{'7', '7', '&', 0, 0x7e00},
-	{'8', '8', '*', 0, 0x7f00},
-	{'9', '9', '(', 0, 0x8000},
-	{'A', 'a', 'A', 0x01, 0x1e00},
-	{'B', 'b', 'B', 0x02, 0x3000},
-	{'C', 'c', 'C', 0x03, 0x2e00},
-	{'D', 'd', 'D', 0x04, 0x2000},
-	{'E', 'e', 'E', 0x05, 0x1200},
-	{'F', 'f', 'F', 0x06, 0x2100},
-	{'G', 'g', 'G', 0x07, 0x2200},
-	{'H', 'h', 'H', 0x08, 0x2300},
-	{'I', 'i', 'I', 0x09, 0x1700},
-	{'J', 'j', 'J', 0x0a, 0x2400},
-	{'K', 'k', 'K', 0x0b, 0x2500},
-	{'L', 'l', 'L', 0x0c, 0x2600},
-	{'M', 'm', 'M', 0x0d, 0x3200},
-	{'N', 'n', 'N', 0x0e, 0x3100},
-	{'O', 'o', 'O', 0x0f, 0x1800},
-	{'P', 'p', 'P', 0x10, 0x1900},
-	{'Q', 'q', 'Q', 0x11, 0x1000},
-	{'R', 'r', 'R', 0x12, 0x1300},
-	{'S', 's', 'S', 0x13, 0x1f00},
-	{'T', 't', 'T', 0x14, 0x1400},
-	{'U', 'u', 'U', 0x15, 0x1600},
-	{'V', 'v', 'V', 0x16, 0x2f00},
-	{'W', 'w', 'W', 0x17, 0x1100},
-	{'X', 'x', 'X', 0x18, 0x2d00},
-	{'Y', 'y', 'Y', 0x19, 0x1500},
-	{'Z', 'z', 'Z', 0x1a, 0x2c00},
-	{VK_PRIOR, 0x4900, 0x4900, 0x8400, 0x9900},
-	{VK_NEXT, 0x5100, 0x5100, 0x7600, 0xa100},
-	{VK_END, 0x4f00, 0x4f00, 0x7500, 0x9f00},
-	{VK_HOME, 0x4700, 0x4700, 0x7700, 0x9700},
-	{VK_LEFT, 0x4b00, 0x4b00, 0x7300, 0x9b00},
-	{VK_UP, 0x4800, 0x4800, 0x8d00, 0x9800},
-	{VK_RIGHT, 0x4d00, 0x4d00, 0x7400, 0x9d00},
-	{VK_DOWN, 0x5000, 0x5000, 0x9100, 0xa000},
-	{VK_INSERT, CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC},
-	{VK_DELETE, CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_CTRL_IC},
-	{VK_NUMPAD0, '0', 0x5200, 0x9200, 0},
-	{VK_NUMPAD1, '1', 0x4f00, 0x7500, 0},
-	{VK_NUMPAD2, '2', 0x5000, 0x9100, 0},
-	{VK_NUMPAD3, '3', 0x5100, 0x7600, 0},
-	{VK_NUMPAD4, '4', 0x4b00, 0x7300, 0},
-	{VK_NUMPAD5, '5', 0x4c00, 0x8f00, 0},
-	{VK_NUMPAD6, '6', 0x4d00, 0x7400, 0},
-	{VK_NUMPAD7, '7', 0x4700, 0x7700, 0},
-	{VK_NUMPAD8, '8', 0x4800, 0x8d00, 0},
-	{VK_NUMPAD9, '9', 0x4900, 0x8400, 0},
-	{VK_MULTIPLY, '*', '*', 0x9600, 0x3700},
-	{VK_ADD, '+', '+', 0x9000, 0x4e00},
-	{VK_SUBTRACT, '-', '-', 0x8e00, 0x4a00},
-	{VK_DECIMAL, '.', '.', 0x5300, 0x9300},
-	{VK_DIVIDE, '/', '/', 0x9500, 0xa400},
-	{VK_F1, 0x3b00, 0x5400, 0x5e00, 0x6800},
-	{VK_F2, 0x3c00, 0x5500, 0x5f00, 0x6900},
-	{VK_F3, 0x3d00, 0x5600, 0x6000, 0x6a00},
-	{VK_F4, 0x3e00, 0x5700, 0x6100, 0x6b00},
-	{VK_F5, 0x3f00, 0x5800, 0x6200, 0x6c00},
-	{VK_F6, 0x4000, 0x5900, 0x6300, 0x6d00},
-	{VK_F7, 0x4100, 0x5a00, 0x6400, 0x6e00},
-	{VK_F8, 0x4200, 0x5b00, 0x6500, 0x6f00},
-	{VK_F9, 0x4300, 0x5c00, 0x6600, 0x7000},
-	{VK_F10, 0x4400, 0x5d00, 0x6700, 0x7100},
-	{VK_F11, 0x8500, 0x8700, 0x8900, 0x8b00},
-	{VK_F12, 0x8600, 0x8800, 0x8a00, 0x8c00},
-	{0xdc, '\\', '|', 0x1c, 0x2b00},
-	{0xbf, '/', '?', 0, 0x3500},
-	{0xbd, '-', '_', 0x1f, 0x8200},
-	{0xbb, '=', '+', 0, 0x8300},
-	{0xdb, '[', '{', 0x1b, 0x1a00},
-	{0xdd, ']', '}', 0x1d, 0x1b00},
-	{0xba, ';', ':', 0, 0x2700},
-	{0xde, '\'', '"', 0, 0x2800},
-	{0xbc, ',', '<', 0, 0x3300},
-	{0xbe, '.', '>', 0, 0x3400},
-	{0xc0, '`', '~', 0, 0x2900},
-	{0, 0, 0, 0, 0}	/** END **/
-};
-
-/* Mouse related stuff */
-static int domouse=1;
-static DWORD last_state=0;
-static int LastX=-1, LastY=-1;
-
-static int modeidx=3;
-
-#if defined(_DEBUG)
-static void dputs(const char* str)
-{
-	char msg[1024];
-
-	SAFEPRINTF(msg,"%s\r\n",str);
-	OutputDebugString(msg);
-}
-#endif
-
-static void dprintf(const char* fmt, ...)
-{
-#if defined(_DEBUG)
-	va_list argptr;
-	char sbuf[1024];
-
-    va_start(argptr,fmt);
-    vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
-	sbuf[sizeof(sbuf)-1]=0;
-    va_end(argptr);
-    dputs(sbuf);
-#endif /* _DEBUG */
-}
-
-static WORD DOStoWinAttr(int newattr)
-{
-	WORD ret=0;
-
-	if(newattr&0x01)
-		ret|=FOREGROUND_BLUE;
-	if(newattr&0x02)
-		ret|=FOREGROUND_GREEN;
-	if(newattr&0x04)
-		ret|=FOREGROUND_RED;
-	if(newattr&0x08)
-		ret|=FOREGROUND_INTENSITY;
-	if(newattr&0x10)
-		ret|=BACKGROUND_BLUE;
-	if(newattr&0x20)
-		ret|=BACKGROUND_GREEN;
-	if(newattr&0x40)
-		ret|=BACKGROUND_RED;
-	if(newattr&0x80)
-		ret|=BACKGROUND_INTENSITY;
-	return(ret);
-}
-
-static unsigned char WintoDOSAttr(WORD newattr)
-{
-	unsigned char ret=0;
-
-	if(newattr&FOREGROUND_BLUE)
-		ret|=0x01;
-	if(newattr&FOREGROUND_GREEN)
-		ret|=0x02;
-	if(newattr&FOREGROUND_RED)
-		ret|=0x04;
-	if(newattr&FOREGROUND_INTENSITY)
-		ret|=0x08;
-	if(newattr&BACKGROUND_BLUE)
-		ret|=0x10;
-	if(newattr&BACKGROUND_GREEN)
-		ret|=0x20;
-	if(newattr&BACKGROUND_RED)
-		ret|=0x40;
-	if(newattr&BACKGROUND_INTENSITY)
-		ret|=0x80;
-	return(ret);
-}
-
-static int win32_getchcode(WORD code, DWORD state)
-{
-	int i;
-
-	for(i=0;keyval[i].Key;i++) {
-		if(keyval[i].VirtualKeyCode==code) {
-			if(state & (RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED))
-				return(keyval[i].ALT);
-			if(state & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED))
-				return(keyval[i].CTRL);
-			if((state & (CAPSLOCK_ON)) && isalpha(keyval[i].Key)) {
-				if(!(state & SHIFT_PRESSED))
-					return(keyval[i].Shift);
-			}
-			else {
-				if(state & (SHIFT_PRESSED))
-					return(keyval[i].Shift);
-			}
-			return(keyval[i].Key);
-		}
-	}
-	return(0);
-}
-
-static int win32_keyboardio(int isgetch)
-{
-	INPUT_RECORD input;
-	DWORD num=0;
-	HANDLE h;
-	static WORD lastch;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return(0);
-
-	while(1) {
-		if(lastch) {
-			if(isgetch) {
-				BYTE ch;
-				ch=lastch&0xff;
-				lastch>>=8;
-				return(ch);
-			}
-			else
-				return(TRUE);
-		}
-
-		while(1) {
-			GetNumberOfConsoleInputEvents(h, &num);
-			if(num)
-				break;
-			if(mouse_trywait()) {
-				lastch=CIO_KEY_MOUSE;
-				break;
-			}
-			if(isgetch)
-				SLEEP(1);
-			else
-				return(FALSE);
-		}
-
-		if(lastch)
-			continue;
-
-		if(!ReadConsoleInput(h, &input, 1, &num)
-				|| !num || (input.EventType!=KEY_EVENT && input.EventType!=MOUSE_EVENT))
-			continue;
-
-		switch(input.EventType) {
-			case KEY_EVENT:
-
-#ifdef DEBUG_KEY_EVENTS
-				dprintf("KEY_EVENT: KeyDown=%u"
-					,input.Event.KeyEvent.bKeyDown);
-				dprintf("           RepeatCount=%u"
-					,input.Event.KeyEvent.wRepeatCount);
-				dprintf("           VirtualKeyCode=0x%04hX"
-					,input.Event.KeyEvent.wVirtualKeyCode);
-				dprintf("           VirtualScanCode=0x%04hX"
-					,input.Event.KeyEvent.wVirtualScanCode);
-				dprintf("           uChar.AsciiChar=0x%02X (%u)"
-					,(BYTE)input.Event.KeyEvent.uChar.AsciiChar
-					,(BYTE)input.Event.KeyEvent.uChar.AsciiChar);
-				dprintf("           ControlKeyState=0x%08lX"
-					,input.Event.KeyEvent.dwControlKeyState); 
-#endif
-
-				if(input.Event.KeyEvent.bKeyDown) {
-					/* Is this an AltGr key? */
-					if(((input.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED)) == (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED))
-							&& (BYTE)input.Event.KeyEvent.uChar.AsciiChar) {
-						lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-					}
-					/* Is this a modified char? */
-					else if((input.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED|RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED|ENHANCED_KEY))
-							|| (input.Event.KeyEvent.wVirtualKeyCode >= VK_F1 && input.Event.KeyEvent.wVirtualKeyCode <= VK_F24)
-							|| !input.Event.KeyEvent.uChar.AsciiChar) {
-						lastch=win32_getchcode(input.Event.KeyEvent.wVirtualKeyCode, input.Event.KeyEvent.dwControlKeyState);
-					}
-					/* Must be a normal char then! */
-					else {
-						lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-					}
-				} else if(input.Event.KeyEvent.wVirtualKeyCode == VK_MENU)
-					lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-
-				break;
-			case MOUSE_EVENT:
-				if(domouse) {
-					if(input.Event.MouseEvent.dwMousePosition.X+1 != LastX || input.Event.MouseEvent.dwMousePosition.Y+1 != LastY) {
-						LastX=input.Event.MouseEvent.dwMousePosition.X+1;
-						LastY=input.Event.MouseEvent.dwMousePosition.Y+1;
-						ciomouse_gotevent(CIOLIB_MOUSE_MOVE,LastX,LastY, -1, -1);
-					}
-					if (input.Event.MouseEvent.dwEventFlags == 0) {
-						if(last_state != input.Event.MouseEvent.dwButtonState) {
-							switch(input.Event.MouseEvent.dwButtonState ^ last_state) {
-								case FROM_LEFT_1ST_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-								case FROM_LEFT_2ND_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_2ND_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-								case RIGHTMOST_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-							}
-							last_state=input.Event.MouseEvent.dwButtonState;
-						}
-					}
-					else if (input.Event.MouseEvent.dwEventFlags == MOUSE_WHEELED) {
-						// If the high word of the dwButtonState member contains a positive value... ARGH!
-						if (input.Event.MouseEvent.dwButtonState & 0x80000000) {
-							ciomouse_gotevent(CIOLIB_BUTTON_5_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-						}
-						else {
-							ciomouse_gotevent(CIOLIB_BUTTON_4_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-						}
-					}
-				}
-		}
-	}
-}
-
-int win32_kbhit(void)
-{
-	return(win32_keyboardio(FALSE));
-}
-
-int win32_getch(void)
-{
-	int ret=win32_keyboardio(TRUE);
-	dprintf("win32_getch = 0x%02X (%u)", (BYTE)ret, (BYTE)ret);
-	return(ret);
-}
-
-#ifndef ENABLE_EXTENDED_FLAGS
-#define ENABLE_INSERT_MODE		0x0020
-#define ENABLE_QUICK_EDIT_MODE	0x0040
-#define ENABLE_EXTENDED_FLAGS	0x0080
-#define ENABLE_AUTO_POSITION	0x0100
-#endif
-
-static DWORD	orig_in_conmode=0;
-static DWORD	orig_out_conmode=0;
-static void *	win32_suspendbuf=NULL;
-
-#ifndef CONSOLE_FULLSCREEN_MODE
-/* SetConsoleDisplayMode parameter value */
-#define CONSOLE_FULLSCREEN_MODE	1		// Text is displayed in full-screen mode.
-#define CONSOLE_WINDOWED_MODE	2		// Text is displayed in a console window.
-#endif
-
-static DWORD	orig_display_mode=0;
-
-/*-----------------------------------------------------------------------------
-NT_SetConsoleDisplayMode - Set the console display to fullscreen or windowed.
-
-Parameters:
-    hOutputHandle - Output handle of cosole, usually 
-                        "GetStdHandle(STD_OUTPUT_HANDLE)"
-    dwNewMode - 0=windowed, 1=fullscreen
-
-Returns Values: 
-    TRUE if successful, otherwise FALSE is returned. Call GetLastError() for 
-    extened information.
-
-Remarks:
-    This only works on NT based versions of Windows.
-
-    If dwNewMode is anything other than 0 or 1, FALSE is returned and 
-    GetLastError() returns ERROR_INVALID_PARAMETER.
-    
-    If dwNewMode specfies the current mode, FALSE is returned and 
-    GetLastError() returns ERROR_INVALID_PARAMETER. Use the (documented) 
-    function GetConsoleDisplayMode() to determine the current display mode.
------------------------------------------------------------------------------*/
-BOOL NT_SetConsoleDisplayMode(HANDLE hOutputHandle, DWORD dwNewMode)
-{
-    typedef BOOL (WINAPI *SCDMProc_t) (HANDLE, DWORD, LPDWORD);
-    SCDMProc_t SetConsoleDisplayMode;
-    HMODULE hKernel32;
-    BOOL	ret;
-    const char KERNEL32_NAME[] = "kernel32.dll";
-
-    hKernel32 = LoadLibrary(KERNEL32_NAME);
-    if (hKernel32 == NULL)
-        return FALSE;
-
-    SetConsoleDisplayMode = 
-        (SCDMProc_t)GetProcAddress(hKernel32, "SetConsoleDisplayMode");
-    if (SetConsoleDisplayMode == NULL)
-    {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        ret = FALSE;
-    }
-    else
-    {
-        DWORD dummy=0;
-        ret = SetConsoleDisplayMode(hOutputHandle, dwNewMode, &dummy);
-		dprintf("SetConsoleDisplayMode(%d) returned %d", dwNewMode, ret);
-    }
-        
-    FreeLibrary(hKernel32);
-
-	return ret;
-}
-
-BOOL NT_GetConsoleDisplayMode(DWORD* mode)
-{
-    typedef BOOL (WINAPI *GCDMProc_t) (LPDWORD);
-    GCDMProc_t GetConsoleDisplayMode;
-    HMODULE hKernel32;
-    BOOL	ret;
-    const char KERNEL32_NAME[] = "kernel32.dll";
-
-    hKernel32 = LoadLibrary(KERNEL32_NAME);
-    if (hKernel32 == NULL)
-        return FALSE;
-
-    GetConsoleDisplayMode = 
-        (GCDMProc_t)GetProcAddress(hKernel32, "GetConsoleDisplayMode");
-    if (GetConsoleDisplayMode == NULL)
-    {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        ret = FALSE;
-    }
-    else
-    {
-        ret = GetConsoleDisplayMode(mode);
-		dprintf("GetConsoleDisplayMode() returned %d (%d)", ret, *mode);
-    }
-        
-    FreeLibrary(hKernel32);
-
-	return ret;
-}
-
-
-void RestoreDisplayMode(void)
-{
-	if(orig_display_mode==0)
-		NT_SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),CONSOLE_WINDOWED_MODE);
-}
-
-void win32_suspend(void)
-{
-	HANDLE h;
-
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, orig_out_conmode);
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, orig_in_conmode);
-}
-
-void win32_resume(void)
-{
-	DWORD	conmode;
-	HANDLE	h;
-
-	conmode=ENABLE_MOUSE_INPUT|ENABLE_EXTENDED_FLAGS;
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, conmode);
-
-    conmode=orig_out_conmode;
-    conmode&=~ENABLE_PROCESSED_OUTPUT;
-    conmode&=~ENABLE_WRAP_AT_EOL_OUTPUT;
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, conmode);
-}
-
-static BOOL WINAPI ControlHandler(unsigned long CtrlType)
-{
-	return TRUE;
-}
-
-int win32_initciolib(long inmode)
-{
-	DWORD	conmode;
-	HANDLE	h;
-	CONSOLE_SCREEN_BUFFER_INFO	sbuff;
-
-	dprintf("win32_initciolib(%u)", inmode);
-	if(!isatty(fileno(stdin))) {
-		if(!AllocConsole())
-			return(0);
-	}
-
-	SetConsoleCtrlHandler(ControlHandler,TRUE);
-	if((h=GetStdHandle(STD_INPUT_HANDLE))==INVALID_HANDLE_VALUE
-		|| !GetConsoleMode(h, &orig_in_conmode))
-		return(0);
-	conmode=ENABLE_MOUSE_INPUT|ENABLE_EXTENDED_FLAGS;
-	if(!SetConsoleMode(h, conmode))
-		return(0);
-
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE))==INVALID_HANDLE_VALUE
-		|| !GetConsoleMode(h, &orig_out_conmode))
-		return(0);
-	conmode=orig_out_conmode;
-	conmode&=~ENABLE_PROCESSED_OUTPUT;
-	conmode&=~ENABLE_WRAP_AT_EOL_OUTPUT;
-	if(!SetConsoleMode(h, conmode))
-		return(0);
-
-	if(GetConsoleScreenBufferInfo(h, &sbuff)==0) {
-		win32_textmode(C80);	// TODO: This likely won't work...
-	}
-	else {
-		/* Switch to closest mode to current screen size */
-		unsigned screenwidth = sbuff.srWindow.Right - sbuff.srWindow.Left + 1;
-		unsigned screenheight = sbuff.srWindow.Bottom - sbuff.srWindow.Top + 1;
-		if (screenwidth > 0xff)
-			cio_textinfo.screenwidth = 0xff;
-		else
-			cio_textinfo.screenwidth = screenwidth;
-		if (screenheight > 0xff)
-			cio_textinfo.screenheight = 0xff;
-		else
-			cio_textinfo.screenheight = screenheight;
-
-		if(cio_textinfo.screenwidth>=132) {
-			if(cio_textinfo.screenheight<25)
-				win32_textmode(VESA_132X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(VESA_132X25);
-			else if(cio_textinfo.screenheight<30)
-				win32_textmode(VESA_132X28);
-			else if(cio_textinfo.screenheight<34)
-				win32_textmode(VESA_132X30);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(VESA_132X34);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(VESA_132X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(VESA_132X50);
-			else
-				win32_textmode(VESA_132X60);
-		}
-		else if(cio_textinfo.screenwidth>=80) {
-			if(cio_textinfo.screenheight<21)
-				win32_textmode(C80X14);
-			else if(cio_textinfo.screenheight<25)
-				win32_textmode(C80X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(C80);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(C80X28);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(C80X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(C80X50);
-			else
-				win32_textmode(C80X60);
-		}
-		else {
-			if(cio_textinfo.screenheight<21)
-				win32_textmode(C40X14);
-			else if(cio_textinfo.screenheight<25)
-				win32_textmode(C40X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(C40);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(C40X28);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(C40X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(C40X50);
-			else
-				win32_textmode(C40X60);
-		}
-	}
-
-	NT_GetConsoleDisplayMode(&orig_display_mode);
-	if(inmode==CIOLIB_MODE_CONIO_FULLSCREEN) {
-		NT_SetConsoleDisplayMode(h,CONSOLE_FULLSCREEN_MODE);
-		atexit(RestoreDisplayMode);
-	}
-	cio_api.mouse=1;
-	cio_api.options = CONIO_OPT_BRIGHT_BACKGROUND | CONIO_OPT_CUSTOM_CURSOR | CONIO_OPT_SET_TITLE;
-	return(1);
-}
-
-int win32_hidemouse(void)
-{
-	/* domouse=0; */
-	return(0);
-}
-
-int win32_showmouse(void)
-{
-	/* domouse=1; */
-	return(0);
-}
-
-void win32_textmode(int mode)
-{
-	int		i;
-	HANDLE	h;
-	COORD	sz;
-	SMALL_RECT	rc;
-#if 0
-	CONSOLE_SCREEN_BUFFER_INFOEX	bi;
-#endif
-
-	for(i=0;i<NUMMODES;i++) {
-		if(vparams[i].mode==mode)
-			modeidx=i;
-	}
-	sz.X = cio_textinfo.screenwidth > vparams[modeidx].cols ? cio_textinfo.screenwidth : vparams[modeidx].cols;
-	sz.Y = cio_textinfo.screenheight > vparams[modeidx].rows ? cio_textinfo.screenheight : vparams[modeidx].rows;
-	rc.Left=0;
-	rc.Right=vparams[modeidx].cols-1;
-	rc.Top=0;
-	rc.Bottom=vparams[modeidx].rows-1;
-
-	if ((h=GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-	if (!SetConsoleScreenBufferSize(h,sz))
-		return;	// Note: This fails and returns here with large windows (e.g. width > 255)
-	if (!SetConsoleWindowInfo(h,TRUE,&rc))
-		return;
-	sz.X=vparams[modeidx].cols;
-	sz.Y=vparams[modeidx].rows;
-	if (!SetConsoleScreenBufferSize(h,sz))
-		return;
-
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.currmode=vparams[modeidx].mode;
-	cio_textinfo.screenheight=(unsigned char)sz.Y;
-	cio_textinfo.screenwidth=(unsigned char)sz.X;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-#if 0
-	if (GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi)) {
-		for (i = 0; i < 16; i++) {
-			bi.ColorTable[] = RGB(dac_default[palettes[vparams[modeidx]][i]].red, dac_default[palettes[vparams[modeidx].palette][i]].green, dac_default[palettes[vparams[modeidx]][i]].blue);
-		}
-		if (SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi)) {
-			cio_api.options |= CONIO_OPT_PALETTE_SETTING;
-		}
-	}
-#endif
-}
-
-int win32_gettext(int left, int top, int right, int bottom, void* buf)
-{
-	CHAR_INFO *ci;
-	int	x;
-	int	y;
-	COORD	bs;
-	COORD	bc;
-	HANDLE	h;
-	SMALL_RECT	reg;
-	unsigned char	*bu;
-
-	bu=buf;
-	bs.X=right-left+1;
-	bs.Y=bottom-top+1;
-	bc.X=0;
-	bc.Y=0;
-	reg.Left=left-1;
-	reg.Right=right-1;
-	reg.Top=top-1;
-	reg.Bottom=bottom-1;
-	ci=(CHAR_INFO *)alloca(sizeof(CHAR_INFO)*(bs.X*bs.Y));
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return 0; // failure
-	ReadConsoleOutput(h,ci,bs,bc,&reg);
-	for(y=0;y<=(bottom-top);y++) {
-		for(x=0;x<=(right-left);x++) {
-			bu[((y*bs.X)+x)*2]=ci[(y*bs.X)+x].Char.AsciiChar;
-			bu[(((y*bs.X)+x)*2)+1]=WintoDOSAttr(ci[(y*bs.X)+x].Attributes);
-		}
-	}
-	return 1;
-}
-
-void win32_gotoxy(int x, int y)
-{
-	COORD	cp;
-	HANDLE	h;
-	static int curx=-1;
-	static int cury=-1;
-
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-	cp.X=cio_textinfo.winleft+x-2;
-	cp.Y=cio_textinfo.wintop+y-2;
-	if(cp.X != curx || cp.Y != cury) {
-		if(!hold_update && (h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE) {
-			SetConsoleCursorPosition(h,cp);
-			curx=cp.X;
-			cury=cp.Y;
-		}
-	}
-}
-
-int win32_puttext(int left, int top, int right, int bottom, void* buf)
-{
-	CHAR_INFO *ci;
-	int	x;
-	int	y;
-	HANDLE	h;
-	COORD	bs;
-	COORD	bc;
-	SMALL_RECT	reg;
-	unsigned char	*bu;
-
-	bu=buf;
-	bs.X=right-left+1;
-	bs.Y=bottom-top+1;
-	bc.X=0;
-	bc.Y=0;
-	reg.Left=left-1;
-	reg.Right=right-1;
-	reg.Top=top-1;
-	reg.Bottom=bottom-1;
-	ci=(CHAR_INFO *)alloca(sizeof(CHAR_INFO)*(bs.X*bs.Y));
-	for(y=0;y<bs.Y;y++) {
-		for(x=0;x<bs.X;x++) {
-			ci[(y*bs.X)+x].Char.AsciiChar=bu[((y*bs.X)+x)*2];
-			ci[(y*bs.X)+x].Attributes=DOStoWinAttr(bu[(((y*bs.X)+x)*2)+1]);
-		}
-	}
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		WriteConsoleOutput(h,ci,bs,bc,&reg);
-	return 1;
-}
-
-void win32_setcursortype(int type)
-{
-	HANDLE h;
-	CONSOLE_CURSOR_INFO	ci;
-
-	switch(type) {
-		case _NOCURSOR:
-			ci.bVisible=FALSE;
-			ci.dwSize=1;
-			break;
-		
-		case _SOLIDCURSOR:
-			ci.bVisible=TRUE;
-			ci.dwSize=99;
-			break;
-		
-		default:	/* Normal cursor */
-			ci.bVisible=TRUE;
-			ci.dwSize=13;
-			break;
-	}
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleCursorInfo(h,&ci);
-}
-
-void win32_settitle(const char *title)
-{
-	SetConsoleTitle(title);
-}
-
-void win32_copytext(const char *text, size_t buflen)
-{
-	HGLOBAL	clipbuf;
-	LPWSTR	clip;
-	int new_buflen = MultiByteToWideChar(CP_UTF8, 0, text, buflen, NULL, 0);
-
-	new_buflen = MultiByteToWideChar(CP_UTF8, 0, text, buflen, NULL, 0);
-	if (new_buflen == 0) {
-		return;
-	}
-	clipbuf=GlobalAlloc(GMEM_MOVEABLE, new_buflen * sizeof(WCHAR));
-	if (clipbuf == NULL) {
-		return;
-	}
-	clip=GlobalLock(clipbuf);
-	if (MultiByteToWideChar(CP_UTF8, 0, text, buflen, clip, new_buflen) != new_buflen) {
-		GlobalUnlock(clipbuf);
-		GlobalFree(clipbuf);
-		return;
-	}
-	GlobalUnlock(clipbuf);
-	if(!OpenClipboard(NULL)) {
-		GlobalFree(clipbuf);
-		return;
-	}
-	EmptyClipboard();
-	if (SetClipboardData(CF_UNICODETEXT, clipbuf) == NULL) {
-		GlobalFree(clipbuf);
-	}
-	CloseClipboard();
-}
-
-char *win32_getcliptext(void)
-{
-	HGLOBAL	clipbuf;
-	LPWSTR	clip;
-	char *ret = NULL;
-	int u8sz;
-
-	if (!IsClipboardFormatAvailable(CF_UNICODETEXT))
-		return(NULL);
-	if (!OpenClipboard(NULL))
-		return(NULL);
-	clipbuf = GetClipboardData(CF_UNICODETEXT);
-	if (clipbuf != NULL) {
-		clip = GlobalLock(clipbuf);
-		if (clip != NULL) {
-			u8sz = WideCharToMultiByte(CP_UTF8, 0, clip, -1, NULL, 0, NULL, NULL);
-			if (u8sz > 0) {
-				ret = (char *)malloc(u8sz);
-				if(ret != NULL) {
-					if (WideCharToMultiByte(CP_UTF8, 0, clip, -1, ret, u8sz, NULL, NULL) == 0)
-						FREE_AND_NULL(ret);
-				}
-			}
-			GlobalUnlock(clipbuf);
-		}
-	}
-	CloseClipboard();
-
-	return(ret);
-}
-
-void win32_getcustomcursor(int *s, int *e, int *r, int *b, int *v)
-{
-	CONSOLE_CURSOR_INFO	ci;
-	HANDLE				h;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-
-	GetConsoleCursorInfo(h, &ci);
-	if(s)
-		*s=100-ci.dwSize;
-	if(e)
-		*e=99;
-	if(r)
-		*r=100;
-	if(b)
-		*b=1;
-	if(v)
-		*v=ci.bVisible?1:0;
-}
-
-void win32_setcustomcursor(int s, int e, int r, int b, int v)
-{
-	CONSOLE_CURSOR_INFO	ci;
-	HANDLE				h;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-
-	ci.bVisible=v;
-	if(e>s)
-		ci.bVisible=0;
-	else {
-		if(r>0)
-			ci.dwSize=(1+e-s)/r;
-		else
-			ci.dwSize=100;
-	}
-}
-
-int win32_getvideoflags(void)
-{
-	DWORD	mode;
-
-	if(!NT_GetConsoleDisplayMode(&mode))
-		return(CIOLIB_VIDEO_BGBRIGHT);
-	if(mode==CONSOLE_FULLSCREEN_MODE)
-		return(0);
-	return(CIOLIB_VIDEO_BGBRIGHT);
-}
-
-int win32_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-#if 0
-	CONSOLE_SCREEN_BUFFER_INFOEX	bi;
-
-	if (entry > 15)
-		return 0;
-
-	if (!GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi))
-		return 0;
-
-	bi.ColorTable[entry] = RGB(r >> 8, g >> 8, b >> 8);
-	if (!SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi))
-		return 0;
-#endif
-
-	return 1;
-}
diff --git a/ciolib/win32cio.h b/ciolib/win32cio.h
deleted file mode 100644
index 79ad4be..0000000
--- a/ciolib/win32cio.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $Id: win32cio.h,v 1.15 2018/07/24 01:10:58 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _WIN32CIO_H_
-#define _WIN32CIO_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int win32_kbhit(void);
-int win32_getch(void);
-int win32_getmouse(struct cio_mouse_event *mevent);
-int win32_hidemouse(void);
-int win32_showmouse(void);
-
-int	win32_gettext(int left, int top, int right, int bottom, void*);
-void	win32_gotoxy(int x, int y);
-int	win32_puttext(int left, int top, int right, int bottom, void*);
-void	win32_textmode(int newmode);
-void	win32_setcursortype(int);
-int	win32_getch(void);
-int	win32_kbhit(void);
-void	win32_settitle(const char *title);
-int	win32_initciolib(long inmode);
-void win32_copytext(const char *text, size_t buflen);
-char *win32_getcliptext(void);
-void	win32_suspend(void);
-void	win32_resume(void);
-void win32_getcustomcursor(int *s, int *e, int *r, int *b, int *v);
-void win32_setcustomcursor(int s, int e, int r, int b, int v);
-int win32_getvideoflags(void);
-int win32_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/x_cio.c b/ciolib/x_cio.c
deleted file mode 100644
index 1146a65..0000000
--- a/ciolib/x_cio.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/* $Id: x_cio.c,v 1.56 2020/05/07 20:26:51 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <locale.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <threadwrap.h>
-#include <xp_dl.h>
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "x_cio.h"
-#include "x_events.h"
-
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-
-int x_kbhit(void)
-{
-	fd_set	rfd;
-	struct timeval tv;
-
-	memset(&tv, 0, sizeof(tv));
-	FD_ZERO(&rfd);
-	FD_SET(key_pipe[0], &rfd);
-	return(select(key_pipe[0]+1, &rfd, NULL, NULL, &tv)==1);
-}
-
-int x_getch(void)
-{
-	unsigned char ch;
-
-	while(read(key_pipe[0], &ch, 1)!=1);
-	return(ch);
-}
-
-static void write_event(struct x11_local_event *ev)
-{
-	size_t sent = 0;
-	char *buf = (char *)ev;
-	fd_set	wfd;
-	int rv;
-
-	FD_ZERO(&wfd);
-	FD_SET(local_pipe[1], &wfd);
-
-	while (sent < sizeof(*ev)) {
-		select(local_pipe[1]+1, NULL, &wfd, NULL, NULL);
-		rv = write(local_pipe[1], buf + sent, sizeof(*ev) - sent);
-		if (rv > 0)
-			sent += rv;
-	}
-}
-
-void x_beep(void)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_BEEP;
-	write_event(&ev);
-}
-
-void x_textmode(int mode)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETMODE;
-	ev.data.mode = mode;
-	write_event(&ev);
-	sem_wait(&mode_set);
-}
-
-void x_setname(const char *name)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETNAME;
-	SAFECOPY(ev.data.name, name);
-	write_event(&ev);
-}
-
-void x_settitle(const char *title)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETTITLE;
-	SAFECOPY(ev.data.title, title);
-	write_event(&ev);
-}
-
-void x_seticon(const void *icon, unsigned long size)
-{
-	const uint32_t *icon32 = icon;
-	struct x11_local_event ev = {0};
-	int i;
-
-	ev.data.icon_data = malloc((size*size + 2)*sizeof(ev.data.icon_data[0]));
-	if (ev.data.icon_data != NULL) {
-		ev.type=X11_LOCAL_SETICON;
-		for (i = 0; i < size*size; i++)
-			ev.data.icon_data[i + 2] = ((icon32[i] & 0xff000000))|((icon32[i] & 0x00ff0000) >> 16)|((icon32[i] & 0x0000ff00))|((icon32[i] & 0x000000ff)<<16);
-		ev.data.icon_data[0] = size;
-		ev.data.icon_data[1] = size;
-		write_event(&ev);
-	}
-}
-
-void x_copytext(const char *text, size_t buflen)
-{
-	struct x11_local_event ev = {0};
-
-	pthread_mutex_lock(&copybuf_mutex);
-	FREE_AND_NULL(copybuf);
-
-	copybuf=strdup(text);
-	if(copybuf) {
-		ev.type=X11_LOCAL_COPY;
-		write_event(&ev);
-		copybuf_format = XA_STRING;
-	}
-	pthread_mutex_unlock(&copybuf_mutex);
-	return;
-}
-
-char *x_getcliptext(void)
-{
-	char *ret=NULL;
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_PASTE;
-	write_event(&ev);
-	sem_wait(&pastebuf_set);
-	if(pastebuf!=NULL)
-		ret=strdup(pastebuf);
-	sem_post(&pastebuf_used);
-	return(ret);
-}
-
-int x_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	if(width)
-		*width=x11_window_width;
-	if(height)
-		*height=x11_window_height;
-	if(xpos)
-		*xpos=x11_window_xpos;
-	if(ypos)
-		*ypos=x11_window_ypos;
-	
-	return(1);
-}
-
-/* Mouse event/keyboard thread */
-void x11_mouse_thread(void *data)
-{
-	//uint16_t	key=((CIO_KEY_MOUSE&0xFF)<<8)|((CIO_KEY_MOUSE>>8)&0xFF);
-	uint16_t	key=CIO_KEY_MOUSE;
-
-	SetThreadName("X11 Mouse");
-	while(1) {
-		if(mouse_wait())
-			write(key_pipe[1], &key, 2);
-	}
-}
-
-int x_init(void)
-{
-	dll_handle	dl;
-	const char *libnames[]={"X11",NULL};
-	Status (*xit)(void);
-
-	/* Ensure we haven't already initialized */
-	if(x11_initialized)
-		return(0);
-
-	/* Set up the pipe for local events */
-	if(pipe(local_pipe))
-		return(-1);
-
-	/* And the keyboard pipe */
-	if(pipe(key_pipe))
-		return(-1);
-
-	/* Load X11 functions */
-	if((dl=xp_dlopen(libnames,RTLD_LAZY,7))==NULL)
-		return(-1);
-	if((xit=xp_dlsym(dl,XInitThreads))!=NULL)
-		xit();
-	if((x11.XChangeGC=xp_dlsym(dl,XChangeGC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCopyPlane=xp_dlsym(dl,XCopyPlane))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFillRectangle=xp_dlsym(dl,XFillRectangle))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XDrawPoint=xp_dlsym(dl,XDrawPoint))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFlush=xp_dlsym(dl,XFlush))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSync=xp_dlsym(dl,XSync))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XBell=xp_dlsym(dl,XBell))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XLookupString=xp_dlsym(dl,XLookupString))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XNextEvent=xp_dlsym(dl,XNextEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocSizeHints=xp_dlsym(dl,XAllocSizeHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMNormalHints=xp_dlsym(dl,XSetWMNormalHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XResizeWindow=xp_dlsym(dl,XResizeWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XMapWindow=xp_dlsym(dl,XMapWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFree=xp_dlsym(dl,XFree))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreePixmap=xp_dlsym(dl,XFreePixmap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreatePixmap=xp_dlsym(dl,XCreatePixmap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCopyArea=xp_dlsym(dl,XCopyArea))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateBitmapFromData=xp_dlsym(dl,XCreateBitmapFromData))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocColor=xp_dlsym(dl,XAllocColor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XOpenDisplay=xp_dlsym(dl,XOpenDisplay))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCloseDisplay=xp_dlsym(dl,XCloseDisplay))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateSimpleWindow=xp_dlsym(dl,XCreateSimpleWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateGC=xp_dlsym(dl,XCreateGC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSelectInput=xp_dlsym(dl,XSelectInput))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XStoreName=xp_dlsym(dl,XStoreName))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetSelectionOwner=xp_dlsym(dl,XGetSelectionOwner))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XConvertSelection=xp_dlsym(dl,XConvertSelection))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetWindowProperty=xp_dlsym(dl,XGetWindowProperty))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XChangeProperty=xp_dlsym(dl,XChangeProperty))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSendEvent=xp_dlsym(dl,XSendEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XPutImage=xp_dlsym(dl,XPutImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#ifndef XDestroyImage
-	if((x11.XDestroyImage=xp_dlsym(dl,XDestroyImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#endif
-#ifndef XPutPixel
-	if((x11.XPutPixel=xp_dlsym(dl,XPutPixel))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#endif
-	if((x11.XCreateImage=xp_dlsym(dl,XCreateImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetSelectionOwner=xp_dlsym(dl,XSetSelectionOwner))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetIconName=xp_dlsym(dl,XSetIconName))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSynchronize=xp_dlsym(dl,XSynchronize))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetWindowAttributes=xp_dlsym(dl,XGetWindowAttributes))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocWMHints=xp_dlsym(dl,XAllocWMHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMProperties=xp_dlsym(dl,XSetWMProperties))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMProtocols=xp_dlsym(dl,XSetWMProtocols))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XInternAtom=xp_dlsym(dl,XInternAtom))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreeColors=xp_dlsym(dl,XFreeColors))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetVisualInfo=xp_dlsym(dl,XGetVisualInfo))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateWindow=xp_dlsym(dl,XCreateWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateColormap=xp_dlsym(dl,XCreateColormap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocClassHint=xp_dlsym(dl,XAllocClassHint))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetForeground=xp_dlsym(dl,XSetForeground))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetLocaleModifiers=xp_dlsym(dl,XSetLocaleModifiers))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XOpenIM=xp_dlsym(dl,XOpenIM))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateIC=xp_dlsym(dl,XCreateIC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XwcLookupString=xp_dlsym(dl,XwcLookupString))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetICFocus=xp_dlsym(dl,XSetICFocus))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFilterEvent=xp_dlsym(dl,XFilterEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateFontCursor=xp_dlsym(dl,XCreateFontCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XDefineCursor=xp_dlsym(dl,XDefineCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreeCursor=xp_dlsym(dl,XFreeCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	setlocale(LC_ALL, "");
-	x11.XSetLocaleModifiers("@im=none");
-
-	if(sem_init(&pastebuf_set, 0, 0)) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if(sem_init(&pastebuf_used, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		return(-1);
-	}
-	if(sem_init(&init_complete, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		return(-1);
-	}
-	if(sem_init(&mode_set, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		return(-1);
-	}
-
-	if(pthread_mutex_init(&copybuf_mutex, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		sem_destroy(&mode_set);
-		return(-1);
-	}
-
-	_beginthread(x11_event_thread,1<<16,NULL);
-	sem_wait(&init_complete);
-	if(!x11_initialized) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		sem_destroy(&mode_set);
-		pthread_mutex_destroy(&copybuf_mutex);
-		return(-1);
-	}
-	_beginthread(x11_mouse_thread,1<<16,NULL);
-	cio_api.options |= CONIO_OPT_SET_TITLE | CONIO_OPT_SET_NAME | CONIO_OPT_SET_ICON;
-	return(0);
-}
-
-void x11_drawrect(struct rectlist *data)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_DRAWRECT;
-	if(x11_initialized) {
-		ev.data.rect=data;
-		write_event(&ev);
-	}
-}
-
-void x11_flush(void)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_FLUSH;
-	if(x11_initialized)
-		write_event(&ev);
-}
-
-void x_setscaling(int newval)
-{
-	if (newval < 1)
-		newval = 1;
-	pthread_mutex_lock(&vstatlock);
-	x_cvstat.scaling = vstat.scaling = newval;
-	pthread_mutex_unlock(&vstatlock);
-}
-
-int x_getscaling(void)
-{
-	return x_cvstat.scaling;
-}
-
-int x_mousepointer(enum ciolib_mouse_ptr type)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_MOUSEPOINTER;
-	if(x11_initialized) {
-		ev.data.ptr=type;
-		write_event(&ev);
-		return 1;
-	}
-	return 0;
-}
diff --git a/ciolib/x_cio.h b/ciolib/x_cio.h
deleted file mode 100644
index 158d052..0000000
--- a/ciolib/x_cio.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* $Id: x_cio.h,v 1.27 2020/05/07 20:26:51 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "bitmap_con.h"
-#include "x_events.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int x_puttext(int sx, int sy, int ex, int ey, void *fill);
-int x_gettext(int sx, int sy, int ex, int ey, void *fill);
-void x_textattr(int attr);
-int x_kbhit(void);
-void x_delay(long msec);
-int x_wherey(void);
-int x_wherex(void);
-int x_putch(int ch);
-void x_gotoxy(int x, int y);
-int x_init(void);
-void x_initciolib(long inmode);
-void x_gettextinfo(struct text_info *info);
-void x_setcursortype(int type);
-int x_getch(void);
-int x_getche(void);
-void x_beep(void);
-void x_textmode(int mode);
-void x_setname(const char *name);
-void x_settitle(const char *title);
-void x_copytext(const char *text, size_t buflen);
-char *x_getcliptext(void);
-int x_setfont(int font, int force);
-int x_getfont(void);
-int x_loadfont(char *filename);
-int x_get_window_info(int *width, int *height, int *xpos, int *ypos);
-void x11_drawrect(struct rectlist *data);
-void x11_flush(void);
-void x_setscaling(int newval);
-int x_getscaling(void);
-void x_seticon(const void *icon, unsigned long size);
-int x_mousepointer(enum ciolib_mouse_ptr type);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/x_events.c b/ciolib/x_events.c
deleted file mode 100644
index bd8d1c8..0000000
--- a/ciolib/x_events.c
+++ /dev/null
@@ -1,1364 +0,0 @@
-/*
- * This file contains ONLY the functions that are called from the
- * event thread.
- */
- 
-#include <math.h>
-#include <unistd.h>
-#include <stdbool.h>
-
-#include <fcntl.h>
-#include <limits.h>
-#include <locale.h>
-#include <stdio.h>
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
-#include <X11/cursorfont.h>
-
-#include <threadwrap.h>
-#include <genwrap.h>
-#include <dirwrap.h>
-
-#include "vidmodes.h"
-
-#include "ciolib.h"
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-#include "link_list.h"
-#include "scale.h"
-#include "x_events.h"
-#include "x_cio.h"
-#include "utf8_codepages.h"
-
-/*
- * Exported variables 
- */
-
-int local_pipe[2];			/* Used for passing local events */
-int key_pipe[2];			/* Used for passing keyboard events */
-
-struct x11 x11;
-
-char 	*copybuf;
-pthread_mutex_t	copybuf_mutex;
-char 	*pastebuf;
-sem_t	pastebuf_set;
-sem_t	pastebuf_used;
-sem_t	init_complete;
-sem_t	mode_set;
-int x11_window_xpos;
-int x11_window_ypos;
-int x11_window_width;
-int x11_window_height;
-int x11_initialized=0;
-sem_t	event_thread_complete;
-int	terminate = 0;
-Atom	copybuf_format;
-Atom	pastebuf_format;
-
-/*
- * Local variables
- */
-
-/* Sets the atom to be used for copy/paste operations */
-#define CONSOLE_CLIPBOARD	XA_PRIMARY
-static Atom WM_DELETE_WINDOW=0;
-
-static Display *dpy=NULL;
-static Window win;
-static Cursor curs = None;
-static Visual visual;
-static bool VisualIsRGB8 = false;
-static XImage *xim;
-static XIM im;
-static XIC ic;
-static unsigned int depth=0;
-static int xfd;
-static unsigned long black;
-static unsigned long white;
-static int bitmap_width=0;
-static int bitmap_height=0;
-static int old_scaling = 0;
-struct video_stats x_cvstat;
-static unsigned long base_pixel;
-static int r_shift;
-static int g_shift;
-static int b_shift;
-static struct graphics_buffer *last = NULL;
-
-/* Array of Graphics Contexts */
-static GC gc;
-
-static WORD Ascii2Scan[] = {
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x000e, 0x000f, 0xffff, 0xffff, 0xffff, 0x001c, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x0001, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x0039, 0x0102, 0x0128, 0x0104, 0x0105, 0x0106, 0x0108, 0x0028,
- 0x010a, 0x010b, 0x0109, 0x010d, 0x0033, 0x000c, 0x0034, 0x0035,
- 0x000b, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
- 0x0009, 0x000a, 0x0127, 0x0027, 0x0133, 0x000d, 0x0134, 0x0135,
- 0x0103, 0x011e, 0x0130, 0x012e, 0x0120, 0x0112, 0x0121, 0x0122,
- 0x0123, 0x0117, 0x0124, 0x0125, 0x0126, 0x0132, 0x0131, 0x0118,
- 0x0119, 0x0110, 0x0113, 0x011f, 0x0114, 0x0116, 0x012f, 0x0111,
- 0x012d, 0x0115, 0x012c, 0x001a, 0x002b, 0x001b, 0x0107, 0x010c,
- 0x0029, 0x001e, 0x0030, 0x002e, 0x0020, 0x0012, 0x0021, 0x0022,
- 0x0023, 0x0017, 0x0024, 0x0025, 0x0026, 0x0032, 0x0031, 0x0018,
- 0x0019, 0x0010, 0x0013, 0x001f, 0x0014, 0x0016, 0x002f, 0x0011,
- 0x002d, 0x0015, 0x002c, 0x011a, 0x012b, 0x011b, 0x0129, 0xffff,
-};
-
-static struct {
-    WORD	base;
-    WORD	shift;
-    WORD	ctrl;
-    WORD	alt;
-} ScanCodes[] = {
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key  0 */
-    {	0x011b, 0x011b, 0x011b, 0xffff }, /* key  1 - Escape key */
-    {	0x0231, 0x0221, 0xffff, 0x7800 }, /* key  2 - '1' */
-    {	0x0332, 0x0340, 0x0300, 0x7900 }, /* key  3 - '2' - special handling */
-    {	0x0433, 0x0423, 0xffff, 0x7a00 }, /* key  4 - '3' */
-    {	0x0534, 0x0524, 0xffff, 0x7b00 }, /* key  5 - '4' */
-    {	0x0635, 0x0625, 0xffff, 0x7c00 }, /* key  6 - '5' */
-    {	0x0736, 0x075e, 0x071e, 0x7d00 }, /* key  7 - '6' */
-    {	0x0837, 0x0826, 0xffff, 0x7e00 }, /* key  8 - '7' */
-    {	0x0938, 0x092a, 0xffff, 0x7f00 }, /* key  9 - '8' */
-    {	0x0a39, 0x0a28, 0xffff, 0x8000 }, /* key 10 - '9' */
-    {	0x0b30, 0x0b29, 0xffff, 0x8100 }, /* key 11 - '0' */
-    {	0x0c2d, 0x0c5f, 0x0c1f, 0x8200 }, /* key 12 - '-' */
-    {	0x0d3d, 0x0d2b, 0xffff, 0x8300 }, /* key 13 - '=' */
-    {	0x0e08, 0x0e08, 0x0e7f, 0xffff }, /* key 14 - backspace */
-    {	0x0f09, 0x0f00, 0xffff, 0xffff }, /* key 15 - tab */
-    {	0x1071, 0x1051, 0x1011, 0x1000 }, /* key 16 - 'Q' */
-    {	0x1177, 0x1157, 0x1117, 0x1100 }, /* key 17 - 'W' */
-    {	0x1265, 0x1245, 0x1205, 0x1200 }, /* key 18 - 'E' */
-    {	0x1372, 0x1352, 0x1312, 0x1300 }, /* key 19 - 'R' */
-    {	0x1474, 0x1454, 0x1414, 0x1400 }, /* key 20 - 'T' */
-    {	0x1579, 0x1559, 0x1519, 0x1500 }, /* key 21 - 'Y' */
-    {	0x1675, 0x1655, 0x1615, 0x1600 }, /* key 22 - 'U' */
-    {	0x1769, 0x1749, 0x1709, 0x1700 }, /* key 23 - 'I' */
-    {	0x186f, 0x184f, 0x180f, 0x1800 }, /* key 24 - 'O' */
-    {	0x1970, 0x1950, 0x1910, 0x1900 }, /* key 25 - 'P' */
-    {	0x1a5b, 0x1a7b, 0x1a1b, 0xffff }, /* key 26 - '[' */
-    {	0x1b5d, 0x1b7d, 0x1b1d, 0xffff }, /* key 27 - ']' */
-    {	0x1c0d, 0x1c0d, 0x1c0a, 0xffff }, /* key 28 - CR */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 29 - control */
-    {	0x1e61, 0x1e41, 0x1e01, 0x1e00 }, /* key 30 - 'A' */
-    {	0x1f73, 0x1f53, 0x1f13, 0x1f00 }, /* key 31 - 'S' */
-    {	0x2064, 0x2044, 0x2004, 0x2000 }, /* key 32 - 'D' */
-    {	0x2166, 0x2146, 0x2106, 0x2100 }, /* key 33 - 'F' */
-    {	0x2267, 0x2247, 0x2207, 0x2200 }, /* key 34 - 'G' */
-    {	0x2368, 0x2348, 0x2308, 0x2300 }, /* key 35 - 'H' */
-    {	0x246a, 0x244a, 0x240a, 0x2400 }, /* key 36 - 'J' */
-    {	0x256b, 0x254b, 0x250b, 0x2500 }, /* key 37 - 'K' */
-    {	0x266c, 0x264c, 0x260c, 0x2600 }, /* key 38 - 'L' */
-    {	0x273b, 0x273a, 0xffff, 0xffff }, /* key 39 - ';' */
-    {	0x2827, 0x2822, 0xffff, 0xffff }, /* key 40 - ''' */
-    {	0x2960, 0x297e, 0xffff, 0xffff }, /* key 41 - '`' */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 42 - left shift */
-    {	0x2b5c, 0x2b7c, 0x2b1c, 0xffff }, /* key 43 - '' */
-    {	0x2c7a, 0x2c5a, 0x2c1a, 0x2c00 }, /* key 44 - 'Z' */
-    {	0x2d78, 0x2d58, 0x2d18, 0x2d00 }, /* key 45 - 'X' */
-    {	0x2e63, 0x2e43, 0x2e03, 0x2e00 }, /* key 46 - 'C' */
-    {	0x2f76, 0x2f56, 0x2f16, 0x2f00 }, /* key 47 - 'V' */
-    {	0x3062, 0x3042, 0x3002, 0x3000 }, /* key 48 - 'B' */
-    {	0x316e, 0x314e, 0x310e, 0x3100 }, /* key 49 - 'N' */
-    {	0x326d, 0x324d, 0x320d, 0x3200 }, /* key 50 - 'M' */
-    {	0x332c, 0x333c, 0xffff, 0xffff }, /* key 51 - ',' */
-    {	0x342e, 0x343e, 0xffff, 0xffff }, /* key 52 - '.' */
-    {	0x352f, 0x353f, 0xffff, 0xffff }, /* key 53 - '/' */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 54 - right shift - */
-    {	0x372a, 0xffff, 0x3772, 0xffff }, /* key 55 - prt-scr - */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 56 - Alt - */
-    {	0x3920, 0x3920, 0x3920, 0x3920 }, /* key 57 - space bar */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 58 - caps-lock -  */
-    {	0x3b00, 0x5400, 0x5e00, 0x6800 }, /* key 59 - F1 */
-    {	0x3c00, 0x5500, 0x5f00, 0x6900 }, /* key 60 - F2 */
-    {	0x3d00, 0x5600, 0x6000, 0x6a00 }, /* key 61 - F3 */
-    {	0x3e00, 0x5700, 0x6100, 0x6b00 }, /* key 62 - F4 */
-    {	0x3f00, 0x5800, 0x6200, 0x6c00 }, /* key 63 - F5 */
-    {	0x4000, 0x5900, 0x6300, 0x6d00 }, /* key 64 - F6 */
-    {	0x4100, 0x5a00, 0x6400, 0x6e00 }, /* key 65 - F7 */
-    {	0x4200, 0x5b00, 0x6500, 0x6f00 }, /* key 66 - F8 */
-    {	0x4300, 0x5c00, 0x6600, 0x7000 }, /* key 67 - F9 */
-    {	0x4400, 0x5d00, 0x6700, 0x7100 }, /* key 68 - F10 */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 69 - num-lock - */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 70 - scroll-lock -  */
-    {	0x4700, 0x4737, 0x7700, 0xffff }, /* key 71 - home */
-    {	0x4800, 0x4838, 0x8d00, 0x9800 }, /* key 72 - cursor up */
-    {	0x4900, 0x4939, 0x8400, 0xffff }, /* key 73 - page up */
-    {	0x4a2d, 0x4a2d, 0xffff, 0xffff }, /* key 74 - minus sign */
-    {	0x4b00, 0x4b34, 0x7300, 0xffff }, /* key 75 - cursor left */
-    {	0xffff, 0x4c35, 0xffff, 0xffff }, /* key 76 - center key */
-    {	0x4d00, 0x4d36, 0x7400, 0xffff }, /* key 77 - cursor right */
-    {	0x4e2b, 0x4e2b, 0xffff, 0xffff }, /* key 78 - plus sign */
-    {	0x4f00, 0x4f31, 0x7500, 0xffff }, /* key 79 - end */
-    {	0x5000, 0x5032, 0x9100, 0xa000 }, /* key 80 - cursor down */
-    {	0x5100, 0x5133, 0x7600, 0xffff }, /* key 81 - page down */
-    {	CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC}, /* key 82 - insert */
-    {	CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_ALT_IC}, /* key 83 - delete */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 84 - sys key */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 85 */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 86 */
-    {	0x8500, 0x5787, 0x8900, 0x8b00 }, /* key 87 - F11 */
-    {	0x8600, 0x5888, 0x8a00, 0x8c00 }, /* key 88 - F12 */
-};
-
-static void resize_xim(void)
-{
-	int width = bitmap_width * x_cvstat.scaling;
-	int height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	if (xim) {
-		if (width == xim->width
-		    && height == xim->height) {
-			if (last) {
-				release_buffer(last);
-				last = NULL;
-			}
-			x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, x11_window_height);
-			return;
-		}
-#ifdef XDestroyImage
-		XDestroyImage(xim);
-#else
-		x11.XDestroyImage(xim);
-#endif
-	}
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-	}
-	xim = x11.XCreateImage(dpy, &visual, depth, ZPixmap, 0, NULL, width, height, 32, 0);
-	xim->data=(char *)calloc(1, xim->bytes_per_line*xim->height);
-	x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, x11_window_height);
-}
-
-/* Swiped from FreeBSD libc */
-static int
-my_fls(unsigned long mask)
-{
-        int bit;
-
-        if (mask == 0)
-                return (0);
-        for (bit = 1; mask != 1; bit++)
-                mask = mask >> 1;
-        return (bit);
-}
-
-/* Get a connection to the X server and create the window. */
-static int init_window()
-{
-	XGCValues gcv;
-	int i;
-	XWMHints *wmhints;
-	XClassHint *classhints;
-	int ret;
-	int best=-1;
-	int best_depth=0;
-	int best_cmap=0;
-	XVisualInfo template = {0};
-	XVisualInfo *vi;
-
-	dpy = x11.XOpenDisplay(NULL);
-	if (dpy == NULL) {
-		return(-1);
-	}
-	xfd = ConnectionNumber(dpy);
-	x11.utf8 = x11.XInternAtom(dpy, "UTF8_STRING", False);
-	x11.targets = x11.XInternAtom(dpy, "TARGETS", False);
-
-	template.screen = DefaultScreen(dpy);
-	template.class = TrueColor;
-	vi = x11.XGetVisualInfo(dpy, VisualScreenMask | VisualClassMask, &template, &ret);
-	for (i=0; i<ret; i++) {
-		if (vi[i].depth >= best_depth && vi[i].colormap_size >= best_cmap) {
-			best = i;
-			best_depth = vi[i].depth;
-		}
-	}
-	if (best != -1) {
-		visual = *vi[best].visual;
-		/*
-		 * TODO: Set VisualIsRGB8 if appropriate...
-		 * "appropriate" in this context means it's a sequence of
-		 * unpadded uint32_t values in XXRRGGBB format where XX is
-		 * ignored, and RR, GG, and BB are Red, Green, Blue values
-		 * respectively.
-		 */
-		base_pixel = ULONG_MAX;
-		base_pixel &= ~visual.red_mask;
-		base_pixel &= ~visual.green_mask;
-		base_pixel &= ~visual.blue_mask;
-		r_shift = my_fls(visual.red_mask)-16;
-		g_shift = my_fls(visual.green_mask)-16;
-		b_shift = my_fls(visual.blue_mask)-16;
-	}
-	else {
-		fprintf(stderr, "Unable to find TrueColor visual\n");
-		x11.XFree(vi);
-		return -1;
-	}
-	x11.XFree(vi);
-
-	/* Allocate black and white */
-	black=BlackPixel(dpy, DefaultScreen(dpy));
-	white=WhitePixel(dpy, DefaultScreen(dpy));
-
-    /* Create window, but defer setting a size and GC. */
-	XSetWindowAttributes wa = {0};
-	wa.colormap = x11.XCreateColormap(dpy, DefaultRootWindow(dpy), &visual, AllocNone);
-	wa.background_pixel = black;
-	wa.border_pixel = black;
-	depth = best_depth;
-    win = x11.XCreateWindow(dpy, DefaultRootWindow(dpy), 0, 0,
-			      640*x_cvstat.scaling, 400*x_cvstat.scaling, 2, depth, InputOutput, &visual, CWColormap | CWBorderPixel | CWBackPixel, &wa);
-
-	classhints=x11.XAllocClassHint();
-	if (classhints)
-		classhints->res_name = classhints->res_class = "CIOLIB";
-	wmhints=x11.XAllocWMHints();
-	if(wmhints) {
-		wmhints->initial_state=NormalState;
-		wmhints->flags = (StateHint/* | IconPixmapHint | IconMaskHint*/ | InputHint);
-		wmhints->input = True;
-		x11.XSetWMProperties(dpy, win, NULL, NULL, 0, 0, NULL, wmhints, classhints);
-		x11.XFree(wmhints);
-	}
-	im = x11.XOpenIM(dpy, NULL, "CIOLIB", "CIOLIB");
-	if (im != NULL) {
-		ic = x11.XCreateIC(im, XNClientWindow, win, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, NULL);
-		if (ic)
-			x11.XSetICFocus(ic);
-	}
-
-	if (classhints)
-		x11.XFree(classhints);
-
-	WM_DELETE_WINDOW = x11.XInternAtom(dpy, "WM_DELETE_WINDOW", False);
-
-	gcv.function = GXcopy;
-	gcv.foreground = black | 0xff000000;
-	gcv.background = white;
-	gcv.graphics_exposures = False;
-	gc=x11.XCreateGC(dpy, win, GCFunction | GCForeground | GCBackground | GCGraphicsExposures, &gcv);
-
-	x11.XSelectInput(dpy, win, KeyReleaseMask | KeyPressMask |
-		     ExposureMask | ButtonPressMask
-		     | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
-
-	x11.XStoreName(dpy, win, "SyncConsole");
-	x11.XSetWMProtocols(dpy, win, &WM_DELETE_WINDOW, 1);
-
-	return(0);
-}
-
-/*
- * Actually maps (shows) the window
- */
-static void map_window()
-{
-	XSizeHints *sh;
-	int minwidth = bitmap_width;
-	int minheight = bitmap_height;
-
-	sh = x11.XAllocSizeHints();
-	if (sh == NULL) {
-		fprintf(stderr, "Could not get XSizeHints structure");
-		exit(1);
-	}
-
-	sh->base_width = bitmap_width * x_cvstat.scaling;
-	sh->base_height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&sh->base_width, &sh->base_height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	aspect_correct(&minwidth, &minheight, x_cvstat.aspect_width, x_cvstat.aspect_height);
-
-	sh->min_width = sh->width_inc = sh->min_aspect.x = sh->max_aspect.x = minwidth;
-	sh->min_height = sh->height_inc = sh->min_aspect.y = sh->max_aspect.y = minheight;
-
-	sh->flags = USSize | PMinSize | PSize | PResizeInc | PAspect;
-
-	x11.XSetWMNormalHints(dpy, win, sh);
-	x11.XMapWindow(dpy, win);
-
-	x11.XFree(sh);
-
-	return;
-}
-
-/* Resize the window. This function is called after a mode change. */
-static void resize_window()
-{
-	int width = bitmap_width * x_cvstat.scaling;
-	int height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	x11.XResizeWindow(dpy, win, width, height);
-	resize_xim();
-
-	return;
-}
-
-static void init_mode_internal(int mode)
-{
-	int oldcols;
-
-	oldcols=x_cvstat.cols;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-	}
-	bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height);
-
-	/* Deal with 40 col doubling */
-	if(oldcols != vstat.cols) {
-		if(oldcols == 40)
-			vstat.scaling /= 2;
-		if(vstat.cols == 40)
-			vstat.scaling *= 2;
-	}
-	if(vstat.scaling < 1)
-		vstat.scaling = 1;
-
-	x_cvstat = vstat;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	map_window();
-}
-
-static void check_scaling(void)
-{
-	if (old_scaling != x_cvstat.scaling) {
-		resize_window();
-		old_scaling = x_cvstat.scaling;
-	}
-}
-
-static int init_mode(int mode)
-{
-	init_mode_internal(mode);
-	resize_window();
-	bitmap_drv_request_pixels();
-
-	sem_post(&mode_set);
-	return(0);
-}
-
-static int video_init()
-{
-    /* If we are running under X, get a connection to the X server and create
-       an empty window of size (1, 1). It makes a couple of init functions a
-       lot easier. */
-	if(x_cvstat.scaling<1)
-		x_setscaling(1);
-    if(init_window())
-		return(-1);
-
-	bitmap_drv_init(x11_drawrect, x11_flush);
-
-    /* Initialize mode 3 (text, 80x25, 16 colors) */
-    init_mode_internal(3);
-
-    return(0);
-}
-
-static void
-local_draw_rect(struct rectlist *rect)
-{
-	int x, y, xoff = 0, yoff = 0;
-	unsigned int r, g, b;
-	unsigned long pixel;
-	int cleft;
-	int cright = -100;
-	int ctop;
-	int cbottom = -1;
-	int idx;
-	uint32_t last_pixel = 0x55555555;
-	struct graphics_buffer *source;
-
-	if (bitmap_width != rect->rect.width || bitmap_height != rect->rect.height) {
-		bitmap_drv_free_rect(rect);
-		return;
-	}
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	// Scale...
-	source = do_scale(rect, x_cvstat.scaling, x_cvstat.scaling, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	bitmap_drv_free_rect(rect);
-	if (source == NULL)
-		return;
-	cleft = source->w;
-	ctop = source->h;
-
-	xoff = (x11_window_width - source->w) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - source->h) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (last && (last->w != source->w || last->h != source->h)) {
-		release_buffer(last);
-		last = NULL;
-	}
-
-	/* TODO: Translate into local colour depth */
-	idx = 0;
-
-	for (y = 0; y < source->h; y++) {
-		for (x = 0; x < source->w; x++) {
-			if (last) {
-				if (last->data[idx] != source->data[idx]) {
-					if (x < cleft)
-						cleft = x;
-					if (x > cright)
-						cright = x;
-					if (y < ctop)
-						ctop = y;
-					if (y > cbottom)
-						cbottom = y;
-				}
-				else {
-					idx++;
-					continue;
-				}
-			}
-			if (VisualIsRGB8) {
-				pixel = source->data[idx];
-				((uint32_t*)xim->data)[idx] = pixel;
-			}
-			else {
-				if (last_pixel != source->data[idx]) {
-					last_pixel = source->data[idx];
-					r = source->data[idx] >> 16 & 0xff;
-					g = source->data[idx] >> 8 & 0xff;
-					b = source->data[idx] & 0xff;
-					r = (r<<8)|r;
-					g = (g<<8)|g;
-					b = (b<<8)|b;
-					pixel = base_pixel;
-					if (r_shift >= 0)
-						pixel |= (r << r_shift) & visual.red_mask;
-					else
-						pixel |= (r >> (0-r_shift)) & visual.red_mask;
-					if (g_shift >= 0)
-						pixel |= (g << g_shift) & visual.green_mask;
-					else
-						pixel |= (g >> (0-g_shift)) & visual.green_mask;
-					if (b_shift >= 0)
-						pixel |= (b << b_shift) & visual.blue_mask;
-					else
-						pixel |= (b >> (0-b_shift)) & visual.blue_mask;
-				}
-#ifdef XPutPixel
-				XPutPixel(xim, x, y, pixel);
-#else
-				x11.XPutPixel(xim, x, y, pixel);
-#endif
-			}
-			idx++;
-		}
-		/* This line was changed */
-		// TODO: Previously this did one update per display line...
-		if (last && cright >= 0 && (cbottom != y || y == source->h - 1)) {
-			x11.XPutImage(dpy, win, gc, xim, cleft, ctop
-			    , cleft + xoff, ctop + yoff
-			    , (cright - cleft + 1), (cbottom - ctop + 1));
-			cleft = source->w;
-			cright = cbottom = -100;
-			ctop = source->h;
-		}
-	}
-
-	if (last == NULL)
-		x11.XPutImage(dpy, win, gc, xim, 0, 0, xoff, yoff, source->w, source->h);
-	else
-		release_buffer(last);
-	last = source;
-}
-
-static void handle_resize_event(int width, int height)
-{
-	int newFSH=1;
-	int newFSW=1;
-
-	aspect_fix(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	newFSH=width / bitmap_width;
-	newFSW=height / bitmap_height;
-	if(newFSW<1)
-		newFSW=1;
-	if(newFSH<1)
-		newFSH=1;
-	if(newFSH<newFSW)
-		x_setscaling(newFSH);
-	else
-		x_setscaling(newFSW);
-	old_scaling = x_cvstat.scaling;
-	if(x_cvstat.scaling > 16)
-		x_setscaling(16);
-
-	/*
-	 * We only need to resize if the width/height are not even multiples,
-	 * or if the two axis don't scale the same way.
-	 * Otherwise, we can simply resend everything
-	 */
-	if (newFSH != newFSW)
-		resize_window();
-	else
-		resize_xim();
-	bitmap_drv_request_pixels();
-}
-
-static void expose_rect(int x, int y, int width, int height)
-{
-	int sx,sy,ex,ey;
-	int xoff=0, yoff=0;
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (xoff > 0 || yoff > 0) {
-		if (x < xoff || y < yoff || x + width > xoff + xim->width || y + height > yoff + xim->height) {
-			x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, yoff);
-			x11.XFillRectangle(dpy, win, gc, 0, yoff, xoff, yoff + xim->height);
-			x11.XFillRectangle(dpy, win, gc, xoff+xim->width, yoff, x11_window_width, yoff + xim->height);
-			x11.XFillRectangle(dpy, win, gc, 0, yoff + xim->height, x11_window_width, x11_window_height);
-		}
-	}
-
-	sx=(x-xoff)/x_cvstat.scaling;
-	sy=(y-yoff)/(x_cvstat.scaling);
-	if (sx < 0)
-		sx = 0;
-	if (sy < 0)
-		sy = 0;
-
-	ex=(x-xoff)+width-1;
-	ey=(y-yoff)+height-1;
-	if (ex < 0)
-		ex = 0;
-	if (ey < 0)
-		ey = 0;
-	if((ex+1)%x_cvstat.scaling) {
-		ex += x_cvstat.scaling-(ex%x_cvstat.scaling);
-	}
-	if((ey+1)%(x_cvstat.scaling)) {
-		ey += x_cvstat.scaling-(ey%(x_cvstat.scaling));
-	}
-	ex=ex/x_cvstat.scaling;
-	ey=ey/(x_cvstat.scaling);
-
-	/* Since we're exposing, we *have* to redraw */
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-		bitmap_drv_request_some_pixels(sx, sy, ex-sx+1, ey-sy+1);
-	}
-	// Do nothing...
-	if (sx == ex || sy == ey)
-		return;
-	bitmap_drv_request_some_pixels(sx, sy, ex-sx+1, ey-sy+1);
-}
-
-static bool
-xlat_mouse_xy(int *x, int *y)
-{
-	int xoff, yoff;
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (*x < xoff)
-		return false;
-	if (*y < yoff)
-		return false;
-	*x -= xoff;
-	*y -= yoff;
-	if (*x >= xim->width)
-		return false;
-	if (*y >= xim->height)
-		return false;
-	*x *= x_cvstat.scrnwidth;
-	*y *= x_cvstat.scrnheight;
-	*x /= xim->width;
-	*y /= xim->height;
-	return true;
-}
-
-static int x11_event(XEvent *ev)
-{
-	if (x11.XFilterEvent(ev, win))
-		return 0;
-	switch (ev->type) {
-		case ClientMessage:
-			if (ev->xclient.format == 32 && ev->xclient.data.l[0] == WM_DELETE_WINDOW) {
-				uint16_t key=CIO_KEY_QUIT;
-				write(key_pipe[1], &key, 2);
-			}
-			break;
-		/* Graphics related events */
-		case ConfigureNotify: {
-			int width, height;
-
-			if (x11_window_xpos != ev->xconfigure.x || x11_window_ypos != ev->xconfigure.y) {
-				x11_window_xpos=ev->xconfigure.x;
-				x11_window_ypos=ev->xconfigure.y;
-			}
-			if (x11_window_width != ev->xconfigure.width || x11_window_height != ev->xconfigure.height) {
-				x11_window_width=ev->xconfigure.width;
-				x11_window_height=ev->xconfigure.height;
-				handle_resize_event(ev->xconfigure.width, ev->xconfigure.height);
-				break;
-			}
-			width = bitmap_width * x_cvstat.scaling;
-			height = bitmap_height * x_cvstat.scaling;
-
-			aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-			if (ev->xconfigure.width != width || ev->xconfigure.height != height) {
-				// We can't have the size we requested... accept the size we got.
-				int newFSH=1;
-				int newFSW=1;
-
-				width = ev->xconfigure.width;
-				height = ev->xconfigure.height;
-				aspect_fix(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-				newFSH=width / bitmap_width;
-				newFSW=height / bitmap_height;
-				if(newFSW<1)
-					newFSW=1;
-				if(newFSH<1)
-					newFSH=1;
-				if(newFSH<newFSW)
-					x_setscaling(newFSH);
-				else
-					x_setscaling(newFSW);
-				old_scaling = x_cvstat.scaling;
-				if(x_cvstat.scaling > 16)
-					x_setscaling(16);
-
-				resize_xim();
-				bitmap_drv_request_pixels();
-			}
-			break;
-		}
-		case NoExpose:
-			break;
-		case GraphicsExpose:
-			expose_rect(ev->xgraphicsexpose.x, ev->xgraphicsexpose.y, ev->xgraphicsexpose.width, ev->xgraphicsexpose.height);
-			break;
-		case Expose:
-			expose_rect(ev->xexpose.x, ev->xexpose.y, ev->xexpose.width, ev->xexpose.height);
-			break;
-
-		/* Copy/Paste events */
-		case SelectionClear:
-			{
-				XSelectionClearEvent *req;
-
-				req=&(ev->xselectionclear);
-				pthread_mutex_lock(&copybuf_mutex);
-				if(req->selection==CONSOLE_CLIPBOARD)
-					FREE_AND_NULL(copybuf);
-				pthread_mutex_unlock(&copybuf_mutex);
-			}
-			break;
-		case SelectionNotify:
-			{
-				int format;
-				unsigned long len, bytes_left, dummy;
-
-				if(ev->xselection.selection != CONSOLE_CLIPBOARD)
-					break;
-				if(ev->xselection.requestor!=win)
-					break;
-				if(ev->xselection.property) {
-					x11.XGetWindowProperty(dpy, win, ev->xselection.property, 0, 0, True, AnyPropertyType, &pastebuf_format, &format, &len, &bytes_left, (unsigned char **)(&pastebuf));
-					if(bytes_left > 0 && format==8) {
-						x11.XGetWindowProperty(dpy, win, ev->xselection.property, 0, bytes_left, True, AnyPropertyType, &pastebuf_format, &format, &len, &dummy, (unsigned char **)&pastebuf);
-						if (x11.utf8 && pastebuf_format == x11.utf8) {
-							char *opb = pastebuf;
-							pastebuf = (char *)utf8_to_cp(CIOLIB_ISO_8859_1, (uint8_t *)pastebuf, '?', strlen(pastebuf), NULL);
-							if (pastebuf == NULL)
-								pastebuf = opb;
-							else
-								x11.XFree(opb);
-						}
-					}
-					else
-						pastebuf=NULL;
-				}
-				else
-					pastebuf=NULL;
-
-				/* Set paste buffer */
-				sem_post(&pastebuf_set);
-				sem_wait(&pastebuf_used);
-				if (x11.utf8 && pastebuf_format == x11.utf8)
-					free(pastebuf);
-				else
-					x11.XFree(pastebuf);
-				pastebuf=NULL;
-			}
-			break;
-		case SelectionRequest:
-			{
-				XSelectionRequestEvent *req;
-				XEvent respond;
-				Atom supported[3];
-				int count = 0;
-
-				req=&(ev->xselectionrequest);
-				pthread_mutex_lock(&copybuf_mutex);
-				if (x11.targets == 0)
-					x11.targets = x11.XInternAtom(dpy, "TARGETS", False);
-				respond.xselection.property=None;
-				if(copybuf!=NULL) {
-					if(req->target==XA_STRING) {
-						char *cpstr = utf8_to_cp(CIOLIB_ISO_8859_1, (uint8_t *)copybuf, '?', strlen(copybuf), NULL);
-						if (cpstr != NULL) {
-							x11.XChangeProperty(dpy, req->requestor, req->property, XA_STRING, 8, PropModeReplace, (uint8_t *)cpstr, strlen((char *)cpstr));
-							respond.xselection.property=req->property;
-							free(cpstr);
-						}
-					}
-					else if(req->target == x11.utf8) {
-						x11.XChangeProperty(dpy, req->requestor, req->property, x11.utf8, 8, PropModeReplace, (uint8_t *)copybuf, strlen((char *)copybuf));
-						respond.xselection.property=req->property;
-					}
-					else if(req->target == x11.targets) {
-						if (x11.utf8 == 0)
-							x11.utf8 = x11.XInternAtom(dpy, "UTF8_STRING", False);
-
-						supported[count++] = x11.targets;
-						supported[count++] = XA_STRING;
-						if (x11.utf8)
-							supported[count++] = x11.utf8;
-						x11.XChangeProperty(dpy, req->requestor, req->property, XA_ATOM, 32, PropModeReplace, (unsigned char *)supported, count);
-						respond.xselection.property=req->property;
-					}
-				}
-				respond.xselection.requestor=req->requestor;
-				respond.xselection.selection=req->selection;
-				respond.xselection.time=req->time;
-				respond.xselection.target=req->target;
-				respond.xselection.type=SelectionNotify;
-				respond.xselection.display=req->display;
-				x11.XSendEvent(dpy,req->requestor,0,0,&respond);
-				x11.XFlush(dpy);
-				pthread_mutex_unlock(&copybuf_mutex);
-			}
-			break;
-
-		/* Mouse Events */
-		case MotionNotify:
-			{
-				XMotionEvent *me = (XMotionEvent *)ev;
-				if (!xlat_mouse_xy(&me->x, &me->y))
-					break;
-				int x_res = me->x;
-				int y_res = me->y;
-
-				me->x /= x_cvstat.charwidth;
-				me->y /= x_cvstat.charheight;
-				me->x++;
-				me->y++;
-				if(me->x<1)
-					me->x=1;
-				if(me->y<1)
-					me->y=1;
-				if(me->x>x_cvstat.cols)
-					me->x=x_cvstat.cols;
-				if(me->y>x_cvstat.rows+1)
-					me->y=x_cvstat.rows+1;
-				ciomouse_gotevent(CIOLIB_MOUSE_MOVE,me->x,me->y, x_res, y_res);
-	    	}
-			break;
-		case ButtonRelease:
-			{
-				XButtonEvent *be = (XButtonEvent *)ev;
-				if (!xlat_mouse_xy(&be->x, &be->y))
-					break;
-				int x_res = be->x;
-				int y_res = be->y;
-
-				be->x/=x_cvstat.charwidth;
-				be->y/=x_cvstat.charheight;
-				be->x++;
-				be->y++;
-				if(be->x<1)
-					be->x=1;
-				if(be->y<1)
-					be->y=1;
-				if(be->x>x_cvstat.cols)
-					be->x=x_cvstat.cols;
-				if(be->y>x_cvstat.rows+1)
-					be->y=x_cvstat.rows+1;
-				if (be->button <= 3) {
-					ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(be->button),be->x,be->y, x_res, y_res);
-				}
-	    	}
-			break;
-		case ButtonPress:
-			{
-				XButtonEvent *be = (XButtonEvent *)ev;
-				if (!xlat_mouse_xy(&be->x, &be->y))
-					break;
-				int x_res = be->x;
-				int y_res = be->y;
-
-				be->x/=x_cvstat.charwidth;
-				be->y/=x_cvstat.charheight;
-				be->x++;
-				be->y++;
-				if(be->x<1)
-					be->x=1;
-				if(be->y<1)
-					be->y=1;
-				if(be->x>x_cvstat.cols)
-					be->x=x_cvstat.cols;
-				if(be->y>x_cvstat.rows+1)
-					be->y=x_cvstat.rows+1;
-				if (be->button <= 5) {
-					ciomouse_gotevent(CIOLIB_BUTTON_PRESS(be->button),be->x,be->y, x_res, y_res);
-				}
-	    	}
-			break;
-
-		/* Keyboard Events */
-		case KeyPress:
-			{
-				static char buf[128];
-				static wchar_t wbuf[128];
-				KeySym ks;
-				int nlock = 0;
-				WORD scan = 0xffff;
-				Status lus = 0;
-				int cnt;
-				int i;
-				uint8_t ch;
-
-				if (ic)
-					cnt = x11.XwcLookupString(ic, (XKeyPressedEvent *)ev, wbuf, sizeof(wbuf)/sizeof(wbuf[0]), &ks, &lus);
-				else {
-					cnt = x11.XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &ks, NULL);
-					lus = XLookupKeySym;
-				}
-
-				switch(lus) {
-					case XLookupNone:
-						ks = 0xffff;
-						break;
-					case XLookupBoth:
-					case XLookupChars:
-						if (lus == XLookupChars || ((ev->xkey.state & (Mod1Mask | ControlMask)) == 0)) {
-							for (i = 0; i < cnt; i++) {
-								if (wbuf[i] < 127)
-									ch = wbuf[i];
-								else
-									ch = cpchar_from_unicode_cpoint(getcodepage(), wbuf[i], 0);
-								if (ch) {
-									write(key_pipe[1], &ch, 1);
-								}
-							}
-							break;
-						}
-						// Fallthrough
-					case XLookupKeySym:
-						switch (ks) {
-							case XK_Escape:
-								scan = 1;
-								goto docode;
-
-							case XK_Tab:
-							case XK_ISO_Left_Tab:
-								scan = 15;
-								goto docode;
-					
-							case XK_Return:
-							case XK_KP_Enter:
-								scan = 28;
-								goto docode;
-
-							case XK_Print:
-								scan = 55;
-								goto docode;
-
-							case XK_F1:
-							case XK_F2:
-							case XK_F3:
-							case XK_F4:
-							case XK_F5:
-							case XK_F6:
-							case XK_F7:
-							case XK_F8:
-							case XK_F9:
-							case XK_F10:
-								scan = ks - XK_F1 + 59;
-								goto docode;
-
-							case XK_KP_7:
-								nlock = 1;
-							case XK_Home:
-							case XK_KP_Home:
-								scan = 71;
-								goto docode;
-
-							case XK_KP_8:
-								nlock = 1;
-							case XK_Up:
-							case XK_KP_Up:
-								scan = 72;
-								goto docode;
-
-							case XK_KP_9:
-								nlock = 1;
-							case XK_Prior:
-							case XK_KP_Prior:
-								scan = 73;
-								goto docode;
-
-							case XK_KP_Subtract:
-								scan = 74;
-								goto docode;
-
-							case XK_KP_4:
-								nlock = 1;
-							case XK_Left:
-							case XK_KP_Left:
-								if (ev->xkey.state & Mod1Mask) {
-									if (x_cvstat.scaling > 1)
-										x_cvstat.scaling--;
-								}
-								scan = 75;
-								goto docode;
-
-							case XK_KP_5:
-								nlock = 1;
-							case XK_Begin:
-							case XK_KP_Begin:
-								scan = 76;
-								goto docode;
-
-							case XK_KP_6:
-								nlock = 1;
-							case XK_Right:
-							case XK_KP_Right:
-								scan = 77;
-								if (ev->xkey.state & Mod1Mask) {
-									if (x_cvstat.scaling < 7)
-										x_cvstat.scaling++;
-								}
-								goto docode;
-
-							case XK_KP_Add:
-								scan = 78;
-								goto docode;
-
-							case XK_KP_1:
-								nlock = 1;
-							case XK_End:
-							case XK_KP_End:
-								scan = 79;
-								goto docode;
-
-							case XK_KP_2:
-								nlock = 1;
-							case XK_Down:
-							case XK_KP_Down:
-								scan = 80;
-								goto docode;
-
-							case XK_KP_3:
-								nlock = 1;
-							case XK_Next:
-							case XK_KP_Next:
-								scan = 81;
-								goto docode;
-
-							case XK_KP_0:
-								nlock = 1;
-							case XK_Insert:
-							case XK_KP_Insert:
-								scan = 82;
-								goto docode;
-
-							case XK_KP_Decimal:
-								nlock = 1;
-								scan = 83;
-								goto docode;
-
-							case XK_Delete:
-							case XK_KP_Delete:
-								/* scan = flipdelete ? 14 : 83; */
-								scan = 83;
-								goto docode;
-
-							case XK_BackSpace:
-								/* scan = flipdelete ? 83 : 14; */
-								scan = 14;
-								goto docode;
-
-							case XK_F11:
-								scan = 87;
-								goto docode;
-							case XK_F12:
-								scan = 88;
-								goto docode;
-
-
-							case XK_KP_Divide:
-								scan = Ascii2Scan['/'];
-								goto docode;
-
-							case XK_KP_Multiply:
-								scan = Ascii2Scan['*'];
-								goto docode;
-
-							default:
-								if (ks < ' ' || ks > '~')
-									break;
-								scan = Ascii2Scan[ks]; 
-								docode:
-								if (nlock)
-									scan |= 0x100;
-
-								if ((scan & ~0x100) > 88) {
-									scan = 0xffff;
-									break;
-								}
-
-								if (ev->xkey.state & Mod1Mask) {
-									scan = ScanCodes[scan & 0xff].alt;
-								} else if ((ev->xkey.state & ShiftMask) || (scan & 0x100)) {
-									scan = ScanCodes[scan & 0xff].shift;
-								} else if (ev->xkey.state & ControlMask) {
-									scan = ScanCodes[scan & 0xff].ctrl;
-								}  else
-									scan = ScanCodes[scan & 0xff].base;
-
-								break;
-						}
-						if (scan != 0xffff) {
-							uint16_t key=scan;
-							write(key_pipe[1], &key, (scan&0xff)?1:2);
-						}
-						break;
-				}
-				return(1);
-			}
-		default:
-			break;
-	}
-	return(0);
-}
-
-static void x11_terminate_event_thread(void)
-{
-	terminate = 1;
-	sem_wait(&event_thread_complete);
-}
-
-static void readev(struct x11_local_event *lev)
-{
-	fd_set	rfd;
-	int ret;
-	int rcvd = 0;
-	char *buf = (char *)lev;
-
-	FD_ZERO(&rfd);
-	FD_SET(local_pipe[0], &rfd);
-
-	while (rcvd < sizeof(*lev)) {
-		select(local_pipe[0]+1, &rfd, NULL, NULL, NULL);
-		ret = read(local_pipe[0], buf+rcvd, sizeof(*lev) - rcvd);
-		if (ret > 0)
-			rcvd += ret;
-	}
-}
-
-void x11_event_thread(void *args)
-{
-	int x;
-	int high_fd;
-	fd_set fdset;
-	XEvent ev;
-	static struct timeval tv;
-
-	SetThreadName("X11 Events");
-	if(video_init()) {
-		sem_post(&init_complete);
-		return;
-	}
-	sem_init(&event_thread_complete, 0, 0);
-	atexit(x11_terminate_event_thread);
-
-	if(local_pipe[0] > xfd)
-		high_fd=local_pipe[0];
-	else
-		high_fd=xfd;
-
-	x11.XSync(dpy, False);
-	x11_initialized=1;
-	sem_post(&init_complete);
-	for (;!terminate;) {
-		check_scaling();
-
-		tv.tv_sec=0;
-		tv.tv_usec=54925; /* was 54925 (was also 10) */ 
-
-		/*
-		 * Handle any events just sitting around...
-		 */
-		while (QLength(dpy) > 0) {
-			x11.XNextEvent(dpy, &ev);
-			x11_event(&ev);
-		}
-
-		FD_ZERO(&fdset);
-		FD_SET(xfd, &fdset);
-		FD_SET(local_pipe[0], &fdset);
-
-		x = select(high_fd+1, &fdset, 0, 0, &tv);
-
-		switch (x) {
-			case -1:
-				/*
-				* Errno might be wrong, so we just select again.
-				* This could cause a problem if something really
-				* was wrong with select....
-				*/
-
-				/* perror("select"); */
-				break;
-			case 0:
-				/* Timeout */
-				break;
-			default:
-				if (FD_ISSET(xfd, &fdset)) {
-					// This blocks for the event...
-					x11.XNextEvent(dpy, &ev);
-					x11_event(&ev);
-					// And this reads anything else from the queue.
-					while (QLength(dpy) > 0) {
-						x11.XNextEvent(dpy, &ev);
-						x11_event(&ev);
-					}
-				}
-				if(FD_ISSET(local_pipe[0], &fdset)) {
-					struct x11_local_event lev;
-
-					readev(&lev);
-					switch(lev.type) {
-						case X11_LOCAL_SETMODE:
-							init_mode(lev.data.mode);
-							break;
-						case X11_LOCAL_SETNAME:
-							x11.XSetIconName(dpy, win, lev.data.name);
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_SETTITLE:
-							x11.XStoreName(dpy, win, lev.data.title);
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_COPY:
-							x11.XSetSelectionOwner(dpy, CONSOLE_CLIPBOARD, win, CurrentTime);
-							break;
-						case X11_LOCAL_PASTE: 
-							{
-								Window sowner=None;
-
-								sowner=x11.XGetSelectionOwner(dpy, CONSOLE_CLIPBOARD);
-								if(sowner==win) {
-									/* Get your own primary selection */
-									if(copybuf==NULL)
-										pastebuf=NULL;
-									else {
-										pastebuf=strdup(copybuf);
-										pastebuf_format = copybuf_format;
-									}
-									/* Set paste buffer */
-									sem_post(&pastebuf_set);
-									sem_wait(&pastebuf_used);
-									FREE_AND_NULL(pastebuf);
-								}
-								else if(sowner!=None) {
-									x11.XConvertSelection(dpy, CONSOLE_CLIPBOARD, x11.utf8 ? x11.utf8 : XA_STRING, x11.utf8 ? x11.utf8 : XA_STRING, win, CurrentTime);
-								}
-								else {
-									/* Set paste buffer */
-									pastebuf=NULL;
-									sem_post(&pastebuf_set);
-									sem_wait(&pastebuf_used);
-								}
-							}
-							break;
-						case X11_LOCAL_DRAWRECT:
-							local_draw_rect(lev.data.rect);
-							break;
-						case X11_LOCAL_FLUSH:
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_BEEP:
-							x11.XBell(dpy, 100);
-							break;
-						case X11_LOCAL_SETICON: {
-							Atom wmicon = x11.XInternAtom(dpy, "_NET_WM_ICON", False);
-							if (wmicon) {
-								x11.XChangeProperty(dpy, win, wmicon, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)lev.data.icon_data, lev.data.icon_data[0] * lev.data.icon_data[1] + 2);
-								x11.XFlush(dpy);
-							}
-							free(lev.data.icon_data);
-							break;
-						}
-						case X11_LOCAL_MOUSEPOINTER: {
-							unsigned shape = UINT_MAX;
-							Cursor oc = curs;
-							switch (lev.data.ptr) {
-								case CIOLIB_MOUSEPTR_ARROW:
-									// Use default
-									break;
-								case CIOLIB_MOUSEPTR_BAR:
-									shape = XC_xterm;
-									break;
-							}
-							if (shape == UINT_MAX)
-								x11.XDefineCursor(dpy, win, None);
-							else {
-								curs = x11.XCreateFontCursor(dpy, shape);
-								x11.XDefineCursor(dpy, win, curs);
-							}
-							if (oc != None && oc != curs)
-								x11.XFreeCursor(dpy, oc);
-							break;
-						}
-					}
-				}
-		}
-	}
-	x11.XCloseDisplay(dpy);
-	sem_post(&event_thread_complete);
-}
diff --git a/ciolib/x_events.h b/ciolib/x_events.h
deleted file mode 100644
index eb44f6c..0000000
--- a/ciolib/x_events.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef _X_EVENTS_H_
-#define _X_EVENTS_H_
-
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
-
-enum x11_local_events {
-	 X11_LOCAL_SETMODE
-	,X11_LOCAL_SETNAME
-	,X11_LOCAL_SETTITLE
-	,X11_LOCAL_COPY
-	,X11_LOCAL_PASTE
-	,X11_LOCAL_DRAWRECT
-	,X11_LOCAL_FLUSH
-	,X11_LOCAL_BEEP
-	,X11_LOCAL_SETICON
-	,X11_LOCAL_MOUSEPOINTER
-};
-
-struct x11_local_event {
-	enum x11_local_events	type;
-	union {
-		int		mode;
-		char	name[81];
-		char	title[81];
-		struct	rectlist *rect;
-		unsigned long	*icon_data;
-		enum ciolib_mouse_ptr ptr;
-	} data;
-};
-
-/* X functions */
-struct x11 {
-	int		(*XChangeGC)	(Display*, GC, unsigned long, XGCValues*);
-	int		(*XCopyPlane)	(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long);
-	int		(*XFillRectangle)	(Display*, Drawable, GC, int, int, unsigned int, unsigned int);
-	int		(*XDrawPoint)	(Display*, Drawable, GC, int, int);
-	int		(*XFlush)		(Display*);
-	int		(*XSync)		(Display*, Bool);
-	int		(*XBell)		(Display*, int);
-	int		(*XLookupString)(XKeyEvent*, char*, int, KeySym*, XComposeStatus*);
-	int		(*XNextEvent)	(Display*, XEvent *);
-	XSizeHints*	(*XAllocSizeHints)(void);
-	void		(*XSetWMNormalHints)	(Display*, Window, XSizeHints*);
-	int		(*XResizeWindow)(Display*, Window, unsigned int, unsigned int);
-	int		(*XMapWindow)	(Display*, Window);
-	int		(*XFree)		(void *data);
-	int		(*XFreePixmap)	(Display*, Pixmap);
-	Pixmap	(*XCreatePixmap)(Display*, Drawable, unsigned int, unsigned int, unsigned int);
-	void	(*XCopyArea)	(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int);
-	Pixmap	(*XCreateBitmapFromData)	(Display*, Drawable, _Xconst char*, unsigned int, unsigned int);
-	Status	(*XAllocColor)	(Display*, Colormap, XColor*);
-	Display*(*XOpenDisplay)	(_Xconst char*);
-	int	(*XCloseDisplay)	(Display*);
-	Window	(*XCreateSimpleWindow)	(Display*, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long);
-	GC		(*XCreateGC)	(Display*, Drawable, unsigned long, XGCValues*);
-	int		(*XSelectInput)	(Display*, Window, long);
-	int		(*XStoreName)	(Display*, Window, _Xconst char*);
-	Window	(*XGetSelectionOwner)	(Display*, Atom);
-	int		(*XConvertSelection)	(Display*, Atom, Atom, Atom, Window, Time);
-	int		(*XGetWindowProperty)	(Display*, Window, Atom, long, long, Bool, Atom, Atom*, int*, unsigned long *, unsigned long *, unsigned char **);
-	int		(*XChangeProperty)		(Display*, Window, Atom, Atom, int, int, _Xconst unsigned char*, int);
-	Status	(*XSendEvent)	(Display*, Window, Bool, long, XEvent*);
-	XImage*	(*XCreateImage)	(Display *, Visual *, unsigned int, int, int, char *,unsigned int, unsigned int, int, int);
-#ifndef XPutPixel
-	void	(*XPutPixel)	(XImage*,int,int,unsigned long);
-#endif
-	int	(*XPutImage)	(Display*, Drawable, GC, XImage *, int,int,int,int,unsigned int,unsigned int);
-#ifndef XDestroyImage
-	void	(*XDestroyImage)(XImage*);
-#endif
-	int		(*XSetSelectionOwner)	(Display*, Atom, Window, Time);	
-	int		(*XSetIconName)	(Display*, Window, _Xconst char *);
-	int		(*XSynchronize)	(Display*, Bool);
-	Status	(*XGetWindowAttributes)	(Display*,Window,XWindowAttributes*);
-	XWMHints* (*XAllocWMHints) (void);
-	void	(*XSetWMProperties) (Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*);
-	Status	(*XSetWMProtocols) (Display*, Window, Atom *, int);
-	Atom	(*XInternAtom) (Display *, char *, Bool);
-	int		(*XFreeColors) (Display*, Colormap, unsigned long *, int, unsigned long);
-	XVisualInfo *(*XGetVisualInfo)(Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return);
-	Window (*XCreateWindow)(Display *display, Window parent, int x, int y, unsigned int width, unsigned int height, unsigned int border_width, int depth, 
-                       unsigned int class, Visual *visual, unsigned long valuemask, XSetWindowAttributes *attributes);
-	Colormap (*XCreateColormap)(Display *display, Window w, Visual *visual, int alloc);
-	XClassHint *(*XAllocClassHint)(void);
-	int (*XSetForeground)(Display *display, GC gc, unsigned long foreground);
-	char *(*XSetLocaleModifiers)(char *modifier_list);
-	XIM (*XOpenIM)(Display *display, XrmDatabase db, char *res_name, char *res_class);
-	XIC (*XCreateIC)(XIM im, ...);
-	int (*XwcLookupString)(XIC ic, XKeyPressedEvent *event, wchar_t *buffer_return, int wchars_buffer, KeySym *keysym_return, Status *status_return);
-	void (*XSetICFocus)(XIC ic);
-	Bool (*XFilterEvent)(XEvent *event, Window w);
-	Cursor (*XCreateFontCursor)(Display *display, unsigned int shape);
-	int (*XDefineCursor)(Display *display, Window w, Cursor cursor);
-	int (*XFreeCursor)(Display *display, Cursor cursor);
-	Atom utf8;
-	Atom targets;
-};
-
-extern int local_pipe[2];			/* Used for passing local events */
-extern int key_pipe[2];			/* Used for passing keyboard events */
-
-extern struct x11 x11;
-
-extern char 	*copybuf;
-extern pthread_mutex_t	copybuf_mutex;
-extern char 	*pastebuf;
-extern sem_t	pastebuf_set;
-extern sem_t	pastebuf_used;
-extern Atom	copybuf_format;
-extern Atom	pastebuf_format;
-extern sem_t	init_complete;
-extern sem_t	mode_set;
-extern sem_t	event_thread_complete;
-extern int terminate;
-extern int x11_window_xpos;
-extern int x11_window_ypos;
-extern int x11_window_width;
-extern int x11_window_height;
-extern int x11_initialized;
-extern struct video_stats x_cvstat;
-
-void x11_event_thread(void *args);
-
-#endif
diff --git a/ciolib/xbr.c b/ciolib/xbr.c
deleted file mode 100644
index a7f02ed..0000000
--- a/ciolib/xbr.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * Copyright (c) 2011, 2012 Hyllian/Jararaca <sergiogdb@gmail.com>
- * Copyright (c) 2014 Arwa Arif <arwaarif1994@gmail.com>
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * XBR Filter is used for depixelization of image.
- * This is based on Hyllian's xBR shader.
- *
- * @see https://forums.libretro.com/t/xbr-algorithm-tutorial/123
- * @see https://github.com/yoyofr/iFBA/blob/master/fba_src/src/intf/video/scalers/xbr.cpp
- */
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include "scale.h"
-
-#define LB_MASK       0x00FEFEFE
-#define RED_BLUE_MASK 0x00FF00FF
-#define GREEN_MASK    0x0000FF00
-
-#ifdef PI
-#undef PI
-#endif
-
-static uint32_t pixel_diff(uint32_t x, uint32_t y)
-{
-#define YMASK 0xff0000
-#define UMASK 0x00ff00
-#define VMASK 0x0000ff
-#define ABSDIFF(a,b) (abs((int)(a)-(int)(b)))
-
-    uint32_t yuv1 = r2y[x & 0xffffff];
-
-    uint32_t yuv2 = r2y[y & 0xffffff];
-
-    return (ABSDIFF(yuv1 & YMASK, yuv2 & YMASK) >> 16) +
-           (ABSDIFF(yuv1 & UMASK, yuv2 & UMASK) >>  8) +
-            ABSDIFF(yuv1 & VMASK, yuv2 & VMASK);
-}
-
-#define ALPHA_BLEND_128_W(a, b) ((((a) & LB_MASK) >> 1) + (((b) & LB_MASK) >> 1))
-#define ALPHA_BLEND_BASE(a, b, m, s) (  (RED_BLUE_MASK & (((a) & RED_BLUE_MASK) + (((((b) & RED_BLUE_MASK) - ((a) & RED_BLUE_MASK)) * (m)) >> (s)))) \
-                                      | (GREEN_MASK    & (((a) & GREEN_MASK)    + (((((b) & GREEN_MASK)    - ((a) & GREEN_MASK))    * (m)) >> (s)))))
-#define ALPHA_BLEND_32_W(a, b)  ALPHA_BLEND_BASE(a, b, 1, 3)
-#define ALPHA_BLEND_64_W(a, b)  ALPHA_BLEND_BASE(a, b, 1, 2)
-#define ALPHA_BLEND_192_W(a, b) ALPHA_BLEND_BASE(a, b, 3, 2)
-#define ALPHA_BLEND_224_W(a, b) ALPHA_BLEND_BASE(a, b, 7, 3)
-
-#define df(A, B) pixel_diff(A, B)
-#define eq(A, B) (df(A, B) < 155)
-
-#define FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N0, N1, N2, N3) do {                                                                  \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if ((e < i) && ((!eq(PF,PB) && !eq(PH,PD)) || (eq(PE,PI)                                \
-                          && (!eq(PF,I4) && !eq(PH,I5)))                                            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N3] = ALPHA_BLEND_224_W(E[N3], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                    E[N1] = E[N2];                                                                  \
-                } else if (left) {                                                                  \
-                    E[N3] = ALPHA_BLEND_192_W(E[N3], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                } else if (up) {                                                                    \
-                    E[N3] = ALPHA_BLEND_192_W(E[N3], px);                                           \
-                    E[N1] = ALPHA_BLEND_64_W( E[N1], px);                                           \
-                } else { /* diagonal */                                                             \
-                    E[N3] = ALPHA_BLEND_128_W(E[N3], px);                                           \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N3] = ALPHA_BLEND_128_W(E[N3], px);                                               \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N0, N1, N2, N3, N4, N5, N6, N7, N8) do {                                              \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if (e < i && ((!eq(PF,PB) && !eq(PF,PC)) || (!eq(PH,PD) && !eq(PH,PG)) || (eq(PE,PI)    \
-                          && ((!eq(PF,F4) && !eq(PF,I4)) || (!eq(PH,H5) && !eq(PH,I5))))            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N7] = ALPHA_BLEND_192_W(E[N7], px);                                           \
-                    E[N6] = ALPHA_BLEND_64_W( E[N6], px);                                           \
-                    E[N5] = E[N7];                                                                  \
-                    E[N2] = E[N6];                                                                  \
-                    E[N8] = px;                                                                     \
-                } else if (left) {                                                                  \
-                    E[N7] = ALPHA_BLEND_192_W(E[N7], px);                                           \
-                    E[N5] = ALPHA_BLEND_64_W( E[N5], px);                                           \
-                    E[N6] = ALPHA_BLEND_64_W( E[N6], px);                                           \
-                    E[N8] = px;                                                                     \
-                } else if (up) {                                                                    \
-                    E[N5] = ALPHA_BLEND_192_W(E[N5], px);                                           \
-                    E[N7] = ALPHA_BLEND_64_W( E[N7], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                    E[N8] = px;                                                                     \
-                } else { /* diagonal */                                                             \
-                    E[N8] = ALPHA_BLEND_224_W(E[N8], px);                                           \
-                    E[N5] = ALPHA_BLEND_32_W( E[N5], px);                                           \
-                    E[N7] = ALPHA_BLEND_32_W( E[N7], px);                                           \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N8] = ALPHA_BLEND_128_W(E[N8], px);                                               \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) do {            \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if (e < i && ((!eq(PF,PB) && !eq(PH,PD)) || (eq(PE,PI)                                  \
-                          && (!eq(PF,I4) && !eq(PH,I5)))                                            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N13] = ALPHA_BLEND_192_W(E[N13], px);                                         \
-                    E[N12] = ALPHA_BLEND_64_W( E[N12], px);                                         \
-                    E[N15] = E[N14] = E[N11] = px;                                                  \
-                    E[N10] = E[N3]  = E[N12];                                                       \
-                    E[N7]  = E[N13];                                                                \
-                } else if (left) {                                                                  \
-                    E[N11] = ALPHA_BLEND_192_W(E[N11], px);                                         \
-                    E[N13] = ALPHA_BLEND_192_W(E[N13], px);                                         \
-                    E[N10] = ALPHA_BLEND_64_W( E[N10], px);                                         \
-                    E[N12] = ALPHA_BLEND_64_W( E[N12], px);                                         \
-                    E[N14] = px;                                                                    \
-                    E[N15] = px;                                                                    \
-                } else if (up) {                                                                    \
-                    E[N14] = ALPHA_BLEND_192_W(E[N14], px);                                         \
-                    E[N7 ] = ALPHA_BLEND_192_W(E[N7 ], px);                                         \
-                    E[N10] = ALPHA_BLEND_64_W( E[N10], px);                                         \
-                    E[N3 ] = ALPHA_BLEND_64_W( E[N3 ], px);                                         \
-                    E[N11] = px;                                                                    \
-                    E[N15] = px;                                                                    \
-                } else { /* diagonal */                                                             \
-                    E[N11] = ALPHA_BLEND_128_W(E[N11], px);                                         \
-                    E[N14] = ALPHA_BLEND_128_W(E[N14], px);                                         \
-                    E[N15] = px;                                                                    \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N15] = ALPHA_BLEND_128_W(E[N15], px);                                             \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define CLAMP(x) do { \
-	if (x < 0) \
-		x = 0; \
-	else if (x > 255) \
-		x = 255; \
-} while(0)
-
-void
-xbr_filter(uint32_t *data, uint32_t *out, int width, int height, int n)
-{
-    int x, y;
-    const int nl = width * n;
-    const int nl1 = nl + nl;
-    const int nl2 = nl1 + nl;
-
-    for (y = 0; y < height; y++) {
-
-        uint32_t *E = out + y * width * n * n;
-        const uint32_t *sa2 = (data + y * width - 2); /* center */
-        const uint32_t *sa1 = sa2 - (width); /* up x1 */
-        const uint32_t *sa0 = sa1 - (width); /* up x2 */
-        const uint32_t *sa3 = sa2 + (width); /* down x1 */
-        const uint32_t *sa4 = sa3 + (width); /* down x2 */
-
-        if (y <= 1) {
-            sa0 = sa1;
-            if (y == 0) {
-                sa0 = sa1 = sa2;
-            }
-        }
-
-        if (y >= height - 2) {
-            sa4 = sa3;
-            if (y == height - 1) {
-                sa4 = sa3 = sa2;
-            }
-        }
-
-        for (x = 0; x < width; x++) {
-            const uint32_t B1 = sa0[2];
-            const uint32_t PB = sa1[2];
-            const uint32_t PE = sa2[2];
-            const uint32_t PH = sa3[2];
-            const uint32_t H5 = sa4[2];
-
-            const int pprev = 2 - (x > 0);
-            const uint32_t A1 = sa0[pprev];
-            const uint32_t PA = sa1[pprev];
-            const uint32_t PD = sa2[pprev];
-            const uint32_t PG = sa3[pprev];
-            const uint32_t G5 = sa4[pprev];
-
-            const int pprev2 = pprev - (x > 1);
-            const uint32_t A0 = sa1[pprev2];
-            const uint32_t D0 = sa2[pprev2];
-            const uint32_t G0 = sa3[pprev2];
-
-            const int pnext = 3 - (x == width - 1);
-            const uint32_t C1 = sa0[pnext];
-            const uint32_t PC = sa1[pnext];
-            const uint32_t PF = sa2[pnext];
-            const uint32_t PI = sa3[pnext];
-            const uint32_t I5 = sa4[pnext];
-
-            const int pnext2 = pnext + 1 - (x >= width - 2);
-            const uint32_t C4 = sa1[pnext2];
-            const uint32_t F4 = sa2[pnext2];
-            const uint32_t I4 = sa3[pnext2];
-
-            if (n == 2) {
-                E[0]  = E[1]      =     // 0, 1
-                E[nl] = E[nl + 1] = PE; // 2, 3
-
-                FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, 0, 1, nl, nl+1);
-                FILT2(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, nl, 0, nl+1, 1);
-                FILT2(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, nl+1, nl, 1, 0);
-                FILT2(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, 1, nl+1, 0, nl);
-            } else if (n == 3) {
-                E[0]   = E[1]     = E[2]     =     // 0, 1, 2
-                E[nl]  = E[nl+1]  = E[nl+2]  =     // 3, 4, 5
-                E[nl1] = E[nl1+1] = E[nl1+2] = PE; // 6, 7, 8
-
-                FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, 0, 1, 2, nl, nl+1, nl+2, nl1, nl1+1, nl1+2);
-                FILT3(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, nl1, nl, 0, nl1+1, nl+1, 1, nl1+2, nl+2, 2);
-                FILT3(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, nl1+2, nl1+1, nl1, nl+2, nl+1, nl, 2, 1, 0);
-                FILT3(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, 2, nl+2, nl1+2, 1, nl+1, nl1+1, 0, nl, nl1);
-            } else if (n == 4) {
-                E[0]   = E[1]     = E[2]     = E[3]     =     //  0,  1,  2,  3
-                E[nl]  = E[nl+1]  = E[nl+2]  = E[nl+3]  =     //  4,  5,  6,  7
-                E[nl1] = E[nl1+1] = E[nl1+2] = E[nl1+3] =     //  8,  9, 10, 11
-                E[nl2] = E[nl2+1] = E[nl2+2] = E[nl2+3] = PE; // 12, 13, 14, 15
-
-                FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, nl2+3, nl2+2, nl1+3, 3, nl+3, nl1+2, nl2+1, nl2, nl1+1, nl+2, 2, 1, nl+1, nl1, nl, 0);
-                FILT4(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, 3, nl+3, 2, 0, 1, nl+2, nl1+3, nl2+3, nl1+2, nl+1, nl, nl1, nl1+1, nl2+2, nl2+1, nl2);
-                FILT4(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, 0, 1, nl, nl2, nl1, nl+1, 2, 3, nl+2, nl1+1, nl2+1, nl2+2, nl1+2, nl+3, nl1+3, nl2+3);
-                FILT4(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, nl2, nl1, nl2+1, nl2+3, nl2+2, nl1+1, nl, 0, nl+1, nl1+2, nl1+3, nl+3, nl+2, 1, 2, 3);
-            }
-
-            sa0 += 1;
-            sa1 += 1;
-            sa2 += 1;
-            sa3 += 1;
-            sa4 += 1;
-
-            E += n;
-        }
-    }
-}
diff --git a/ciolib/xbr.h b/ciolib/xbr.h
deleted file mode 100644
index c8c32ae..0000000
--- a/ciolib/xbr.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <inttypes.h>
-
-void xbr_filter(uint32_t *data, uint32_t *out, int width, int height, int n);
-
diff --git a/comio/CMakeLists.txt b/comio/CMakeLists.txt
deleted file mode 100644
index 5212bed..0000000
--- a/comio/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-project (COMIO C)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	comio.c
-)
-
-set(HEADER
-	comio.h
-)
-
-if(WIN32)
-	list(APPEND SOURCE comio_win32.c)
-else()
-	list(APPEND SOURCE comio_nix.c)
-endif()
-
-add_library(comio OBJECT ${SOURCE})
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-	target_compile_definitions(comio PRIVATE SPEED_MACROS_ONLY)
-endif()
-target_include_directories(comio PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-
-target_link_libraries(comio xpdev)
diff --git a/comio/comio.c b/comio/comio.c
deleted file mode 100644
index 2901527..0000000
--- a/comio/comio.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* comio.c */
-
-/* Synchronet Serial Communications I/O Library Common Functions */
-
-/* $Id: comio.c,v 1.4 2020/06/26 19:33:08 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "comio.h"
-#include "genwrap.h"	/* msclock */
-
-size_t comReadBuf(COM_HANDLE handle, char* buf, size_t buflen, const char* terminators, int timeout)
-{
-	BYTE		ch;
-	size_t		len=0;
-	msclock_t	start=msclock();
-
-	while(len < buflen) {
-		if(!comReadByte(handle, &ch)) {
-			if(msclock()-start >= timeout)
-				break;
-			YIELD();
-			continue;
-		}
-		if(len && terminators!=NULL && strchr(terminators, ch)!=NULL)
-			break;
-		buf[len++]=ch;
-	}
-
-	return len;
-}
-
-size_t comReadLine(COM_HANDLE handle, char* buf, size_t buflen, int timeout)
-{
-	size_t	len;
-
-	len=comReadBuf(handle, buf, buflen-1, "\n", timeout);
-
-	buf[len]=0;
-
-	return len;
-}
-
diff --git a/comio/comio.h b/comio/comio.h
deleted file mode 100644
index 557381b..0000000
--- a/comio/comio.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* comio.h */
-
-/* Synchronet Serial Communications (COM) I/O Library */
-
-/* $Id: comio.h,v 1.15 2020/06/26 19:56:48 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _COMIO_H
-#define _COMIO_H
-
-#include <gen_defs.h>	/* BOOL */
-
-#define COM_ERROR						-1
-
-#ifdef _WIN32
-	#if defined(COMIO_IMPORTS) || defined(COMIO_EXPORTS)
-		#if defined(COMIO_IMPORTS)
-			#define COMIOEXPORT __declspec( dllimport )
-		#else
-			#define COMIOEXPORT __declspec( dllexport )
-		#endif
-	#else	/* self-contained executable */
-		#define COMIOEXPORT
-	#endif
-#else
-	#define COMIOEXPORT
-#endif
-
-#ifdef _WIN32
-	#include <windows.h>
-
-    #define COM_HANDLE					HANDLE
-	#define COM_HANDLE_INVALID			INVALID_HANDLE_VALUE
-	#define COM_ERROR_VALUE				GetLastError()
-/* Modem Status bits */
-	#define COM_CTS						MS_CTS_ON
-	#define COM_DSR						MS_DSR_ON
-	#define COM_RING					MS_RING_ON
-	#define	COM_DCD						MS_RLSD_ON
-#else
-	#include <termios.h>
-
-    #define COM_HANDLE					int
-	#define COM_HANDLE_INVALID			-1
-	#define COM_ERROR_VALUE				errno
-
-/* Stuff we apparently don't care about... 
- *
- *	TIOCM_LE   Line Enable.
- *	TIOCM_DTR  Data Terminal Ready.
- *	TIOCM_RTS  Request To Send.
- *	TIOCM_ST   Secondary Transmit.
- *	TIOCM_SR   Secondary Receive.
- */
-
-	#define COM_CTS						TIOCM_CTS  /* Clear To Send. */
-#ifdef TIOCM_CAR
-	#define COM_DCD						TIOCM_CAR  /* Carrier Detect. */
-#else
-	#define COM_DCD						TIOCM_CD   /* Carrier Detect (synonym). */
-#endif
-#ifdef TIOCM_RNG
-	#define COM_RING					TIOCM_RNG  /* Ring Indication. */
-#else
-	#define COM_RING					TIOCM_RI   /* Ring Indication (synonym). */
-#endif
-	#define COM_DSR						TIOCM_DSR  /* Data Set Ready. */
-
-#endif
-
-#define COM_FLOW_CONTROL_NONE			0
-#define COM_FLOW_CONTROL_RTS_CTS		(1<<0)
-#define COM_FLOW_CONTROL_DTR_DSR		(1<<1)
-#define COM_FLOW_CONTROL_XON_OFF		(1<<2)
-
-/**************/
-/* Prototypes */
-/**************/
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-COMIOEXPORT char*		comVersion(char* str, size_t len);
-COMIOEXPORT COM_HANDLE	comOpen(const char* device);
-COMIOEXPORT BOOL		comClose(COM_HANDLE);
-COMIOEXPORT long		comGetBaudRate(COM_HANDLE);
-COMIOEXPORT BOOL		comSetBaudRate(COM_HANDLE, ulong rate);
-COMIOEXPORT int			comGetFlowControl(COM_HANDLE);
-COMIOEXPORT BOOL		comSetFlowControl(COM_HANDLE, int);
-COMIOEXPORT int			comGetModemStatus(COM_HANDLE);
-COMIOEXPORT int			comRaiseDTR(COM_HANDLE);
-COMIOEXPORT int			comLowerDTR(COM_HANDLE);
-COMIOEXPORT int			comRaiseRTS(COM_HANDLE);
-COMIOEXPORT int			comLowerRTS(COM_HANDLE);
-COMIOEXPORT BOOL		comWriteByte(COM_HANDLE, BYTE);
-COMIOEXPORT int			comWriteBuf(COM_HANDLE, const BYTE*, size_t buflen);
-COMIOEXPORT int			comWriteString(COM_HANDLE, const char*);
-COMIOEXPORT BOOL		comReadByte(COM_HANDLE, BYTE*);
-COMIOEXPORT size_t		comReadBuf(COM_HANDLE, char* buf, size_t buflen
-							,const char* terminators, int timeout /* in milliseconds */);
-COMIOEXPORT size_t		comReadLine(COM_HANDLE, char* buf, size_t buflen
-							,int timeout /* in milliseconds */);
-COMIOEXPORT BOOL		comPurgeInput(COM_HANDLE);
-COMIOEXPORT BOOL		comPurgeOutput(COM_HANDLE);
-
-#if defined(__cplusplus)
-}
-#endif
-
-
-#endif /* Don't add anything after this #endif statement */
diff --git a/comio/comio_nix.c b/comio/comio_nix.c
deleted file mode 100644
index 03f33d4..0000000
--- a/comio/comio_nix.c
+++ /dev/null
@@ -1,413 +0,0 @@
-/* comio_nix.c */
-
-/* Synchronet Serial Communications I/O Library Functions for *nix */
-
-/* $Id: comio_nix.c,v 1.19 2020/06/27 08:23:39 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4       (Plain Text/Source Code File Header)            *
- * @format.use-tabs true    (see http://www.synchro.net/ptsc_hdr.html)      *
- *                                                                          *
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html           *
- *                                                                          *
- * This library is free software; you can redistribute it and/or            *
- * modify it under the terms of the GNU Lesser General Public License       *
- * as published by the Free Software Foundation; either version 2           *
- * of the License, or (at your option) any later version.                   *
- * See the GNU Lesser General Public License for more details: lgpl.txt or  *
- * http://www.fsf.org/copyleft/lesser.html                                  *
- *                                                                          *
- * Anonymous FTP access to the most recent released source is available at  *
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net  *
- *                                                                          *
- * Anonymous CVS access to the development source and modification history  *
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:                  *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login            *
- *     (just hit return, no password is necessary)                          *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src     *
- *                                                                          *
- * For Synchronet coding style and modification guidelines, see             *
- * http://www.synchro.net/source.html                                       *
- *                                                                          *
- * You are encouraged to submit any modifications (preferably in Unix diff  *
- * format) via e-mail to mods@synchro.net                                   *
- *                                                                          *
- * Note: If this box doesn't appear square, then you need to fix your tabs. *
- ****************************************************************************/
-
-#include <sys/ioctl.h>
-#include <sys/file.h>
-#include <fcntl.h>      // O_NONBLOCK
-#include "comio.h"
-#include "genwrap.h"
-
-#if defined(CCTS_OFLOW) && defined(CRTS_IFLOW)
- #define CTSRTS_FLOW_CFLAGS (CCTS_OFLOW | CRTS_IFLOW)
-#elif defined(CRTSCTS)
- #define CTSRTS_FLOW_CFLAGS (CRTSCTS)
-#else
- #error No way to control CTS/RTS flow control
-#endif
-
-#if defined(IXON) && defined (IXOFF)
- #define XONXOFF_FLOW_IFLAGS (IXON | IXOFF)
-#else
- #error No way to control XON/XOFF flow control
-#endif
-
-#ifdef SPEED_MACROS_ONLY
-
-#define SUPPORTED_SPEED(x) \
-    if (speed <= (x)) \
-        return B##x
-
-speed_t rate_to_macro(unsigned long speed)
-{
-    // Standard values
-    SUPPORTED_SPEED(0);
-    SUPPORTED_SPEED(50);
-    SUPPORTED_SPEED(75);
-    SUPPORTED_SPEED(110);
-    SUPPORTED_SPEED(134);
-    SUPPORTED_SPEED(150);
-    SUPPORTED_SPEED(200);
-    SUPPORTED_SPEED(300);
-    SUPPORTED_SPEED(600);
-    SUPPORTED_SPEED(1200);
-    SUPPORTED_SPEED(1800);
-    SUPPORTED_SPEED(2400);
-    SUPPORTED_SPEED(4800);
-    SUPPORTED_SPEED(9600);
-    SUPPORTED_SPEED(19200);
-    SUPPORTED_SPEED(38400);
-
-    // Non-POSIX
-#ifdef B57600
-    SUPPORTED_SPEED(57600);
-#endif
-#ifdef B115200
-    SUPPORTED_SPEED(115200);
-#endif
-#ifdef B230400
-    SUPPORTED_SPEED(230400);
-#endif
-#ifdef B460800
-    SUPPORTED_SPEED(460800);
-#endif
-#ifdef B500000
-    SUPPORTED_SPEED(500000);
-#endif
-#ifdef B576000
-    SUPPORTED_SPEED(576000);
-#endif
-#ifdef B921600
-    SUPPORTED_SPEED(921600);
-#endif
-#ifdef B1000000
-    SUPPORTED_SPEED(1000000);
-#endif
-#ifdef B1152000
-    SUPPORTED_SPEED(1152000);
-#endif
-#ifdef B1500000
-    SUPPORTED_SPEED(1500000);
-#endif
-#ifdef B2000000
-    SUPPORTED_SPEED(2000000);
-#endif
-#ifdef B2500000
-    SUPPORTED_SPEED(2500000);
-#endif
-#ifdef B3000000
-    SUPPORTED_SPEED(3000000);
-#endif
-#ifdef B3500000
-    SUPPORTED_SPEED(3500000);
-#endif
-#ifdef B4000000
-    SUPPORTED_SPEED(4000000);
-#endif
-    return B0;
-}
-#undef SUPPORTED_SPEED
-#define SUPPORTED_SPEED(x) \
-    if (speed == B##x) \
-        return x;
-
-unsigned long macro_to_rate(speed_t speed)
-{
-    // Standard values
-    SUPPORTED_SPEED(0);
-    SUPPORTED_SPEED(50);
-    SUPPORTED_SPEED(75);
-    SUPPORTED_SPEED(110);
-    SUPPORTED_SPEED(134);
-    SUPPORTED_SPEED(150);
-    SUPPORTED_SPEED(200);
-    SUPPORTED_SPEED(300);
-    SUPPORTED_SPEED(600);
-    SUPPORTED_SPEED(1200);
-    SUPPORTED_SPEED(1800);
-    SUPPORTED_SPEED(2400);
-    SUPPORTED_SPEED(4800);
-    SUPPORTED_SPEED(9600);
-    SUPPORTED_SPEED(19200);
-    SUPPORTED_SPEED(38400);
-
-    // Non-POSIX
-#ifdef B57600
-    SUPPORTED_SPEED(57600);
-#endif
-#ifdef B115200
-    SUPPORTED_SPEED(115200);
-#endif
-#ifdef B230400
-    SUPPORTED_SPEED(230400);
-#endif
-#ifdef B460800
-    SUPPORTED_SPEED(460800);
-#endif
-#ifdef B500000
-    SUPPORTED_SPEED(500000);
-#endif
-#ifdef B576000
-    SUPPORTED_SPEED(576000);
-#endif
-#ifdef B921600
-    SUPPORTED_SPEED(921600);
-#endif
-#ifdef B1000000
-    SUPPORTED_SPEED(1000000);
-#endif
-#ifdef B1152000
-    SUPPORTED_SPEED(1152000);
-#endif
-#ifdef B1500000
-    SUPPORTED_SPEED(1500000);
-#endif
-#ifdef B2000000
-    SUPPORTED_SPEED(2000000);
-#endif
-#ifdef B2500000
-    SUPPORTED_SPEED(2500000);
-#endif
-#ifdef B3000000
-    SUPPORTED_SPEED(3000000);
-#endif
-#ifdef B3500000
-    SUPPORTED_SPEED(3500000);
-#endif
-#ifdef B4000000
-    SUPPORTED_SPEED(4000000);
-#endif
-    return 0;
-}
-#undef SUPPORTED_SPEED
-
-#else
-#define rate_to_macro(x)    (x)
-#define macro_to_rate(x)    (x)
-#endif
-
-char* comVersion(char* str, size_t len)
-{
-    char revision[16];
-
-    sscanf("$Revision: 1.19 $", "%*s %s", revision);
-
-    safe_snprintf(str,len,"Synchronet Communications I/O Library for "PLATFORM_DESC" v%s", revision);
-    return str;
-}
-
-COM_HANDLE comOpen(const char* device)
-{
-    COM_HANDLE handle;
-    struct termios t;
-
-    if((handle=open(device, O_NONBLOCK|O_RDWR))==COM_HANDLE_INVALID)
-        return COM_HANDLE_INVALID;
-
-    if(tcgetattr(handle, &t)==-1) {
-        close(handle);
-        return COM_HANDLE_INVALID;
-    }
-
-    t.c_iflag = (
-                  IGNBRK   /* ignore BREAK condition */
-                | IGNPAR   /* ignore (discard) parity errors */
-                );
-    t.c_oflag = 0;  /* No output processing */
-    t.c_cflag = (
-                  CS8         /* 8 bits */
-                | CREAD       /* enable receiver */
-/*
-Fun snippet from the FreeBSD manpage:
-
-     If CREAD is set, the receiver is enabled.  Otherwise, no character is
-     received.  Not all hardware supports this bit.  In fact, this flag is
-     pretty silly and if it were not part of the termios specification it
-     would be omitted.
-*/
-                | HUPCL       /* hang up on last close */
-                | CLOCAL      /* ignore modem status lines */
-                | CTSRTS_FLOW_CFLAGS
-                );
-    t.c_lflag = 0;  /* No local modes */
-    if(tcsetattr(handle, TCSANOW, &t)==-1) {
-        close(handle);
-        return COM_HANDLE_INVALID;
-    }
-
-    return handle;
-}
-
-BOOL comClose(COM_HANDLE handle)
-{
-    return (!close(handle));
-}
-
-long comGetBaudRate(COM_HANDLE handle)
-{
-    struct termios t;
-    speed_t in;
-    speed_t out;
-
-    if(tcgetattr(handle, &t))
-        return COM_ERROR;
-
-    /*
-     * We actually have TWO speeds available...
-     * return the biggest one
-     */
-    in = macro_to_rate(cfgetispeed(&t));
-    out = macro_to_rate(cfgetospeed(&t));
-    return ((long)(in>out?in:out));
-}
-
-BOOL comSetBaudRate(COM_HANDLE handle, unsigned long rate)
-{
-    struct termios t;
-
-    if(tcgetattr(handle, &t))
-        return FALSE;
-
-    cfsetispeed(&t, rate_to_macro(rate));
-    cfsetospeed(&t, rate_to_macro(rate));
-    if(tcsetattr(handle, TCSANOW, &t)==-1)
-        return FALSE;
-
-    return TRUE;
-}
-
-int comGetFlowControl(COM_HANDLE handle)
-{
-    int ret = 0;
-    struct termios t;
-
-    if(tcgetattr(handle, &t)==-1)
-        return FALSE;
-
-    if ((t.c_cflag & CTSRTS_FLOW_CFLAGS) == CTSRTS_FLOW_CFLAGS)
-        ret |= COM_FLOW_CONTROL_RTS_CTS;
-    if ((t.c_iflag & XONXOFF_FLOW_IFLAGS) == XONXOFF_FLOW_IFLAGS)
-        ret |= COM_FLOW_CONTROL_XON_OFF;
-
-    return ret;
-}
-
-BOOL comSetFlowControl(COM_HANDLE handle, int modes)
-{
-    struct termios t;
-
-    if(tcgetattr(handle, &t)==-1)
-        return FALSE;
-
-    if (modes & COM_FLOW_CONTROL_RTS_CTS)
-        t.c_cflag |= CTSRTS_FLOW_CFLAGS;
-    else
-        t.c_cflag &= ~CTSRTS_FLOW_CFLAGS;
-
-    if (modes & COM_FLOW_CONTROL_XON_OFF)
-        t.c_iflag |= XONXOFF_FLOW_IFLAGS;
-    else
-        t.c_iflag &= ~XONXOFF_FLOW_IFLAGS;
-
-    if(tcsetattr(handle, TCSANOW, &t)==-1)
-        return FALSE;
-
-    return TRUE;
-}
-
-int comGetModemStatus(COM_HANDLE handle)
-{
-    int status;
-
-    if(ioctl(handle, TIOCMGET, &status)==-1)
-        return COM_ERROR;
-
-    return status;
-}
-
-static BOOL comSetFlags(COM_HANDLE handle, int flags, BOOL set)
-{
-    int cmd = set ? TIOCMBIS : TIOCMBIC;
-
-    return (ioctl(handle, cmd, &flags) == 0);
-}
-
-BOOL comRaiseDTR(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_DTR, TRUE);
-}
-
-BOOL comLowerDTR(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_DTR, FALSE);
-}
-
-BOOL comRaiseRTS(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_RTS, TRUE);
-}
-
-BOOL comLowerRTS(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_RTS, FALSE);
-}
-BOOL comWriteByte(COM_HANDLE handle, BYTE ch)
-{
-    return(write(handle, &ch, 1)==1);
-}
-
-int comWriteBuf(COM_HANDLE handle, const BYTE* buf, size_t buflen)
-{
-    return write(handle, buf, buflen);
-}
-
-/*
- * TODO: This seem kinda dangerous for short writes...
- */
-int comWriteString(COM_HANDLE handle, const char* str)
-{
-    return comWriteBuf(handle, (BYTE*)str, strlen(str));
-}
-
-BOOL comReadByte(COM_HANDLE handle, BYTE* ch)
-{
-    return(read(handle, ch, 1)==1);
-}
-
-BOOL comPurgeInput(COM_HANDLE handle)
-{
-    return(tcflush(handle, TCIFLUSH)==0);
-}
-
-BOOL comPurgeOutput(COM_HANDLE handle)
-{
-    return(tcflush(handle, TCOFLUSH)==0);
-}
-
-BOOL comDrainOutput(COM_HANDLE handle)
-{
-    return(tcdrain(handle)==0);
-}
diff --git a/comio/comio_win32.c b/comio/comio_win32.c
deleted file mode 100644
index b539dd7..0000000
--- a/comio/comio_win32.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/* comio_win32.c */
-
-/* Synchronet Serial Communications I/O Library Functions for Win32 */
-
-/* $Id: comio_win32.c,v 1.13 2020/06/26 19:56:48 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "comio.h"
-#include "genwrap.h"
-
-char* comVersion(char* str, size_t len)
-{
-	char revision[16];
-
-	sscanf("$Revision: 1.13 $", "%*s %s", revision);
-
-	safe_snprintf(str,len,"Synchronet Communications I/O Library for "PLATFORM_DESC" v%s", revision);
-	return str;
-}
-
-COM_HANDLE comOpen(const char* device)
-{
-	COM_HANDLE handle;
-	COMMTIMEOUTS timeouts;
-	DCB	dcb;
-
-	if((handle=CreateFile(device
-		,GENERIC_READ|GENERIC_WRITE 	/* Access */
-		,0								/* Share mode */
-		,NULL							/* Security attributes */
-		,OPEN_EXISTING					/* Create access */
-		,FILE_ATTRIBUTE_NORMAL			/* File attributes */
-		,NULL							/* Template */
-		))==INVALID_HANDLE_VALUE)
-		return COM_HANDLE_INVALID;
-
-
-	if(GetCommTimeouts(handle, &timeouts)) {
-		timeouts.ReadIntervalTimeout=MAXDWORD;
-		timeouts.ReadTotalTimeoutMultiplier=0;
-		timeouts.ReadTotalTimeoutConstant=0;		// No-wait read timeout
-		timeouts.WriteTotalTimeoutMultiplier=0;
-		timeouts.WriteTotalTimeoutConstant=5000;	// 5 seconds
-		SetCommTimeouts(handle,&timeouts);
-	}
-
-	/* Force N-8-1 mode: */
-	if(GetCommState(handle, &dcb)==TRUE) {
-		dcb.ByteSize	= 8;
-		dcb.Parity		= NOPARITY;
-		dcb.StopBits	= ONESTOPBIT;
-		SetCommState(handle, &dcb);
-	}
-
-	return handle;
-}
-
-BOOL comClose(COM_HANDLE handle)
-{
-	return CloseHandle(handle);
-}
-
-long comGetBaudRate(COM_HANDLE handle)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb)!=TRUE)
-		return COM_ERROR;
-
-	return dcb.BaudRate;
-}
-
-BOOL comSetBaudRate(COM_HANDLE handle, unsigned long rate)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb)!=TRUE)
-		return FALSE;
-
-	dcb.BaudRate=rate;
-
-	return SetCommState(handle, &dcb);
-}
-
-int comGetFlowControl(COM_HANDLE handle)
-{
-	DCB dcb;
-	int result = 0;
-
-	if(GetCommState(handle, &dcb) != TRUE)
-		return COM_ERROR;
-
-	if(dcb.fOutxCtsFlow)
-		result |= COM_FLOW_CONTROL_RTS_CTS;
-	if(dcb.fOutxDsrFlow)
-		result |= COM_FLOW_CONTROL_DTR_DSR;
-	if(dcb.fInX && dcb.fOutX)
-		result |= COM_FLOW_CONTROL_XON_OFF;
-	return result;
-}
-
-BOOL comSetFlowControl(COM_HANDLE handle, int type)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb) != TRUE)
-		return FALSE;
-
-	dcb.fOutxCtsFlow = 0;
-	dcb.fRtsControl = RTS_CONTROL_DISABLE; // This is questionable
-	dcb.fOutxDsrFlow = 0;
-	dcb.fDsrSensitivity = 0;
-	dcb.fInX = 0;
-	dcb.fOutX = 0;
-	if(type&COM_FLOW_CONTROL_RTS_CTS) {
-		dcb.fOutxCtsFlow = 1;
-		dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
-	}
-	if(type&COM_FLOW_CONTROL_DTR_DSR) {
-		dcb.fOutxDsrFlow = 1;
-		dcb.fDsrSensitivity = 1;
-	}
-	if(type&COM_FLOW_CONTROL_XON_OFF) {
-		dcb.fInX = 1;
-		dcb.fOutX = 1;
-	}
-	return SetCommState(handle, &dcb);
-}
-
-int comGetModemStatus(COM_HANDLE handle)
-{
-	DWORD status=0;
-	
-	if(GetCommModemStatus(handle, &status))
-		return status;
-	else
-		return COM_ERROR;
-}
-
-BOOL comRaiseDTR(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, SETDTR);
-}
-
-BOOL comLowerDTR(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, CLRDTR);
-}
-
-BOOL comRaiseRTS(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, SETRTS);
-}
-
-BOOL comLowerRTS(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, CLRRTS);
-}
-
-BOOL comWriteByte(COM_HANDLE handle, BYTE ch)
-{
-	DWORD wr=0;
-
-	return WriteFile(handle, &ch, sizeof(ch), &wr, NULL) && wr==sizeof(BYTE);
-}
-
-int comWriteBuf(COM_HANDLE handle, const BYTE* buf, size_t buflen)
-{
-	DWORD wr=0;
-
-	if(!WriteFile(handle, buf, buflen, &wr, NULL))
-		return COM_ERROR;
-
-	return wr;
-}
-
-int comWriteString(COM_HANDLE handle, const char* str)
-{
-	return comWriteBuf(handle, str, strlen(str));
-}
-
-BOOL comReadByte(COM_HANDLE handle, BYTE* ch)
-{
-	DWORD rd;
-
-	return ReadFile(handle, ch, sizeof(BYTE), &rd, NULL) && rd==sizeof(BYTE);
-}
-
-BOOL comPurgeInput(COM_HANDLE handle)
-{
-	return PurgeComm(handle, PURGE_RXCLEAR);
-}
-
-BOOL comPurgeOutput(COM_HANDLE handle)
-{
-	return PurgeComm(handle, PURGE_TXCLEAR);
-}
-
diff --git a/encode/CMakeLists.txt b/encode/CMakeLists.txt
deleted file mode 100644
index 2e2be23..0000000
--- a/encode/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# not currently used
-
-project (Encode C)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	base64.c
-	hex.c
-	lzh.c
-	utf8.c
-	uucode.c
-	yenc.c
-)
-
-set(HEADER
-	base64.h
-	lzh.h
-	utf8.h
-	uucode.h
-	yenc.h
-)
-
-add_library(encode OBJECT ${SOURCE})
-target_compile_features(encode PUBLIC c_std_99)
-target_include_directories(encode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(encode xpdev)
diff --git a/encode/README.md b/encode/README.md
deleted file mode 100644
index bbc7dab..0000000
--- a/encode/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Synchronet library project: encoders and decoders
-
-This directory contains code and data for various data encoders / decoders:
-e.g. base64, uuencode, yenc, UTF-8, etc.
-
-One-way/lossy encoders (e.g. checksum/hash/digest) do not belong here.
diff --git a/encode/base64.c b/encode/base64.c
deleted file mode 100644
index d7043e4..0000000
--- a/encode/base64.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Base64 encoding/decoding routines */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include "base64.h"
-#include "gen_defs.h"
-
-static const char * base64alphabet = 
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
-ssize_t b64_decode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	const char	*inp;
-	char	*outp;
-	char	*outend;
-	const char	*inend;
-	int		bits=0;
-	int		working=0;
-	char *	i;
-
-	if(slen==0)
-		slen=strlen(source);
-	outp=target;
-	inp=source;
-	outend=target+tlen;
-	inend=source+slen;
-	for(;outp<outend && inp<inend;inp++) {
-		if(isspace(*inp))
-			continue;
-		working<<=6;
-		i=strchr(base64alphabet,(char)*inp);
-		if(i==NULL) {
-			return(-1);
-		}
-		if(*i=='=')  { /* pad char */
-			if((working&0xFF) != 0)
-				return(-1);
-			break;
-		}
-		bits+=6;
-		working |= (i-base64alphabet);
-		if(bits>=8) {
-			*(outp++)=(char)((working&(0xFF<<(bits-8)))>>(bits-8));
-			bits-=8;
-		}
-	}
-	if(outp == outend)  {
-		*(--outp)=0;
-		return(-1);
-	}
-	*outp=0;
-	return(outp-target);
-}
-
-static int add_char(char *pos, char ch, int done, char *end)
-{
-	if(pos>=end)  {
-		return(1);
-	}
-	if(done)
-		*pos=base64alphabet[64];
-	else
-		*pos=base64alphabet[(int)ch];
-	return(0);
-}
-
-ssize_t b64_encode(char *target, size_t tlen, const char *source, size_t slen)  {
-	const char	*inp;
-	char	*outp;
-	char	*outend;
-	const char	*inend;
-	char	*tmpbuf=NULL;
-	int		done=0;
-	char	enc;
-	int		buf;
-	
-	inp=source;
-	if(source==target)  {
-		tmpbuf=(char *)malloc(tlen);
-		if(tmpbuf==NULL)
-			return(-1);
-		outp=tmpbuf;
-	}
-	else
-		outp=target;
-
-	outend=outp+tlen;
-	inend=inp+slen;
-	for(;(inp < inend) && !done;)  {
-		enc=*(inp++);
-		buf=(enc & 0x03)<<4;
-		enc=(enc&0xFC)>>2;
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if (inp>=inend)
-			enc=buf;
-		else
-			enc=buf|((*inp & 0xF0) >> 4);
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-		if (!done) {
-			buf=(*(inp++)<<2)&0x3C;
-			if (inp == inend)
-				enc=buf;
-			else
-				enc=buf|((*inp & 0xC0)>>6);
-		}
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-		if (!done)
-			enc=((int)*(inp++))&0x3F;
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-	}
-	if(outp<outend)
-		*outp=0;
-	int result;
-	if(source==target) {
-		memcpy(target,tmpbuf,tlen);
-		result = outp - tmpbuf;
-		free(tmpbuf);
-	} else
-		result = outp - target;
-
-	return result;
-}
-
-#ifdef BASE64_TEST
-int main(int argc, char**argv)
-{
-	int i,j;
-	char buf[512];
-
-	for(i=1;i<argc;i++) {
-		j=b64_decode(buf,sizeof(buf),argv[i],0);
-		printf("%s (%d)\n",buf,j);
-	}
-
-	return 0;
-}
-#endif
diff --git a/encode/base64.h b/encode/base64.h
deleted file mode 100644
index 9f6c19e..0000000
--- a/encode/base64.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Base64 encoding/decoding exported function prototypes */
-
-/* $Id: base64.h,v 1.8 2019/03/22 21:29:12 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifndef _base64_h_
-#define _base64_h_
-
-#if defined(_WIN32) && (defined(B64_IMPORTS) || defined(B64_EXPORTS))
-	#if defined(B64_IMPORTS)
-		#define B64EXPORT	__declspec(dllimport)
-	#else
-		#define B64EXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 */
-	#define B64EXPORT
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-B64EXPORT ssize_t b64_encode(char *target, size_t tlen, const char *source, size_t slen);
-B64EXPORT ssize_t b64_decode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line */
diff --git a/encode/hex.c b/encode/hex.c
deleted file mode 100644
index 5cf4c4d..0000000
--- a/encode/hex.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Hexadecimal encode/decode (e.g. URL encode/decode) functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
- 
-#include "hex.h"
-#include "genwrap.h"
-#include "gen_defs.h"
-
-char* hex_encode(char esc, const char* src, char* chars, char* dest, size_t size)
-{
-	char* result = dest;
-	char* end = dest + (size - 1);
-
-	while(*src != '\0' && dest < end) {
-		if((*src == esc || strchr(chars, *src) != NULL) && dest + 3 < end)
-			dest += sprintf(dest, "%c%2X", esc, *src);
-		else
-			*(dest++) = *src;
-		src++;
-	}
-	*end = '\0';
-	return result;
-}
-
-char* hex_decode(char esc, char* str)
-{
-	char* src = str;
-	char* dest = str;
-	while(*src != '\0') {
-		if(*src == esc && IS_HEXDIGIT(*(src + 1)) && IS_HEXDIGIT(*(src + 2))) {
-			src++;
-			*dest = HEX_CHAR_TO_INT(*src) << 4;
-			src++;
-			*dest |= HEX_CHAR_TO_INT(*src);
-		} else
-			*dest = *src;
-		src++;
-		dest++;
-	}
-	*dest = '\0';
-	return str;
-}
diff --git a/encode/hex.h b/encode/hex.h
deleted file mode 100644
index 9765bca..0000000
--- a/encode/hex.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Hex encode/decode (e.g. URL encode/decode) functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef hex_h_
-#define hex_h_
-
-#include <stdlib.h>	 // size_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-char* hex_encode(char esc, const char* src, char* chars, char* dest, size_t size);
-char* hex_decode(char esc, char* str);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line */
\ No newline at end of file
diff --git a/encode/lzh.c b/encode/lzh.c
deleted file mode 100644
index ac86335..0000000
--- a/encode/lzh.c
+++ /dev/null
@@ -1,781 +0,0 @@
-/* lzh.c */
-
-/* Synchronet LZH compression library */
-
-/* $Id: lzh.c,v 1.16 2020/04/17 14:08:11 deuce Exp $ */
-
-/**************************************************************************** 
- * @format.tab-size 4		(Plain Text/Source Code File Header)			* 
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Rob Swindell's conversion of 1988 LZH (LHarc) encoding functions			* 
- * Based on Japanese version 29-NOV-1988									* 
- * LZSS coded by Haruhiko Okumura											* 
- * Adaptive Huffman Coding coded by Haruyasu Yoshizaki						* 
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-/* FreeBSD's malloc.h is deprecated, it drops a warning and */
-/* #includes <stdlib.h>, which is already here.             */
-#if !defined(__unix__)
-	#include <malloc.h>
-#endif
-
-#include "lzh.h"
-
-#define REALLOC realloc
-#define LMALLOC malloc
-#define MALLOC malloc
-#define LFREE free
-#define FREE free
-
-
-
-/* LZSS Parameters */
-
-#define LZH_N			4096	/* Size of string buffer */
-#define LZH_F			60		/* Size of look-ahead buffer */
-#define LZH_THRESHOLD	2
-#define LZH_NIL 		LZH_N	/* End of tree's node  */
-
-/* Huffman coding parameters */
-
-#define LZH_N_CHAR		(256 - LZH_THRESHOLD + LZH_F)
-					/* character code (= 0..LZH_N_CHAR-1) */
-#define LZH_T		(LZH_N_CHAR * 2 - 1)	/* Size of table */
-#define LZH_R		(LZH_T - 1) 		/* root position */
-#define MAX_FREQ	0x8000
-					/* update when cumulative frequency */
-					/* reaches to this value */
-
-/* Converted from global variables to struct Apr-21-2003 */
-typedef struct {
-
-#ifdef LZH_DYNAMIC_BUF
-
-	unsigned char*	text_buf;
-	short int		match_position, match_length,
-					*lson, *rson, *dad;
-
-	unsigned short*	freq;	 /* cumulative freq table */
-
-	/*
-	 * pointing parent nodes.
-	 * area [LZH_T..(LZH_T + LZH_N_CHAR - 1)] are pointers for leaves
-	 */
-	short int*		prnt;
-
-	/* pointing children nodes (son[], son[] + 1)*/
-	short int*		son;
-
-#else	/* STATIC */
-
-	unsigned char	text_buf[LZH_N + LZH_F - 1];
-	short int		match_position, match_length,
-					lson[LZH_N + 1], rson[LZH_N + 257], dad[LZH_N + 1];
-
-	unsigned short	freq[LZH_T + 1];   /* cumulative freq table */
-	short int		prnt[LZH_T + LZH_N_CHAR];
-	short int		son[LZH_T + 1];		  /* bug fixed by Digital Dynamics */
-
-#endif
-
-	unsigned short	getbuf;		/* Was just "unsigned" fixed 04/12/95 */
-	uint8_t			getlen;
-	unsigned		putbuf;
-	uint8_t			putlen;
-
-	unsigned short	code, len;
-
-} lzh_t;
-
-static void lzh_init_tree(lzh_t* lzh)  /* Initializing tree */
-{
-	short int  i;
-
-	for (i = LZH_N + 1; i <= LZH_N + 256; i++)
-		lzh->rson[i] = LZH_NIL;			/* root */
-	for (i = 0; i < LZH_N; i++)
-		lzh->dad[i] = LZH_NIL;			/* node */
-}
-
-/******************************/
-/* Inserting node to the tree */
-/* Only used during encoding  */
-/******************************/
-static void lzh_insert_node(lzh_t* lzh, short int r)
-{
-	short int  i, p, cmp;
-	unsigned char  *key;
-	unsigned c;
-
-	cmp = 1;
-	key = lzh->text_buf+r;
-	p = LZH_N + 1 + key[0];
-	lzh->rson[r] = lzh->lson[r] = LZH_NIL;
-	lzh->match_length = 0;
-	for ( ; ; ) {
-		if (cmp >= 0) {
-			if (lzh->rson[p] != LZH_NIL)
-				p = lzh->rson[p];
-			else {
-				lzh->rson[p] = r;
-				lzh->dad[r] = p;
-				return;
-			}
-		} else {
-			if (lzh->lson[p] != LZH_NIL)
-				p = lzh->lson[p];
-			else {
-				lzh->lson[p] = r;
-				lzh->dad[r] = p;
-				return;
-			}
-		}
-		for (i = 1; i < LZH_F; i++)
-			if ((cmp = key[i] - lzh->text_buf[p + i]) != 0)
-				break;
-		if (i > LZH_THRESHOLD) {
-			if (i > lzh->match_length) {
-				lzh->match_position = ((r - p) & (LZH_N - 1)) - 1;
-				if ((lzh->match_length = i) >= LZH_F)
-					break;
-			}
-			if (i == lzh->match_length) {
-				if ((c = ((r - p) & (LZH_N - 1)) - 1) 
-					< (unsigned)lzh->match_position) {
-					lzh->match_position = c;
-				}
-			}
-		}
-	}
-	lzh->dad[r] = lzh->dad[p];
-	lzh->lson[r] = lzh->lson[p];
-	lzh->rson[r] = lzh->rson[p];
-	lzh->dad[lzh->lson[p]] = r;
-	lzh->dad[lzh->rson[p]] = r;
-	if (lzh->rson[lzh->dad[p]] == p)
-		lzh->rson[lzh->dad[p]] = r;
-	else
-		lzh->lson[lzh->dad[p]] = r;
-	lzh->dad[p] = LZH_NIL;  /* remove p */
-}
-
-static void lzh_delete_node(lzh_t* lzh, short int p)  /* Deleting node from the tree */
-{
-	short int  q;
-
-	if (lzh->dad[p] == LZH_NIL)
-		return;			/* unregistered */
-	if (lzh->rson[p] == LZH_NIL)
-		q = lzh->lson[p];
-	else
-	if (lzh->lson[p] == LZH_NIL)
-		q = lzh->rson[p];
-	else {
-		q = lzh->lson[p];
-		if (lzh->rson[q] != LZH_NIL) {
-			do {
-				q = lzh->rson[q];
-			} while (lzh->rson[q] != LZH_NIL);
-			lzh->rson[lzh->dad[q]] = lzh->lson[q];
-			lzh->dad[lzh->lson[q]] = lzh->dad[q];
-			lzh->lson[q] = lzh->lson[p];
-			lzh->dad[lzh->lson[p]] = q;
-		}
-		lzh->rson[q] = lzh->rson[p];
-		lzh->dad[lzh->rson[p]] = q;
-	}
-	lzh->dad[q] = lzh->dad[p];
-	if (lzh->rson[lzh->dad[p]] == p)
-		lzh->rson[lzh->dad[p]] = q;
-	else
-		lzh->lson[lzh->dad[p]] = q;
-	lzh->dad[p] = LZH_NIL;
-}
-
-/*
- * Tables for encoding/decoding upper 6 bits of
- * sliding dictionary pointer
- */
-/* encoder table */
-static uint8_t lzh_p_len[64] = {
-	0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08
-};
-
-static uint8_t lzh_p_code[64] = {
-	0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x68,
-	0x70, 0x78, 0x80, 0x88, 0x90, 0x94, 0x98, 0x9C,
-	0xA0, 0xA4, 0xA8, 0xAC, 0xB0, 0xB4, 0xB8, 0xBC,
-	0xC0, 0xC2, 0xC4, 0xC6, 0xC8, 0xCA, 0xCC, 0xCE,
-	0xD0, 0xD2, 0xD4, 0xD6, 0xD8, 0xDA, 0xDC, 0xDE,
-	0xE0, 0xE2, 0xE4, 0xE6, 0xE8, 0xEA, 0xEC, 0xEE,
-	0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-	0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-/* decoder table */
-static uint8_t lzh_d_code[256] = {
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-	0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
-	0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B,
-	0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
-	0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
-	0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
-	0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
-	0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
-	0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
-	0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B,
-	0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F,
-	0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23,
-	0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27,
-	0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B,
-	0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F,
-	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
-	0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
-};
-
-static uint8_t lzh_d_len[256] = {
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-};
-
-
-static int lzh_getbit(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)    /* get one bit */
-{
-	short int i;
-
-	while (lzh->getlen <= 8) {
-		if((*incnt)>=inlen)
-			i=0;
-		else
-			i=inbuf[(*incnt)++];
-		lzh->getbuf |= i << (8 - lzh->getlen);
-		lzh->getlen += 8;
-	}
-	i = lzh->getbuf;
-	lzh->getbuf <<= 1;
-	lzh->getlen--;
-	return (i < 0);
-}
-
-static short int lzh_getbyte(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)   /* get a byte */
-{
-	unsigned short i;
-
-	while (lzh->getlen <= 8) {
-		if((*incnt)>=inlen)
-			i=0;
-		else
-			i=inbuf[(*incnt)++];
-		lzh->getbuf |= i << (8 - lzh->getlen);
-		lzh->getlen += 8;
-	}
-	i = lzh->getbuf;
-	lzh->getbuf <<= 8;
-	lzh->getlen -= 8;
-	return i >> 8;
-}
-
-
-/* output c bits */
-static void lzh_putcode(lzh_t* lzh, short int l, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	lzh->putbuf |= c >> lzh->putlen;
-	if ((lzh->putlen += l) >= 8) {
-		outbuf[(*outlen)++]=(lzh->putbuf >> 8);
-		if ((lzh->putlen -= 8) >= 8) {
-			outbuf[(*outlen)++]=lzh->putbuf;
-			lzh->putlen -= 8;
-			lzh->putbuf = c << (l - lzh->putlen);
-		} else {
-			lzh->putbuf <<= 8;
-		}
-	}
-}
-
-
-/* initialize freq tree */
-
-static void lzh_start_huff(lzh_t* lzh)
-{
-	short int i, j;
-
-	for (i = 0; i < LZH_N_CHAR; i++) {
-		lzh->freq[i] = 1;
-		lzh->son[i] = i + LZH_T;
-		lzh->prnt[i + LZH_T] = i;
-	}
-	i = 0; j = LZH_N_CHAR;
-	while (j <= LZH_R) {
-		lzh->freq[j] = lzh->freq[i] + lzh->freq[i + 1];
-		lzh->son[j] = i;
-		lzh->prnt[i] = lzh->prnt[i + 1] = j;
-		i += 2; j++;
-	}
-	lzh->freq[LZH_T] = 0xffff;
-    lzh->prnt[LZH_R] = 0;
-}
-
-
-/* reconstruct freq tree */
-
-static void lzh_reconst(lzh_t* lzh)
-{
-	short int i, j, k;
-	unsigned short f, l;
-
-	/* halven cumulative freq for leaf nodes */
-	j = 0;
-	for (i = 0; i < LZH_T; i++) {
-		if (lzh->son[i] >= LZH_T) {
-			lzh->freq[j] = (lzh->freq[i] + 1) / 2;
-			lzh->son[j] = lzh->son[i];
-			j++;
-		}
-	}
-	/* make a tree : first, connect children nodes */
-	for (i = 0, j = LZH_N_CHAR; j < LZH_T; i += 2, j++) {
-		k = i + 1;
-		f = lzh->freq[j] = lzh->freq[i] + lzh->freq[k];
-		for (k = j - 1; f < lzh->freq[k]; k--);
-		k++;
-		l = (j - k) * 2;
-		
-		/* movmem() is Turbo-C dependent
-		   rewritten to memmove() by Kenji */
-		
-		/* movmem(&lzh->freq[k], &lzh->freq[k + 1], l); */
-		(void)memmove(lzh->freq+k+1,lzh->freq+k, l);
-		lzh->freq[k] = f;
-		/* movmem(&lzh->son[k], &lzh->son[k + 1], l); */
-		(void)memmove(lzh->son+k+1,lzh->son+k, l);
-		lzh->son[k] = i;
-	}
-	/* connect parent nodes */
-	for (i = 0; i < LZH_T; i++) {
-		if ((k = lzh->son[i]) >= LZH_T) {
-			lzh->prnt[k] = i;
-		} else {
-			lzh->prnt[k] = lzh->prnt[k + 1] = i;
-		}
-	}
-}
-
-/* update freq tree */
-
-static void lzh_update(lzh_t* lzh, short int c)
-{
-	short int i, j, k, l;
-
-	if (lzh->freq[LZH_R] == MAX_FREQ) {
-		lzh_reconst(lzh);
-	}
-	c = lzh->prnt[c + LZH_T];
-	do {
-		k = ++lzh->freq[c];
-
-		/* swap nodes to keep the tree freq-ordered */
-		if (((unsigned)k) > ((unsigned)lzh->freq[l = c + 1])) {
-			while (l < (sizeof(lzh->freq) / sizeof(lzh->freq[0]) - 1) && k > lzh->freq[++l]);
-			l--;
-			lzh->freq[c] = lzh->freq[l];
-			lzh->freq[l] = k;
-
-			i = lzh->son[c];
-			lzh->prnt[i] = l;
-			if (i < LZH_T) lzh->prnt[i + 1] = l;
-
-			j = lzh->son[l];
-			lzh->son[l] = i;
-
-			lzh->prnt[j] = c;
-			if (j < LZH_T) lzh->prnt[j + 1] = c;
-			lzh->son[c] = j;
-
-			c = l;
-		}
-	} while (((c = lzh->prnt[c]) != 0) && c < ((sizeof(lzh->son)/sizeof(lzh->son[0]))-1));	/* do it until reaching the root */
-}
-
-static void lzh_encode_char(lzh_t* lzh, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	unsigned short i;
-	short int j, k;
-
-	i = 0;
-	j = 0;
-	k = lzh->prnt[c + LZH_T];
-
-	/* search connections from leaf node to the root */
-	do {
-		i >>= 1;
-
-		/*
-		if node's address is odd, output 1
-		else output 0
-		*/
-		if (k & 1) i += 0x8000;
-
-		j++;
-	} while ((k = lzh->prnt[k]) != LZH_R);
-	lzh_putcode(lzh, j, i, outbuf, outlen);
-	lzh->code = i;
-	lzh->len = j;
-	lzh_update(lzh,c);
-}
-
-static void lzh_encode_position(lzh_t* lzh, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	unsigned short i;
-
-	/* output upper 6 bits with encoding */
-	i = c >> 6;
-	lzh_putcode(lzh, lzh_p_len[i], (unsigned short)(lzh_p_code[i] << 8), outbuf, outlen);
-
-	/* output lower 6 bits directly */
-	lzh_putcode(lzh, 6, (unsigned short)((c & 0x3f) << 10), outbuf, outlen);
-}
-
-static void lzh_encode_end(lzh_t* lzh, uint8_t *outbuf, int32_t *outlen)
-{
-	if (lzh->putlen) {
-		outbuf[(*outlen)++]=(lzh->putbuf >> 8);
-	}
-}
-
-static short int lzh_decode_char(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)
-{
-	unsigned short c;
-
-	c = lzh->son[LZH_R];
-
-	/*
-	 * start searching tree from the root to leaves.
-	 * choose node #(lzh.son[]) if input bit == 0
-	 * else choose #(lzh.son[]+1) (input bit == 1)
-	 */
-	while (c < LZH_T) {
-		c += lzh_getbit(lzh,inbuf,incnt,inlen);
-		c = lzh->son[c];
-	}
-	c -= LZH_T;
-	lzh_update(lzh,c);
-	return c;
-}
-
-static short int lzh_decode_position(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)
-{
-	unsigned short i, j, c;
-
-	/* decode upper 6 bits from given table */
-	i = lzh_getbyte(lzh,inbuf,incnt,inlen);
-	c = (unsigned)lzh_d_code[i] << 6;
-	j = lzh_d_len[i];
-
-	/* input lower 6 bits directly */
-	j -= 2;
-	while (j--) {
-		i = (i << 1) + lzh_getbit(lzh,inbuf,incnt,inlen);
-	}
-	return c | (i & 0x3f);
-}
-
-/* Compression */
-
-/* Encoding/Compressing */
-/* Returns length of outbuf */
-int32_t lzh_encode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf)
-{
-	short int  i, c, len, r, s, last_match_length;
-	int32_t incnt,outlen; /* textsize=0; */
-	lzh_t lzh;
-	memset(&lzh,0,sizeof(lzh));
-
-#ifdef LZH_DYNAMIC_BUF
-
-	if((lzh.text_buf=(uint8_t *)malloc(LZH_N + LZH_F - 1))==NULL)
-		return(-1);
-	if((lzh.freq=(unsigned short*)malloc((LZH_T + 1)*sizeof(unsigned short)))==NULL) {
-		free(lzh.text_buf);
-		return(-1); }
-	if((lzh.prnt=(short *)malloc((LZH_T + LZH_N_CHAR)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.son=(short *)malloc((LZH_T + 1) * sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.lson=(short *)malloc((LZH_N + 1)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-		return(-1); }
-	if((lzh.rson=(short *)malloc((LZH_N + 257)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-		free(lzh.lson);
-		return(-1); }
-	if((lzh.dad=(short *)malloc((LZH_N + 1)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-        free(lzh.lson);
-		free(lzh.rson);
-		return(-1); }
-#endif
-
-	incnt=0;
-	memcpy(outbuf,&inlen,sizeof(inlen));
-	outlen=sizeof(inlen);
-	if(!inlen) {
-#ifdef LZH_DYNAMIC_BUF
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-        free(lzh.lson);
-        free(lzh.rson);
-		free(lzh.dad);
-#endif
-		return(outlen); }
-	lzh_start_huff(&lzh);
-	lzh_init_tree(&lzh);
-	s = 0;
-	r = LZH_N - LZH_F;
-	for (i = s; i < r; i++)
-		lzh.text_buf[i] = ' ';
-	for (len = 0; len < LZH_F && incnt<inlen; len++)
-		lzh.text_buf[r + len] = inbuf[incnt++];
-	/* textsize = len; */
-	for (i = 1; i <= LZH_F; i++)
-		lzh_insert_node(&lzh,(short)(r - i));
-	lzh_insert_node(&lzh,r);
-	do {
-		if (lzh.match_length > len)
-			lzh.match_length = len;
-		if (lzh.match_length <= LZH_THRESHOLD) {
-			lzh.match_length = 1;
-			lzh_encode_char(&lzh,lzh.text_buf[r],outbuf,&outlen);
-		} else {
-			lzh_encode_char(&lzh,(unsigned short)(255 - LZH_THRESHOLD + lzh.match_length)
-				,outbuf,&outlen);
-			lzh_encode_position(&lzh,lzh.match_position
-				,outbuf,&outlen);
-		}
-		last_match_length = lzh.match_length;
-		for (i = 0; i < last_match_length && incnt<inlen; i++) {
-			lzh_delete_node(&lzh,s);
-			c=inbuf[incnt++];
-			lzh.text_buf[s] = (uint8_t)c;
-			if (s < LZH_F - 1)
-				lzh.text_buf[s + LZH_N] = (uint8_t)c;
-			s = (s + 1) & (LZH_N - 1);
-			r = (r + 1) & (LZH_N - 1);
-			lzh_insert_node(&lzh,r);
-		}
-/***
-		if ((textsize += i) > printcount) {
-			printf("%12ld\r", textsize);
-			printcount += 1024;
-		}
-***/
-		while (i++ < last_match_length) {
-			lzh_delete_node(&lzh,s);
-			s = (s + 1) & (LZH_N - 1);
-			r = (r + 1) & (LZH_N - 1);
-			if (--len) lzh_insert_node(&lzh,r);
-		}
-	} while (len > 0);
-	lzh_encode_end(&lzh,outbuf,&outlen);
-/*
-	printf("input: %ld (%ld) bytes\n", inlen,textsize);
-	printf("output: %ld bytes\n", outlen);
-	printf("output/input: %.3f\n", (double)outlen / inlen);
-*/
-
-#ifdef LZH_DYNAMIC_BUF
-	free(lzh.text_buf);
-	free(lzh.prnt);
-	free(lzh.freq);
-	free(lzh.son);
-	free(lzh.lson);
-	free(lzh.rson);
-	free(lzh.dad);
-#endif
-
-	return(outlen);
-}
-
-/* Decoding/Uncompressing */
-/* Returns length of outbuf */
-int32_t lzh_decode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf)
-{
-	short int  i, j, k, r, c;
-	uint32_t	count;
-	int32_t		incnt,textsize;
-	lzh_t lzh;
-
-	memset(&lzh,0,sizeof(lzh));
-#ifdef LZH_DYNAMIC_BUF
-
-	if((lzh.text_buf=(uint8_t *)malloc((LZH_N + LZH_F - 1)*2))==NULL)
-		return(-1);
-	if((lzh.freq=(unsigned short *)malloc((LZH_T + 1)*sizeof(unsigned short)))
-		==NULL) {
-		free(lzh.text_buf);
-		return(-1); }
-	if((lzh.prnt=(short *)malloc((LZH_T + LZH_N_CHAR)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.son=(short *)malloc((LZH_T + 1) * sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		return(-1); }
-
-#endif
-
-	incnt=0;
-	memcpy(&textsize,inbuf,sizeof(textsize));
-	incnt+=sizeof(textsize);
-	if (textsize == 0) {
-#ifdef LZH_DYNAMIC_BUF
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-#endif
-		return(textsize); }
-	lzh_start_huff(&lzh);
-	for (i = 0; i < LZH_N - LZH_F; i++)
-		*(lzh.text_buf+i) = ' ';
-	r = LZH_N - LZH_F;
-    for (count = 0; count < (unsigned long)textsize; ) {
-		c = lzh_decode_char(&lzh,inbuf,&incnt,inlen);
-		if (c < 256) {
-			outbuf[count]=(uint8_t)c;
-#if 0
-			if(r>(LZH_N + LZH_F - 1) || r<0) {
-				printf("Overflow! (%d)\n",r);
-				getch();
-				exit(-1); }
-#endif
-			*(lzh.text_buf+r) = (uint8_t)c;
-			r++;
-			r &= (LZH_N - 1);
-			count++;
-		} else {
-			i = (r - lzh_decode_position(&lzh,inbuf,&incnt,inlen) - 1)
-				& (LZH_N - 1);
-			j = c - 255 + LZH_THRESHOLD;
-			for (k = 0; k < j && count<(unsigned long)textsize; k++) {
-				c = lzh.text_buf[(i + k) & (LZH_N - 1)];
-				outbuf[count]=(uint8_t)c;
-#if 0
-				if(r>(LZH_N + LZH_F - 1) || r<0) {
-					printf("Overflow! (%d)\n",r);
-					exit(-1); }
-#endif
-				*(lzh.text_buf+r) = (uint8_t)c;
-				r++;
-				r &= (LZH_N - 1);
-				count++;
-			}
-		}
-	}
-/***
-	printf("%12ld\n", count);
-***/
-
-#ifdef LZH_DYNAMIC_BUF
-	free(lzh.text_buf);
-	free(lzh.prnt);
-	free(lzh.freq);
-	free(lzh.son);
-#endif
-
-return(count);
-}
-
-
diff --git a/encode/lzh.h b/encode/lzh.h
deleted file mode 100644
index 9776651..0000000
--- a/encode/lzh.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Synchronet LZH compression library */
-
-/**************************************************************************** 
- * @format.tab-size 4		(Plain Text/Source Code File Header)			* 
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Rob Swindell's conversion of 1988 LZH (LHarc) encoding functions			* 
- * Based on Japanese version 29-NOV-1988									* 
- * LZSS coded by Haruhiko Okumura											* 
- * Adaptive Huffman Coding coded by Haruyasu Yoshizaki						* 
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _LZH_H_
-#define _LZH_H_
-
-#ifdef LZHEXPORT
-	#undef LZHEXPORT
-#endif
-
-#ifdef _WIN32
-	#ifdef LZHDLL	/* LZH functions in DLL */
-		#ifdef LZH_EXPORTS
-			#define LZHEXPORT __declspec( dllexport )
-		#else
-			#define LZHEXPORT __declspec( dllimport )
-		#endif
-	#else			/* self-contained executable */
-		#define LZHEXPORT
-	#endif
-#else	/* !_WIN32 */
-	#define LZHEXPORT
-#endif
-
-#include "gen_defs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-LZHEXPORT int32_t lzh_encode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf);
-LZHEXPORT int32_t lzh_decode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf);
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef __WATCOMC__	/* Use MSC standard (prepended underscore) */
-#pragma aux lzh_encode			"_*"
-#pragma aux lzh_decode          "_*"
-#endif
-
-#endif /* Do not add anything after this line */
diff --git a/encode/utf8.c b/encode/utf8.c
deleted file mode 100644
index 94c6d7d..0000000
--- a/encode/utf8.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/* Synchronet UTF-8 encode/decode/translate functions */
-
-/* $Id: utf8.c,v 1.9 2019/08/03 08:05:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "utf8.h"
-#include "unicode.h"
-#include <stdbool.h>
-#include <string.h>
-
-char* utf8_normalize_str(char* str)
-{
-	char* dest = str;
-
-	for(char* src = str; *src != 0; src++) {
-		if(*src == '\xC2' && *(src + 1) == '\xA0') { // NO-BREAK SPACE
-			src++;
-			*dest++ = ' ';
-			continue;
-		}
-		if(*src == '\xE2') {
-			if(*(src + 1) == '\x80') {
-				switch(*(src + 2)) {
-					case '\x82': // EN SPACE
-					case '\x83': // EM SPACE
-						src += 2;
-						*dest++ = ' ';
-						continue;
-					case '\x8B': // ZERO WIDTH SPACE
-					case '\x8C': // ZERO WIDTH NON-JOINER
-					case '\x8D': // ZERO WIDTH JOINER
-						src += 2;
-						continue;
-					case '\x90': // HYPHEN
-					case '\x91': // NON-BREAKING HYPHEN
-					case '\x92': // FIGURE DASH
-					case '\x93': // EN DASH
-						src += 2;
-						*dest++ = '-';
-						continue;
-					case '\x98': // LEFT SINGLE QUOTATION MARK
-						src += 2;
-						*dest++ = '`';
-						continue;
-					case '\x99': // RIGHT SINGLE QUOTATION MARK
-					case '\xB2': // PRIME
-						src += 2;
-						*dest++ = '\'';
-						continue;
-					case '\x9C': // LEFT DOUBLE QUOTATION MARK
-					case '\x9D': // RIGHT DOUBLE QUOTATION MARK
-						src += 2;
-						*dest++ = '"';
-						continue;
-					case '\xA6': // HORIZONTAL ELLIPSIS -> ASCII periods (3)
-						src += 2;
-						for(int i = 0; i < 3; i++)
-							*dest++ =  '.';
-						continue;
-				}
-			}
-			else if(*(src + 1) == '\x81') {
-				switch(*(src + 2)) {
-					case '\x83': // HYPEN BULLET
-						src += 2;
-						*dest++ = '-';
-						continue;
-					case '\x84': // FRACTION SLASH
-						src += 2;
-						*dest++ = '/';
-						continue;
-				}
-			}
-			else if(*(src + 1) == '\x88') {
-				switch(*(src + 2)) {
-					case '\x92': // MINUS SIGN
-						src += 2;
-						*dest++ = '-';
-						continue;
-				}
-			}
-		}
-		else if(*src == '\xEF') {
-			if(*(src + 1) == '\xBB' && *(src + 2) == '\xBF') {
-				// Zero Width No-Break Space (BOM, ZWNBSP)
-				src += 2;
-				continue;
-			}
-			if(*(src + 1) == '\xBC') {
-				if(*(src + 2) >= '\x81' && *(src + 2) <= '\xBF') { // FULLWIDTH EXCLAMATION MARK through FULLWIDTH LOW LINE
-					src += 2;
-					*src -= '\x81';
-					*dest++ = '!' + *src;
-					continue;
-				}
-			}
-			else if(*(src + 1) == '\xBD') {
-				if(*(src + 2) >= '\x80' && *(src + 2) <= '\x9E') { // FULLWIDTH GRAVE ACCENT through FULLWIDTH TILDE
-					src += 2;
-					*src -= '\x80';
-					*dest++ = '`' + *src;
-					continue;
-				}
-			}
-		}
-		*dest++ = *src;
-	}
-	*dest = 0;
-	return str;
-}
-
-/* Replace all multi-byte UTF-8 sequences with 'ch' or 'zwch' (when non-zero) */
-/* When ch and zwch are 0, effectively strips all multi-byte UTF-8 codepoints from str */
-char* utf8_replace_chars(char* str, char (*lookup)(enum unicode_codepoint), char unsupported_ch, char unsupported_zwch, char error_ch)
-{
-	char* end = str + strlen(str);
-	char* dest = str;
-
-	int len ;
-	for(char* src= str; src < end; src += len) {
-		if(!(*src & 0x80)) {
-			*dest++ = *src;
-			len = 1;
-			continue;
-		}
-		enum unicode_codepoint codepoint = 0;
-		len = utf8_getc(src, end - src, &codepoint);
-		if(len < 2) {
-			if(error_ch)
-				*dest++ = error_ch;
-			len = 1;
-			continue;
-		}
-		if(lookup != NULL) {
-			char ch = lookup(codepoint);
-			if(ch) {
-				*dest++ = ch;
-				continue;
-			}
-		}
-		if(unicode_width(codepoint) == 0) {
-			if(unsupported_zwch)
-				*dest++ = unsupported_zwch;
-		} 
-		else if(unsupported_ch)
-			*dest++ = unsupported_ch;
-	}
-	*dest = 0;
-	return str;
-}
-
-bool utf8_str_is_valid(const char* str)
-{
-	const char* end = str + strlen(str);
-	while (str < end) {
-		int len = utf8_getc(str, end - str, NULL);
-		if (len < 1)
-			return false;
-		str += len;
-	}
-	return true;
-}
-
-// Return the total printed-width of UTF-8 string (str) accounting for zero/half/full-width codepoints
-size_t utf8_str_total_width(const char* str)
-{
-	size_t count = 0;
-	const char* end = str + strlen(str);
-	while (str < end) {
-		enum unicode_codepoint codepoint = 0;
-		int len = utf8_getc(str, end - str, &codepoint);
-		if (len < 1)
-			break;
-		count += unicode_width(codepoint);
-		str += len;
-	}
-	return count;
-}
-
-// Return the count of codepoints within the specified width range in UTF-8 string (str)
-size_t utf8_str_count_width(const char* str, size_t min_width, size_t max_width)
-{
-	size_t count = 0;
-	const char* end = str + strlen(str);
-	while (str < end) {
-		enum unicode_codepoint codepoint = 0;
-		int len = utf8_getc(str, end - str, &codepoint);
-		if (len < 1)
-			break;
-		size_t width = unicode_width(codepoint);
-		if(width >= min_width && width <= max_width)
-			count++;
-		str += len;
-	}
-	return count;
-}
-
-int cp437_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const unsigned char* p = (const unsigned char*)str; *p != 0; p++) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint = 0;
-		if(*p >= minval)
-			codepoint = cp437_unicode_tbl[*p];
-		if(codepoint) {
-			retval = utf8_putc(dest + *outlen, maxlen - *outlen, codepoint);
-			if(retval < 1)
-				break;
-			*outlen += retval;
-		} else {
-			*(dest + *outlen) = *p;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int utf8_to_cp437_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	unsigned char ch;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const char* p = src; *p != 0; p += retval) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint;
-		retval = utf8_getc(p, maxlen - *outlen, &codepoint);
-		if (retval < 1)
-			break;
-		ch = unicode_to_cp437(codepoint);
-		if (ch) {
-			*(dest + *outlen) = ch;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int latin1_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const unsigned char* p = (const unsigned char *)str; *p != 0; p++) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint = 0;
-		if(*p >= minval)
-			codepoint = *p;
-		if(codepoint) {
-			retval = utf8_putc(dest + *outlen, maxlen - *outlen, codepoint);
-			if(retval < 1)
-				break;
-			*outlen += retval;
-		} else {
-			*(dest + *outlen) = *p;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int utf8_to_latin1_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	unsigned char ch;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const char* p = src; *p != 0; p += retval) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint;
-		retval = utf8_getc(p, maxlen - *outlen, &codepoint);
-		if (retval < 1)
-			break;
-		ch = unicode_to_latin1(codepoint);
-		if (ch) {
-			*(dest + *outlen) = ch;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-// From openssl/crypto/asn1/a_utf8.c:
-/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/* UTF8 utilities */
-
-/*-
- * This parses a UTF8 string one codepoint at a time. It is passed a pointer
- * to the string and the size of the string (in bytes). It sets 'value' to
- * the value of the current codepoint. It returns the number of bytes read
- * or a negative error code:
- * -1 = string too short
- * -2 = illegal character
- * -3 = subsequent characters not of the form 10xxxxxx
- * -4 = character encoded incorrectly (not minimal length).
- */
-
-int utf8_getc(const char *str, size_t len, enum unicode_codepoint* val)
-{
-    const unsigned char *p;
-    unsigned long value;
-    int ret;
-    if (len <= 0)
-        return 0;
-    p = (const unsigned char*)str;
-
-    /* Check syntax and work out the encoded value (if correct) */
-    if ((*p & 0x80) == 0) {
-        value = *p++ & 0x7f;
-        ret = 1;
-    } else if ((*p & 0xe0) == 0xc0) {
-        if (len < 2)
-            return -1;
-        if ((p[1] & 0xc0) != 0x80)
-            return -3;
-        value = (*p++ & 0x1f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x80)
-            return -4;
-        ret = 2;
-    } else if ((*p & 0xf0) == 0xe0) {
-        if (len < 3)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80))
-            return -3;
-        value = (*p++ & 0xf) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x800)
-            return -4;
-        ret = 3;
-    } else if ((*p & 0xf8) == 0xf0) {
-        if (len < 4)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x7)) << 18;
-        value |= (*p++ & 0x3f) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x10000)
-            return -4;
-        ret = 4;
-    } else if ((*p & 0xfc) == 0xf8) {
-        if (len < 5)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80)
-            || ((p[4] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x3)) << 24;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 18;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x200000)
-            return -4;
-        ret = 5;
-    } else if ((*p & 0xfe) == 0xfc) {
-        if (len < 6)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80)
-            || ((p[4] & 0xc0) != 0x80)
-            || ((p[5] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x1)) << 30;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 24;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 18;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x4000000)
-            return -4;
-        ret = 6;
-	} else
-        return -2;
-	if(val != NULL)
-		*val = value;
-    return ret;
-}
-
-/*
- * This takes a codepoint 'value' and writes the UTF8 encoded sequence in 'str'
- * where 'str' is a buffer of 'len' bytes. Returns the number of bytes written
- * or -1 if 'len' is too small. 'str' can be set to NULL in which case it just
- * returns the number of bytes. It will need at most 6 bytes.
- */
-
-int utf8_putc(char *str, size_t len, unsigned value)
-{
-    if (!str)
-        len = 6;                /* Maximum we will need */
-    else if (len <= 0)
-        return -1;
-    if (value < 0x80) {
-        if (str)
-            *str = (unsigned char)value;
-        return 1;
-    }
-    if (value < 0x800) {
-        if (len < 2)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 6) & 0x1f) | 0xc0);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 2;
-    }
-    if (value < 0x10000) {
-        if (len < 3)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 12) & 0xf) | 0xe0);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 3;
-    }
-    if (value < 0x200000) {
-        if (len < 4)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 18) & 0x7) | 0xf0);
-            *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 4;
-    }
-    if (value < 0x4000000) {
-        if (len < 5)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 24) & 0x3) | 0xf8);
-            *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 5;
-    }
-    if (len < 6)
-        return -1;
-    if (str) {
-        *str++ = (unsigned char)(((value >> 30) & 0x1) | 0xfc);
-        *str++ = (unsigned char)(((value >> 24) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-        *str = (unsigned char)((value & 0x3f) | 0x80);
-    }
-    return 6;
-}
diff --git a/encode/utf8.h b/encode/utf8.h
deleted file mode 100644
index 2cbe6b9..0000000
--- a/encode/utf8.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Synchronet UTF-8 translation functions */
-
-/* $Id: utf8.h,v 1.6 2019/08/03 08:05:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UTF8_H_
-#define UTF8_H_
-
-#include <stdbool.h>
-#include <stdlib.h>
-#include "unicode_defs.h"
-
-#define UTF8_MAX_LEN 6	// Longest possible UTF-8 sequence
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-// Returns true if the string is valid UTF-8
-bool utf8_str_is_valid(const char*);
-
-// Returns the fixed printed-width of the UTF-8 string
-size_t utf8_str_total_width(const char*);
-
-// Return the count of codepoints within the specified width range in UTF-8 string (str)
-size_t utf8_str_count_width(const char*, size_t min_width, size_t max_width);
-
-// Normalizes (to ASCII) chars in UTF-8 string 'str', in-place, resulting in string <= original in length
-char* utf8_normalize_str(char* str);
-
-// Replace or strip UTF-8 sequences in str (in-place)
-// 'lookup' is a Unicode codepoint look-up function (optional)
-// 'unsupported_ch' is the byte used to replace unsupported Unicode codepoints (optional)
-// 'unsupported_zwch' is the byte used to replace unsupported zero-width Unicode codepoints (optional)
-// 'error_ch' is the byte used to replace invalid UTF-8 sequence bytes (optional)
-char* utf8_replace_chars(char* str, char (*lookup)(enum unicode_codepoint), char unsupported_ch, char unsupported_zwch, char error_ch);
-
-// Convert a CP437 char string (src) to UTF-8 string (dest) up to 'maxlen' bytes long (sans NUL-terminator)
-// 'minval' can be used to limit the range of converted chars.  On return, *outlen is set to the number
-// of bytes written to dest unless it is NULL
-int cp437_to_utf8_str(const char* src, char* dest, size_t maxlen, unsigned char minval, size_t *outlen);
-int utf8_to_cp437_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen);
-
-// Convert a Latin1 char string (src) to UTF-8 string (dest) up to 'maxlen' bytes long (sans NUL-terminator)
-// 'minval' can be used to limit the range of converted chars.  On return, *outlen is set to the number
-// of bytes written to dest unless it is NULL
-int latin1_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen);
-int utf8_to_latin1_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen);
-
-// Decode a UTF-8 sequence to a UNICODE code point
-int utf8_getc(const char* str, size_t len, enum unicode_codepoint* codepoint);
-
-// Encode a UNICODE code point into a UTF-8 sequence (str)
-int utf8_putc(char* str, size_t len, unsigned codepoint);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif // Don't add anything after this line
diff --git a/encode/uucode.c b/encode/uucode.c
deleted file mode 100644
index 8c985ae..0000000
--- a/encode/uucode.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* uucode.c */
-
-/* Unix-to-unix encoding/decoding routines */
-
-/* $Id: uucode.c,v 1.6 2019/07/18 03:10:54 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include "uucode.h"
-
-ssize_t uudecode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	int		i;
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-	size_t	block;
-	size_t	len;
-	unsigned char cell[4];
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<slen && wr<tlen) {
-		ch=source[rd++];
-		if(ch<' ')
-			continue;
-		len=(ch-' ')&0x3f;
-		if(len<=0 || rd>=slen)
-			break;
-		block=0;
-		while(block<len && wr<tlen && rd<slen) {
-			memset(cell,0,sizeof(cell));
-			/* Remove space bias */
-			for(i=0;i<sizeof(cell) && rd<slen;i++) {
-				cell[i]=source[rd++];
-				if(cell[i]>=' ') cell[i]-=' ';
-			}
-			/* Convert block of 4 6-bit chars into 3 8-bit chars */
-			target[wr]=(cell[0]&0x3f)<<2;		/* lower 6 (s1) to upper 6 (d1) */
-			target[wr++]|=(cell[1]&0x30)>>4;	/* upper 2 (s2) to lower 2 (d1) */
-			target[wr]=(cell[1]&0x0f)<<4;		/* lower 4 (s2) to upper 4 (d2) */
-			target[wr++]|=(cell[2]&0x3c)>>2;	/* upper 4 (s3) to lower 4 (d2) */
-			target[wr]=(cell[2]&0x03)<<6;		/* lower 2 (s3) to upper 2 (d3) */
-			target[wr++]|=cell[3]&0x3f;			/* lower 6 (s4) to lower 6 (d3) */
-			block+=3;
-		}
-#if 0
-		if(block!=len) {
-			fprintf(stderr,"block (%d) != len (%d)\n",block,len);
-			return(-1);
-		}
-#endif
-		while(rd<slen && source[rd]>' ')
-			rd++;	/* find whitespace (line termination) */
-		while(rd<slen && source[rd]!=0 && source[rd]<=' ') 
-			rd++;	/* skip whitespace separating blocks/lines */
-	}
-
-	return(wr);
-}
-
-#define BIAS(b) if((b)==0) (b)='`'; else (b)+=' ';
-
-ssize_t uuencode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	size_t	rd=0;
-	size_t	wr=0;
-	size_t	block;
-	size_t	len;
-
-	if(slen==0)
-		slen=strlen(source);
-
-	if(tlen<3)
-		return(-1);
-	tlen-=3;	/* reserve room for terminator */
-	while(rd<=slen && wr<tlen) {
-		len=45;
-		if(rd+len>slen)
-			len=slen-rd;
-		BIAS(len);
-		target[wr++]=(char)len;
-
-		block=0;
-		while(block<len && wr<tlen && rd<slen) {
-			target[wr]=source[rd]>>2;			/* upper 6 (s1) to lower 6 (d1) */
-			BIAS(target[wr]); wr++;
-			target[wr]=(source[rd++]&0x03)<<4;	/* lower 2 (s1) to upper 2 (d2) */
-			target[wr]|=source[rd]>>4;			/* upper 4 (s2) to lower 4 (d2) */
-			BIAS(target[wr]); wr++;
-			target[wr]=(source[rd++]&0x0f)<<2;	/* lower 4 (s2) to upper 4 (d3) */
-			target[wr]|=source[rd]>>6;			/* upper 2 (s3) to lower 2 (d3) */
-			BIAS(target[wr]); wr++;
-			target[wr]=source[rd++]&0x3f;		/* lower 6 (s3) to lower 6 (d4) */
-			BIAS(target[wr]); wr++;
-			block+=3;
-		}
-		if(wr<tlen) {
-			target[wr++]='\r';
-			target[wr++]='\n';
-		}
-		if(rd>=slen)
-			break;
-	}
-
-	if(wr<tlen)
-		target[wr++]=0;
-	return(wr);
-}
-
-#ifdef UUDECODE_TEST
-
-static char* truncstr(char* str, const char* set)
-{
-	char* p;
-
-	p=strpbrk(str,set);
-	if(p!=NULL)
-		*p=0;
-
-	return(p);
-}
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	char*	p;
-	FILE*	in;
-	FILE*	out=NULL;
-	int		len;
-	int		line;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: uudecode infile\n");
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		memset(str,0,sizeof(str));
-		if(fgets(str,sizeof(str),in)==NULL)
-			break;
-		truncstr(str,"\r\n");
-		if(strncmp(str,"begin ",6)==0) {
-			p=str+7;
-			while(*p && isdigit(*p)) p++;	/* skip mode */
-			while(*p && *p<=' ') p++;
-			if((out=fopen(p,"wb"))==NULL) {
-				perror(p);
-				return 1;
-			}
-			fprintf(stderr,"Creating %s\n",p);
-			line=1;
-			continue;
-		}
-		if(strcmp(str,"end")==0) {
-			if(out!=NULL) {
-				fclose(out);
-				out=NULL;
-			}
-			continue;
-		}
-		if(out==NULL)
-			continue;
-		len=uudecode(buf,sizeof(buf),str,0);
-		if(len<0) {
-			fprintf(stderr,"!Error decoding: %s\n",str);
-			break;
-		}
-		fwrite(buf,len,1,out);
-		line++;
-	}
-
-	return 0;
-}
-#elif defined(UUENCODE_TEST)
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	FILE*	in;
-	int		len;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: uuencode infile\n");
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		len=fread(buf,1,45,in);
-		if(len<0)
-			break;
-		len=uuencode(str,sizeof(str),buf,len);
-		if(len<1)
-			break;
-		printf("%.*s",len,str);
-	}
-
-	return 0;
-}
-
-#endif
-
-
diff --git a/encode/uucode.h b/encode/uucode.h
deleted file mode 100644
index 2f506f9..0000000
--- a/encode/uucode.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* uucode.c */
-
-/* Unix-to-Unix encoding/decoding exported function prototypes */
-
-/* $Id: uucode.h,v 1.2 2018/07/24 01:11:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ssize_t uuencode(char *target, size_t tlen, const char *source, size_t slen);
-ssize_t uudecode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/encode/yenc.c b/encode/yenc.c
deleted file mode 100644
index 9cba43e..0000000
--- a/encode/yenc.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* yenc.c */
-
-/* yEnc encoding/decoding routines */
-
-/* $Id: yenc.c,v 1.2 2018/02/20 11:57:13 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include "yenc.h"
-
-#define YENC_BIAS			42
-#define YENC_ESCAPE_CHAR	'='
-#define YENC_ESCAPE_BIAS	64
-	
-ssize_t ydecode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<slen && wr<tlen) {
-		ch=source[rd++];
-		if(ch==YENC_ESCAPE_CHAR && rd<slen)
-			ch=source[rd++]-YENC_ESCAPE_BIAS;
-		ch-=YENC_BIAS;
-		target[wr++]=ch;
-	}
-
-	return(wr);
-}
-
-ssize_t yencode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-	int		done=0;
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<=slen && wr<tlen && !done) {
-		ch=source[rd++];
-		ch+=YENC_BIAS;
-		switch(ch) {
-			case 0:
-			case '\r':
-			case '\n':
-			case YENC_ESCAPE_CHAR:
-				if(wr+1>=tlen) {	/* no room for escaped char */
-					done=1;
-					continue;
-				}
-				ch+=YENC_ESCAPE_BIAS;
-				target[wr++]=YENC_ESCAPE_CHAR;
-				break;
-		}
-		target[wr++]=ch;
-	}
-
-	if(wr<tlen)
-		target[wr++]=0;
-	return(wr);
-}
-
-#if defined(YDECODE_TEST)
-
-static char* truncstr(char* str, const char* set)
-{
-	char* p;
-
-	p=strpbrk(str,set);
-	if(p!=NULL)
-		*p=0;
-
-	return(p);
-}
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	char*	p;
-	FILE*	in;
-	FILE*	out=NULL;
-	int		len;
-	int		line;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: %s infile\n",argv[0]);
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		memset(str,0,sizeof(str));
-		if(fgets(str,sizeof(str),in)==NULL)
-			break;
-		truncstr(str,"\r\n");
-		if(strncmp(str,"=ybegin ",8)==0) {
-			p=strstr(str,"name=");
-			p+=5;
-			if((out=fopen(p,"wb"))==NULL) {
-				perror(p);
-				return 1;
-			}
-			fprintf(stderr,"Creating %s\n",p);
-			line=1;
-			continue;
-		}
-		if(strncmp(str,"=yend ",6)==0) {
-			if(out!=NULL) {
-				fclose(out);
-				out=NULL;
-			}
-			continue;
-		}
-		if(out==NULL)
-			continue;
-		len=ydecode(buf,sizeof(buf),str,0);
-		if(len<0) {
-			fprintf(stderr,"!Error decoding: %s\n",str);
-			break;
-		}
-		fwrite(buf,len,1,out);
-		line++;
-	}
-
-	return 0;
-}
-#elif defined(YENCODE_TEST)
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	FILE*	in;
-	int		len;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: %s infile\n",argv[0]);
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		len=fread(buf,1,45,in);
-		if(len<0)
-			break;
-		len=yencode(str,sizeof(str),buf,len);
-		if(len<1)
-			break;
-		printf("%.*s",len,str);
-	}
-
-	return 0;
-}
-
-#endif
-
-
diff --git a/encode/yenc.h b/encode/yenc.h
deleted file mode 100644
index 2e31d25..0000000
--- a/encode/yenc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* yenc.c */
-
-/* yEnc encoding/decoding exported function prototypes */
-
-/* $Id: yenc.h,v 1.2 2018/07/24 01:11:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ssize_t yencode(char *target, size_t tlen, const char *source, size_t slen);
-ssize_t ydecode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/hash/CMakeLists.txt b/hash/CMakeLists.txt
deleted file mode 100644
index 8303fff..0000000
--- a/hash/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-project (Hash C)
-find_package(XPDev QUIET CONFIG PATHS lib/cmake/XPDev)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	crc16.c
-	crc32.c
-	md5.c
-	sha1.c
-)
-
-set(HEADER
-	crc16.h
-	crc32.h
-	md5.h
-	sha1.h
-)
-
-add_library(hash OBJECT ${SOURCE})
-target_include_directories(hash PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(hash xpdev)
diff --git a/hash/README.md b/hash/README.md
deleted file mode 100644
index 5f4b0c0..0000000
--- a/hash/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Synchronet project: hash library
-
-This directory contains code and data for various one-way hash functions
-e.g. checksums, CRCs, digests, etc.
-
diff --git a/hash/crc16.c b/hash/crc16.c
deleted file mode 100644
index c95801d..0000000
--- a/hash/crc16.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* CCITT 16-bit CRC table and calculation function */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strlen */
-#include "crc16.h"
-
-uint16_t crc16tbl[] = {
-0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
-0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
-0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
-0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
-0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
-0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
-0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
-0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
-0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
-0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
-0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
-0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
-0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
-0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
-0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
-0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
-0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
-0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
-0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
-0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
-0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
-0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
-0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
-0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
-0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
-0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
-0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
-0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
-0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
-0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
-0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
-0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
-};
-
-uint16_t crc16(const char* data, size_t len)
-{
-	uint16_t crc = 0;
-	size_t l;
-
-	if(len==0 && data!=NULL)
-		len=strlen(data);
-	for(l=0;l<len;l++)
-		crc = ucrc16(data[l],crc);
- 
-    return crc;
-}
-
-uint16_t icrc16(uint16_t crc, const char* data, size_t len)
-{
-	size_t l;
-
-	for(l=0; l<len; l++)
-		crc = ucrc16(data[l], crc);
- 
-    return crc;
-}
diff --git a/hash/crc16.h b/hash/crc16.h
deleted file mode 100644
index bca8a90..0000000
--- a/hash/crc16.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* CCITT 16-bit CRC table and calculation macro */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CRC16_H_
-#define _CRC16_H_
-
-#include "gen_defs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern uint16_t crc16tbl[];
-
-uint16_t crc16(const char* data, size_t len);
-uint16_t icrc16(uint16_t crc, const char* data, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#define ucrc16(ch,crc) (crc16tbl[((crc>>8)&0xff)^(unsigned char)ch]^(crc << 8))
-
-#endif	/* Don't add anything after this line */
diff --git a/hash/crc32.c b/hash/crc32.c
deleted file mode 100644
index 2ad0843..0000000
--- a/hash/crc32.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* IEEE 802.3 32-bit CRC table and convenience functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strlen */
-#include "crc32.h"
-
-int32_t crc32tbl[]={	/* CRC polynomial 0xedb88320 */
-0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
-0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
-0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
-0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
-0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
-0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
-0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
-0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
-0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
-0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
-0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
-0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
-0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
-0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
-0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
-0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
-0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
-0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
-0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
-0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
-0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
-0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
-0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
-0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-};
-
-/****************************************************************************/
-/* Returns CRC-32 of sequence of bytes (binary or ASCIIZ)					*/
-/* Pass len of 0 to auto-determine ASCIIZ string length						*/
-/* or non-zero for arbitrary binary data									*/
-/****************************************************************************/
-uint32_t crc32i(uint32_t crc, const char *buf, size_t len)
-{
-	size_t l;
-
-	if(len==0 && buf!=NULL) 
-		len=strlen(buf);
-	for(l=0;l<len;l++)
-		crc=ucrc32(buf[l],crc);
-	return ~crc;
-}
-
-uint32_t fcrc32(FILE* fp, size_t len)
-{
-	int	ch;
-	uint32_t crc=0xffffffff;
-	size_t l;
-
-	rewind(fp);
-	for(l=0;(len==0 || l<len) && !feof(fp);l++) {
-		if((ch=fgetc(fp))==EOF)
-			break;
-		crc=ucrc32(ch,crc);
-	}
-	return ~crc;
-}
diff --git a/hash/crc32.h b/hash/crc32.h
deleted file mode 100644
index b7b7ba4..0000000
--- a/hash/crc32.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 32-bit CRC table and calculation macro */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CRC32_H_
-#define _CRC32_H_
-
-#include <stdio.h>	/* FILE */
-#include "gen_defs.h"	/* uint32_t */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int32_t crc32tbl[];
-
-uint32_t crc32i(uint32_t crc, const char* buf, size_t);
-uint32_t fcrc32(FILE* fp, size_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#define ucrc32(ch,crc) (crc32tbl[(crc^(ch))&0xff]^(crc>>8))
-#define crc32(x,y) crc32i(0xffffffff,x,y)
-
-#endif	/* Don't add anything after this line */
diff --git a/hash/md5.c b/hash/md5.c
deleted file mode 100644
index 107ce8a..0000000
--- a/hash/md5.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/* md5.c - RSA Data Security, Inc., MD5 Message-Digest Algorithm */
-
-/* $Id: md5.c,v 1.7 2012/10/23 07:59:36 deuce Exp $ */
-
-/* NOTE: Numerous changes have been made; the following notice is
-included to satisfy legal requirements.
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-*/
-
-#include <memory.h>
-#include "md5.h"
-
-#if !defined(BIG_ENDIAN)
-	#define LITTLE_ENDIAN	/* Little Endian by default */
-#endif
-
-void MD5_open(MD5 *md5)
-{
-  md5->count[0] = md5->count[1] = 0;
-  /* Load magic initialization constants.*/
-  md5->state[0] = 0x67452301;
-  md5->state[1] = 0xefcdab89;
-  md5->state[2] = 0x98badcfe;
-  md5->state[3] = 0x10325476;
-}
-
-/* Constants for MD5Transform routine. */
-
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-/* F, G, H and I are basic MD5 functions. */
-
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits. */
-
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* Round1, Round2, Round3, and Round4 transformations for rounds 1, 2, 3, and 4.
-   Rotation is separate from addition to prevent recomputation.
-*/
-
-#define Round1(a, b, c, d, x, s, ac) { \
- (a) += F((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round2(a, b, c, d, x, s, ac) { \
- (a) += G((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round3(a, b, c, d, x, s, ac) { \
- (a) += H((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round4(a, b, c, d, x, s, ac) { \
- (a) += I((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-
-
-/* MD5 basic transformation. Transforms state based on block. */
-
-static void MD5Transform(uint32_t state[4], const BYTE block[64])
-{
-  uint32_t a = state[0], b = state[1], c = state[2], d = state[3], x[MD5_DIGEST_SIZE];
-  /* Move contents of block to x, putting bytes in little-endian order. */
-  #ifdef LITTLE_ENDIAN
-    memcpy(x, block, 64);
-  #else
-  {
-    unsigned int i, j;
-    for (i = j = 0; i < MD5_DIGEST_SIZE; i++, j+= 4)
-    {
-      x[i] = (uint32_t) block[j] | (uint32_t) block[j+1] << 8 |
-        (uint32_t) block[j+2] << 16 | (uint32_t) block[j+3] << 24;
-    }
-  }
-  #endif
-  /* Round 1 */
-  Round1(a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-  Round1(d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-  Round1(c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-  Round1(b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-  Round1(a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-  Round1(d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-  Round1(c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-  Round1(b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-  Round1(a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-  Round1(d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-  Round1(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-  Round1(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-  Round1(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-  Round1(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-  Round1(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-  Round1(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-  /* Round 2 */
-  Round2(a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-  Round2(d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-  Round2(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-  Round2(b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-  Round2(a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-  Round2(d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-  Round2(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-  Round2(b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-  Round2(a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-  Round2(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-  Round2(c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-  Round2(b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-  Round2(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-  Round2(d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-  Round2(c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-  Round2(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-  /* Round 3 */
-  Round3(a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-  Round3(d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-  Round3(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-  Round3(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-  Round3(a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-  Round3(d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-  Round3(c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-  Round3(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-  Round3(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-  Round3(d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-  Round3(c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-  Round3(b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-  Round3(a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-  Round3(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-  Round3(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-  Round3(b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-  /* Round 4 */
-  Round4(a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-  Round4(d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-  Round4(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-  Round4(b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-  Round4(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-  Round4(d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-  Round4(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-  Round4(b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-  Round4(a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-  Round4(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-  Round4(c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-  Round4(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-  Round4(a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-  Round4(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-  Round4(c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-  Round4(b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-  state[0] += a;
-  state[1] += b;
-  state[2] += c;
-  state[3] += d;
-  /* Zeroize sensitive information. */
-  memset(x, 0, sizeof(x));
-}
-
-void MD5_digest(MD5 *md5, const void *input, size_t inputLen)
-{
-  unsigned int i, index, partLen;
-  /* Compute number of bytes mod 64 */
-  index = (unsigned int)((md5->count[0] >> 3) & 0x3F);
-  /* Update number of bits */
-  if ((md5->count[0] += ((uint32_t)inputLen << 3)) < ((uint32_t)inputLen << 3))
-    md5->count[1]++;
-  md5->count[1] += ((uint32_t)inputLen >> 29);
-  partLen = 64 - index;
-  /* Transform as many times as possible.*/
-  if (inputLen >= partLen)
-  {
-    memcpy(&md5->buffer[index], input, partLen);
-    MD5Transform(md5->state, md5->buffer);
-    for (i = partLen; i + 63 < inputLen; i += 64)
-      MD5Transform(md5->state, (BYTE *) input + i);
-    index = 0;
-  }
-  else
-    i = 0;
-  /* Buffer remaining input */
-  memcpy(&md5->buffer[index], (char *) input + i, inputLen-i);
-}
-
-/* ENCODE packs a 32-bit unsigned integer into 4 bytes in little-endian
-   order.
-*/
-
-#ifdef LITTLE_ENDIAN
-#define ENCODE(p,n) *(uint32_t *)(p) = n
-#else
-#define ENCODE(p,n) (p)[0]=n,(p)[1]=n>>8,(p)[2]=n>>16,(p)[3]=n>>24
-#endif
-
-void MD5_close(MD5 *md5, BYTE digest[MD5_DIGEST_SIZE])
-{
-  BYTE bits[8];
-  unsigned int index, padLen;
-  static BYTE PADDING[64] =
-  {
-    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-  };
-  /* Save number of bits */
-  ENCODE(bits, md5->count[0]);
-  ENCODE(bits+4, md5->count[1]);
-  /* Pad out to 56 mod 64. */
-  index = (unsigned int)((md5->count[0] >> 3) & 0x3f);
-  padLen = (index < 56) ? (56 - index) : (120 - index);
-  MD5_digest(md5, PADDING, padLen);
-  /* Append length (before padding) */
-  MD5_digest(md5, bits, 8);
-  /* Store state in digest */
-  ENCODE(digest, md5->state[0]);
-  ENCODE(digest+4, md5->state[1]);
-  ENCODE(digest+8, md5->state[2]);
-  ENCODE(digest+12, md5->state[3]);
-  /* Zeroize sensitive information. */
-  memset(md5, 0, sizeof(MD5));
-}
-
-BYTE* MD5_calc(BYTE digest[MD5_DIGEST_SIZE], const void* buf, size_t len)
-{
-	MD5 ctx;
-
-	MD5_open(&ctx);
-	MD5_digest(&ctx,buf,len);
-	MD5_close(&ctx,digest);
-
-	return(digest);
-}
-
-/* conversion for 16 character binary md5 to hex */
-
-char* MD5_hex(char* to, const BYTE digest[MD5_DIGEST_SIZE])
-{
-	BYTE const* from = digest;
-	const char *hexdigits = "0123456789abcdef";
-	const BYTE *end = digest + MD5_DIGEST_SIZE;
-	char *d = to;
-
-	while (from < end) {
-		*d++ = hexdigits[(*from >> 4)];
-		*d++ = hexdigits[(*from & 0x0F)];
-		from++;
-	}
-	*d = '\0';
-	return to;
-}
-
-#ifdef MD5_TEST
-
-int main(int argc, char**argv)
-{
-	int		i;
-	char	hexbuf[(MD5_DIGEST_SIZE*2)+1];
-	BYTE	digest[MD5_DIGEST_SIZE];
-
-	for(i=1;i<argc;i++)
-		printf("%s\n"
-			,MD5_hex(hexbuf,MD5_calc(digest,argv[i],strlen(argv[i]))));
-
-	return 0;
-}
-
-#endif
diff --git a/hash/md5.h b/hash/md5.h
deleted file mode 100644
index c23a4a1..0000000
--- a/hash/md5.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* md5.h - header file for md5.c */
-
-/* $Id: md5.h,v 1.7 2019/03/22 21:29:12 rswindell Exp $ */
-
-/* RSA Data Security, Inc., MD5 Message-Digest Algorithm */
-
-/* NOTE: Numerous changes have been made; the following notice is
-included to satisfy legal requirements.
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-*/
-
-#ifndef H__MD5
-#define H__MD5
-
-#include <stddef.h>		/* size_t */
-#include <gen_defs.h>	/* uint32_t */
-
-#define MD5_DIGEST_SIZE		16
-
-#ifndef BYTE
-	typedef unsigned char BYTE;
-#endif
-
-typedef struct
-{
-  uint32_t	state[4];
-  uint32_t	count[2];
-  BYTE	buffer[64];
-} MD5;
-
-#if defined(_WIN32) && (defined(MD5_IMPORTS) || defined(MD5_EXPORTS))
-	#if defined(MD5_IMPORTS)
-		#define MD5EXPORT	__declspec(dllimport)
-	#else
-		#define MD5EXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 */
-	#define MD5EXPORT
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-MD5EXPORT void	MD5_open(MD5* ctx);
-MD5EXPORT void	MD5_digest(MD5* ctx, const void* buf, size_t len);
-MD5EXPORT void	MD5_close(MD5* ctx, BYTE digest[MD5_DIGEST_SIZE]);
-MD5EXPORT BYTE*	MD5_calc(BYTE digest[MD5_DIGEST_SIZE], const void* buf, size_t len);
-MD5EXPORT char*	MD5_hex(char* dest, const BYTE digest[MD5_DIGEST_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/hash/sha1.c b/hash/sha1.c
deleted file mode 100644
index a9dc3a5..0000000
--- a/hash/sha1.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-SHA-1 in C
-By Steve Reid <steve@edmweb.com>
-100% Public Domain
-
-Test Vectors (from FIPS PUB 180-1)
-"abc"
-  A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-  84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
-A million repetitions of "a"
-  34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-*/
-
-/* #define LITTLE_ENDIAN * This should be #define'd already, if true. */
-/* #define SHA1HANDSOFF * Copies data before messing with it. */
-
-#define SHA1HANDSOFF
-
-#include <stdio.h>
-#include <string.h>
-
-/* for uint32_t */
-#include <stdint.h>
-
-#include "sha1.h"
-
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
-    |(rol(block->l[i],8)&0x00FF00FF))
-#elif BYTE_ORDER == BIG_ENDIAN
-#define blk0(i) block->l[i]
-#else
-#error "Endianness not defined!"
-#endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-
-/* Hash a single 512-bit block. This is the core of the algorithm. */
-
-void SHA1Transform(
-    uint32_t state[5],
-    const uint8_t buffer[64]
-)
-{
-    uint32_t a, b, c, d, e;
-
-    typedef union
-    {
-        uint8_t c[64];
-        uint32_t l[16];
-    } CHAR64LONG16;
-
-#ifdef SHA1HANDSOFF
-    CHAR64LONG16 block[1];      /* use array to appear as a pointer */
-
-    memcpy(block, buffer, 64);
-#else
-    /* The following had better never be used because it causes the
-     * pointer-to-const buffer to be cast into a pointer to non-const.
-     * And the result is written through.  I threw a "const" in, hoping
-     * this will cause a diagnostic.
-     */
-    CHAR64LONG16 *block = (const CHAR64LONG16 *) buffer;
-#endif
-    /* Copy context->state[] to working vars */
-    a = state[0];
-    b = state[1];
-    c = state[2];
-    d = state[3];
-    e = state[4];
-    /* 4 rounds of 20 operations each. Loop unrolled. */
-    R0(a, b, c, d, e, 0);
-    R0(e, a, b, c, d, 1);
-    R0(d, e, a, b, c, 2);
-    R0(c, d, e, a, b, 3);
-    R0(b, c, d, e, a, 4);
-    R0(a, b, c, d, e, 5);
-    R0(e, a, b, c, d, 6);
-    R0(d, e, a, b, c, 7);
-    R0(c, d, e, a, b, 8);
-    R0(b, c, d, e, a, 9);
-    R0(a, b, c, d, e, 10);
-    R0(e, a, b, c, d, 11);
-    R0(d, e, a, b, c, 12);
-    R0(c, d, e, a, b, 13);
-    R0(b, c, d, e, a, 14);
-    R0(a, b, c, d, e, 15);
-    R1(e, a, b, c, d, 16);
-    R1(d, e, a, b, c, 17);
-    R1(c, d, e, a, b, 18);
-    R1(b, c, d, e, a, 19);
-    R2(a, b, c, d, e, 20);
-    R2(e, a, b, c, d, 21);
-    R2(d, e, a, b, c, 22);
-    R2(c, d, e, a, b, 23);
-    R2(b, c, d, e, a, 24);
-    R2(a, b, c, d, e, 25);
-    R2(e, a, b, c, d, 26);
-    R2(d, e, a, b, c, 27);
-    R2(c, d, e, a, b, 28);
-    R2(b, c, d, e, a, 29);
-    R2(a, b, c, d, e, 30);
-    R2(e, a, b, c, d, 31);
-    R2(d, e, a, b, c, 32);
-    R2(c, d, e, a, b, 33);
-    R2(b, c, d, e, a, 34);
-    R2(a, b, c, d, e, 35);
-    R2(e, a, b, c, d, 36);
-    R2(d, e, a, b, c, 37);
-    R2(c, d, e, a, b, 38);
-    R2(b, c, d, e, a, 39);
-    R3(a, b, c, d, e, 40);
-    R3(e, a, b, c, d, 41);
-    R3(d, e, a, b, c, 42);
-    R3(c, d, e, a, b, 43);
-    R3(b, c, d, e, a, 44);
-    R3(a, b, c, d, e, 45);
-    R3(e, a, b, c, d, 46);
-    R3(d, e, a, b, c, 47);
-    R3(c, d, e, a, b, 48);
-    R3(b, c, d, e, a, 49);
-    R3(a, b, c, d, e, 50);
-    R3(e, a, b, c, d, 51);
-    R3(d, e, a, b, c, 52);
-    R3(c, d, e, a, b, 53);
-    R3(b, c, d, e, a, 54);
-    R3(a, b, c, d, e, 55);
-    R3(e, a, b, c, d, 56);
-    R3(d, e, a, b, c, 57);
-    R3(c, d, e, a, b, 58);
-    R3(b, c, d, e, a, 59);
-    R4(a, b, c, d, e, 60);
-    R4(e, a, b, c, d, 61);
-    R4(d, e, a, b, c, 62);
-    R4(c, d, e, a, b, 63);
-    R4(b, c, d, e, a, 64);
-    R4(a, b, c, d, e, 65);
-    R4(e, a, b, c, d, 66);
-    R4(d, e, a, b, c, 67);
-    R4(c, d, e, a, b, 68);
-    R4(b, c, d, e, a, 69);
-    R4(a, b, c, d, e, 70);
-    R4(e, a, b, c, d, 71);
-    R4(d, e, a, b, c, 72);
-    R4(c, d, e, a, b, 73);
-    R4(b, c, d, e, a, 74);
-    R4(a, b, c, d, e, 75);
-    R4(e, a, b, c, d, 76);
-    R4(d, e, a, b, c, 77);
-    R4(c, d, e, a, b, 78);
-    R4(b, c, d, e, a, 79);
-    /* Add the working vars back into context.state[] */
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-    state[4] += e;
-    /* Wipe variables */
-    a = b = c = d = e = 0;
-#ifdef SHA1HANDSOFF
-    memset(block, '\0', sizeof(block));
-#endif
-}
-
-
-/* SHA1Init - Initialize new context */
-
-void SHA1Init(
-    SHA1_CTX * context
-)
-{
-    /* SHA1 initialization constants */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xEFCDAB89;
-    context->state[2] = 0x98BADCFE;
-    context->state[3] = 0x10325476;
-    context->state[4] = 0xC3D2E1F0;
-    context->count[0] = context->count[1] = 0;
-}
-
-
-/* Run your data through this. */
-
-void SHA1Update(
-    SHA1_CTX * context,
-    const void * buf,
-    size_t len
-)
-{
-    uint32_t i;
-    uint32_t j;
-    uint8_t* data = (uint8_t*)buf;
-
-    j = context->count[0];
-    if ((context->count[0] += len << 3) < j)
-        context->count[1]++;
-    context->count[1] += (len >> 29);
-    j = (j >> 3) & 63;
-    if ((j + len) > 63)
-    {
-        memcpy(&context->buffer[j], data, (i = 64 - j));
-        SHA1Transform(context->state, context->buffer);
-        for (; i + 63 < len; i += 64)
-        {
-            SHA1Transform(context->state, &data[i]);
-        }
-        j = 0;
-    }
-    else
-        i = 0;
-    memcpy(&context->buffer[j], &data[i], len - i);
-}
-
-
-/* Add padding and return the message digest. */
-
-void SHA1Final(
-    SHA1_CTX * context,
-    uint8_t digest[SHA1_DIGEST_SIZE]
-)
-{
-    unsigned i;
-
-    uint8_t finalcount[8];
-
-    uint8_t c;
-
-#if 0    /* untested "improvement" by DHR */
-    /* Convert context->count to a sequence of bytes
-     * in finalcount.  Second element first, but
-     * big-endian order within element.
-     * But we do it all backwards.
-     */
-    uint8_t *fcp = &finalcount[8];
-
-    for (i = 0; i < 2; i++)
-    {
-        uint32_t t = context->count[i];
-
-        int j;
-
-        for (j = 0; j < 4; t >>= 8, j++)
-            *--fcp = (uint8_t) t}
-#else
-    for (i = 0; i < 8; i++)
-    {
-        finalcount[i] = (uint8_t) ((context->count[(i >= 4 ? 0 : 1)] >> ((3 - (i & 3)) * 8)) & 255);      /* Endian independent */
-    }
-#endif
-    c = 0200;
-    SHA1Update(context, &c, 1);
-    while ((context->count[0] & 504) != 448)
-    {
-        c = 0000;
-        SHA1Update(context, &c, 1);
-    }
-    SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
-    for (i = 0; i < 20; i++)
-    {
-        digest[i] = (uint8_t)
-            ((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
-    }
-    /* Wipe variables */
-    memset(context, '\0', sizeof(*context));
-    memset(&finalcount, '\0', sizeof(finalcount));
-}
-
-void SHA1_calc(
-    uint8_t *hash_out,
-    const void *data,
-    size_t len)
-{
-    SHA1_CTX ctx;
-    unsigned int ii;
-
-    SHA1Init(&ctx);
-    for (ii=0; ii<len; ii+=1)
-        SHA1Update(&ctx, (const char*)data + ii, 1);
-    SHA1Final(&ctx, hash_out);
-}
-
-/* conversion for 20 byte binary sha1 to hex */
-char* SHA1_hex(char* to, const uint8_t digest[SHA1_DIGEST_SIZE])
-{
-	uint8_t const* from = digest;
-	const char *hexdigits = "0123456789abcdef";
-	const uint8_t *end = digest + SHA1_DIGEST_SIZE;
-	char *d = to;
-
-	while (from < end) {
-		*d++ = hexdigits[(*from >> 4)];
-		*d++ = hexdigits[(*from & 0x0F)];
-		from++;
-	}
-	*d = '\0';
-	return to;
-}
diff --git a/hash/sha1.h b/hash/sha1.h
deleted file mode 100644
index 852585c..0000000
--- a/hash/sha1.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef SHA1_H
-#define SHA1_H
-
-/*
-   SHA-1 in C
-   By Steve Reid <steve@edmweb.com>
-   100% Public Domain
- */
-
-#include <stddef.h>		/* size_t */
-#include <gen_defs.h>	/* uint32_t */
-
-#define SHA1_DIGEST_SIZE 20
-
-typedef struct
-{
-    uint32_t state[5];
-    uint32_t count[2];
-    uint8_t buffer[64];
-} SHA1_CTX;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void SHA1Transform(
-    uint32_t state[5],
-    const uint8_t buffer[64]
-    );
-
-void SHA1Init(
-    SHA1_CTX * context
-    );
-
-void SHA1Update(
-    SHA1_CTX * context,
-    const void * data,
-    size_t len
-    );
-
-void SHA1Final(
-    SHA1_CTX * context,
-    uint8_t digest[SHA1_DIGEST_SIZE]
-    );
-
-void SHA1_calc(
-    uint8_t *hash_out,
-    const void *str,
-    size_t len);
-
-char* SHA1_hex(char* to, const uint8_t digest[SHA1_DIGEST_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SHA1_H */
diff --git a/uifc/CMakeLists.txt b/uifc/CMakeLists.txt
deleted file mode 100644
index a6ddccd..0000000
--- a/uifc/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-project (UIfC C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (FindThreads)
-
-set(SOURCE
-	filepick.c
-	uifc32.c
-	uifcx.c
-)
-
-set(HEADER
-	filepick.h
-	uifc.h
-)
-
-add_library(uifc OBJECT ${SOURCE})
-target_include_directories(uifc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-
-target_link_libraries(uifc ciolib xpdev)
diff --git a/uifc/filepick.c b/uifc/filepick.c
deleted file mode 100644
index c960d50..0000000
--- a/uifc/filepick.c
+++ /dev/null
@@ -1,721 +0,0 @@
-#include <ctype.h>
-
-#include "dirwrap.h"
-#include "uifc.h"
-#include "ciolib.h"
-
-#include "filepick.h"
-
-enum {
-	 DIR_LIST
-	,FILE_LIST
-	,MASK_FIELD
-	,CURRENT_PATH
-	,FIELD_LIST_TERM
-};
-
-void drawfpwindow(uifcapi_t *api)
-{
-	struct vmem_cell lbuf[512];
-	int i;
-	int j;
-	int listheight=0;
-	int height;
-	int width;
-	struct vmem_cell shade[512];
-
-	width=SCRN_RIGHT-SCRN_LEFT+1;
-
-	height=api->scrn_len-3;
-	/* Make sure it's odd */
-	if(!(width%2))
-		width--;
-
-	listheight=height-7;
-
-        i=0;
-	set_vmem(&lbuf[i++], '\xc9', api->hclr|(api->bclr<<4), 0);
-	for(j=1;j<width-1;j++)
-		set_vmem(&lbuf[i++], '\xcd', api->hclr|(api->bclr<<4), 0);
-	if(api->mode&UIFC_MOUSE && width>6) {
-		set_vmem(&lbuf[1], '[', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[2], '\xfe', api->lclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[3], ']', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[4], '[', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[5], '?', api->lclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[6], ']', api->hclr|(api->bclr<<4), 0);
-		api->buttony=SCRN_TOP;
-		api->exitstart=SCRN_LEFT+1;
-		api->exitend=SCRN_LEFT+3;
-		api->helpstart=SCRN_LEFT+4;
-		api->helpend=SCRN_LEFT+6;
-	}
-	set_vmem(&lbuf[i++], '\xbb', api->hclr|(api->bclr<<4), 0);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP,SCRN_LEFT+width-1,SCRN_TOP,lbuf);
-	set_vmem_attr(&lbuf[2], api->hclr|(api->bclr<<4));
-	set_vmem_attr(&lbuf[5], api->hclr|(api->bclr<<4));
-	for(j=1;j<7;j++)
-		lbuf[j].ch='\xcd';
-	lbuf[0].ch='\xc8';
-	lbuf[(width-1)].ch='\xbc';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-1
-		,SCRN_LEFT+width-1,SCRN_TOP+height-1,lbuf);
-	lbuf[0].ch='\xcc';
-	lbuf[(width-1)].ch='\xb9';
-	lbuf[(width-1)/2].ch='\xcb';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+2,SCRN_LEFT+width-1,SCRN_TOP+2,lbuf);
-	lbuf[(width-1)/2].ch='\xca';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+3+listheight
-		,SCRN_LEFT+width-1,SCRN_TOP+3+listheight,lbuf);
-	lbuf[0].ch='\xba';
-	lbuf[(width-1)].ch='\xba';
-	for(j=1;j<(width-1);j++)
-		lbuf[j].ch=' ';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+1,
-		SCRN_LEFT+width-1,SCRN_TOP+1,lbuf);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-2,
-		SCRN_LEFT+width-1,SCRN_TOP+height-2,lbuf);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-3,
-		SCRN_LEFT+width-1,SCRN_TOP+height-3,lbuf);
-	lbuf[(width-1)/2].ch='\xba';
-	for(j=0;j<listheight;j++)
-		vmem_puttext(SCRN_LEFT,SCRN_TOP+3+j
-			,SCRN_LEFT+width-1,SCRN_TOP+3+j,lbuf);
-
-	/* Shadow */
-	if(api->bclr==BLUE) {
-		vmem_gettext(SCRN_LEFT+width,SCRN_TOP+1,SCRN_LEFT+width+1
-			,SCRN_TOP+(height-1),shade);
-		for(j=0;j<512;j++)
-			set_vmem_attr(&shade[j], DARKGRAY);
-		vmem_puttext(SCRN_LEFT+width,SCRN_TOP+1,SCRN_LEFT+width+1
-			,SCRN_TOP+(height-1),shade);
-		vmem_gettext(SCRN_LEFT+2,SCRN_TOP+height,SCRN_LEFT+width+1
-			,SCRN_TOP+height,shade);
-		for(j=0;j<width;j++)
-			set_vmem_attr(&shade[j], DARKGRAY);
-		vmem_puttext(SCRN_LEFT+2,SCRN_TOP+height,SCRN_LEFT+width+1
-			,SCRN_TOP+height,shade);
-	}
-}
-
-void free_opt_list(char ***opts)
-{
-	char **p;
-
-	if(*opts==NULL)
-		return;
-	for(p=*opts; *p && (*p)[0]; p++) {
-		if(*p)
-			FREE_AND_NULL((*p));
-	}
-	FREE_AND_NULL(*opts);
-}
-
-char *insensitive_mask(char *mask)
-{
-#ifdef __unix__
-	char *in;
-	char *out;
-	static char nmask[MAX_PATH*4+1];
-
-	out=nmask;
-	for(in=mask; *in; in++) {
-		if(isalpha(*in)) {
-			*(out++)='[';
-			*(out++)=tolower(*in);
-			*(out++)=toupper(*in);
-			*(out++)=']';
-		}
-		else
-			*(out++)=*in;
-	}
-	*out=0;
-	return(nmask);
-#else
-	return(mask);
-#endif
-}
-
-char **get_file_opt_list(char **fns, int files, int dirsonly, int root)
-{
-	char **opts;
-	int  i;
-	int  j=0;
-
-	opts=(char **)malloc((files+2)*sizeof(char *));
-	if(opts==NULL)
-		return(NULL);
-	memset(opts, 0, (files+2)*sizeof(char *));
-	if(dirsonly) {
-		if(!root)
-			opts[j++]=strdup("..");
-	}
-	for(i=0;i<files;i++) {
-		if(isdir(fns[i])) {
-			if(dirsonly)
-				opts[j++]=strdup(getdirname(fns[i]));
-		}
-		else {
-			if(!dirsonly)
-				opts[j++]=strdup(getfname(fns[i]));
-		}
-	}
-	opts[j]="";
-	return(opts);
-}
-
-void display_current_path(uifcapi_t *api, char *path)
-{
-	char	dpath[MAX_PATH+2];
-	size_t	width;
-	int height;
-#ifdef _WIN32
-	char	*p;
-#endif
-
-	height=api->scrn_len-3;
-	width=SCRN_RIGHT-SCRN_LEFT-3;
-	SAFECOPY(dpath, path);
-	while(strlen(dpath) > width) {
-		/* Just remove paths from the start. */
-		dpath[0]='.';
-		dpath[1]='.';
-		dpath[2]='.';
-		memmove(dpath+3, dpath+(strlen(dpath)-width+4), width-1);
-	}
-	/* For Win32, convert all "confusing" / to \\ */
-#ifdef _WIN32
-	for(p=dpath; *p; p++) {
-		if(*p=='/')
-			*p='\\';
-	}
-	if (strncmp(dpath, "\\\\?\\", 4)==0)
-		memmove(dpath, dpath+4, strlen(dpath+3));
-#endif
-
-	api->printf(SCRN_LEFT+2, SCRN_TOP+height-2, api->lclr|(api->bclr<<4), "%-*s", width, dpath);
-}
-
-int mousetofield(int currfield, int opts, int height, int width, int listheight, int listwidth, int *dcur, int *dbar, int *fcur, int *fbar)
-{
-	int newfield;
-	int bardif;
-	struct mouse_event mevnt;
-
-	newfield=currfield;
-	if(getmouse(&mevnt)==0) {
-		if(mevnt.endx >= SCRN_LEFT + 1
-				&& mevnt.endx <= SCRN_LEFT + listwidth
-				&& mevnt.endy >= SCRN_TOP + 3
-				&& mevnt.endy <= SCRN_TOP + 2 + listheight) {
-			newfield = DIR_LIST;
-			if(mevnt.endx == SCRN_LEFT + 1)
-				ungetmouse(&mevnt);
-			else {
-				bardif = (mevnt.starty - SCRN_TOP - 3) - *dbar;
-				*dbar += bardif;
-				*dcur += bardif;
-			}
-		}
-		if(mevnt.endx >= SCRN_LEFT + 1 + listwidth + 1
-				&& mevnt.endx <= SCRN_LEFT + 1 + listwidth * 2
-				&& mevnt.endy >= SCRN_TOP + 3
-				&& mevnt.endy <= SCRN_TOP + 2 + listheight) {
-			newfield = FILE_LIST;
-			if(mevnt.endx == SCRN_LEFT + 1 + listwidth + 1)
-				ungetmouse(&mevnt);
-			else {
-				bardif = (mevnt.starty - SCRN_TOP - 3) - *fbar;
-				*fbar += bardif;
-				*fcur += bardif;
-			}
-		}
-		if(!(opts & UIFC_FP_MSKNOCHG)
-				&& (mevnt.endx >= SCRN_LEFT + 1
-					&& mevnt.endx <= SCRN_LEFT + width - 2
-					&& mevnt.endy == SCRN_TOP + height - 3)) {
-			newfield = MASK_FIELD;
-			ungetmouse(&mevnt);
-		}
-		if(opts & UIFC_FP_ALLOWENTRY
-				&& mevnt.endx >= SCRN_LEFT + 1
-				&& mevnt.endx <= SCRN_LEFT + width - 2
-				&& mevnt.endy == SCRN_TOP + height - 2) {
-			newfield = CURRENT_PATH;
-			ungetmouse(&mevnt);
-		}
-	}
-	return(newfield);
-}
-
-int filepick(uifcapi_t *api, char *title, struct file_pick *fp, char *dir, char *msk, int opts)
-{
-	char	cfile[MAX_PATH*8+1];		/* Current full path to file */
-	char	cpath[(MAX_PATH<<2)+1];			/* Current path */
-	char	drive[3];
-	char	tdir[MAX_PATH+1];
-	char	fname[MAX_PATH+1];
-	char	ext[MAX_PATH+1];
-	char	cmsk[MAX_PATH*4+1];			/* Current file mask */
-	char	cglob[MAX_PATH*4+1];		/* File glob patter */
-	char	dglob[MAX_PATH*4+2];		/* Directory glob pattern */
-	char	*p;
-	glob_t	fgl;						/* Files */
-	glob_t	dgl;						/* Directories */
-	int		dircur=0;
-	int		dirbar=0;
-	int		filecur=0;
-	int		filebar=0;
-	int		listwidth;
-	char	**dir_list=NULL;
-	char	**file_list=NULL;
-	int		currfield;
-	int		lastfield;
-	int		i;
-	int		root=0;						/* Is this the root of the file system? */
-										/* On *nix, this just means no .. on Win32,
-										 * Something should be done about drive letters. */
-	int		reread=FALSE;
-	int		lbclr;
-	char	*lastpath=NULL;
-	char	*tmplastpath=NULL;
-	char	*tmppath=NULL;
-	int		width;
-	int		height;
-	char	*YesNo[]={"Yes", "No", ""};
-	int		finished=FALSE;
-	int		retval=0;
-	int		fieldmove;
-	int		oldhu=hold_update;
-	int		oldx=wherex();
-	int		oldy=wherey();
-
-	height=api->scrn_len-3;
-	width=SCRN_RIGHT-SCRN_LEFT-3;
-
-	lbclr=api->lbclr;
-
-	/* No struct passed */
-	if(fp==NULL)
-		return(-1);
-
-	/* Illegal options */
-	if((opts & UIFC_FP_MULTI)==UIFC_FP_MULTI && (opts & (UIFC_FP_ALLOWENTRY|UIFC_FP_OVERPROMPT|UIFC_FP_CREATPROMPT)))
-		return(-1);
-
-	if (opts & UIFC_FP_DIRSEL)
-		currfield = lastfield = DIR_LIST;
-	else
-		currfield = lastfield = FILE_LIST;
-
-	fp->files=0;
-	fp->selected=NULL;
-
-	/* No initial path specified */
-	if(dir==NULL || !dir[0])
-		SAFECOPY(cpath,".");
-
-	FULLPATH(cpath,((dir==NULL||dir[0]==0)?".":dir),sizeof(cpath));
-	backslash(cpath);
-
-	if(msk==NULL || msk[0]==0) {
-		SAFECOPY(cmsk,"*");
-	}
-	else {
-		SAFECOPY(cmsk,msk);
-	}
-	sprintf(cfile,"%s%s",cpath,cmsk);
-	listwidth=SCRN_RIGHT-SCRN_LEFT+1;
-	listwidth-=listwidth%2;
-	listwidth-=3;
-	listwidth/=2;
-	/* Draw the file picker itself... */
-	hold_update = TRUE;
-	drawfpwindow(api);
-	/* Display the title centered */
-	i=strlen(title);
-	if(i>width-4)
-		i=width-4;
-	api->printf(SCRN_LEFT+2, SCRN_TOP+1, api->hclr|(api->bclr<<4), "%*s%-*s", (width-i)/2-2, "", i, title);
-	api->printf(SCRN_LEFT+2, SCRN_TOP+height-3, api->hclr|(api->bclr<<4), "Mask: ");
-	while(!finished) {
-		hold_update = TRUE;
-		api->printf(SCRN_LEFT+8, SCRN_TOP+height-3, api->lclr|(api->bclr<<4), "%-*s", width-7, cmsk);
-		tmppath=strdup(cpath);
-		if(tmppath != NULL) {
-#ifdef _WIN32
-			if (tmppath[0] == 0 || (tmppath[5]==0 && tmppath[3]=='.' && tmppath[4]=='.' && tmppath[1]==':' && IS_PATH_DELIM(tmppath[2])))
-				strcpy(cpath, "\\\\?\\");
-			else if(strncmp(tmppath, "\\\\?\\", 4)==0 && tmppath[4])
-				strcpy(cpath, tmppath+4);
-			else
-#endif
-			{
-				FULLPATH(cpath,tmppath,sizeof(cpath));
-			}
-		}
-		FREE_AND_NULL(tmppath);
-
-#ifdef __unix__
-		if(cpath[0]==0) {
-			cpath[0]='/';
-			cpath[1]=0;
-		}
-#endif
-		backslash(cpath);
-		sprintf(cglob,"%s%s",cpath,(opts&UIFC_FP_MSKCASE)?cmsk:insensitive_mask(cmsk));
-		sprintf(dglob,"%s*",cpath);
-		switch(currfield) {
-			case DIR_LIST:
-				if(lastfield==DIR_LIST)
-					sprintf(cfile,"%s%s",cpath,cmsk);
-				break;
-		}
-
-#ifdef __unix__
-		if(cpath[0]==0) {
-			cpath[0]='/';
-			cpath[1]=0;
-		}
-		if(cpath[1]==0)
-			root=TRUE;
-		else
-			root=FALSE;
-#endif
-
-#ifdef _WIN32
-		if (strcmp(cpath, "\\\\?\\")==0)
-			root = TRUE;
-		else
-			root = FALSE;
-#endif
-
-#ifdef _WIN32
-		// Hack together some hawtness
-		if (root) {
-			unsigned long drives = _getdrives();
-			int j;
-			char path[4];
-
-			memset(&dgl, 0, sizeof(dgl));
-			strcpy(path, "A:\\");
-			dgl.gl_pathv=malloc(sizeof(char *)*('Z'-'A'+2));
-			for (j=0; j<='Z'-'A'; j++) {
-				if(drives & (1<<j)) {
-					path[0]='A'+j;
-					dgl.gl_pathv[dgl.gl_pathc++]=strdup(path);
-				}
-			}
-		}
-		else 
-#endif
-		{
-			if(glob(dglob, GLOB_MARK, NULL, &dgl)!=0 && !isdir(cpath)) {
-				if(lastpath==NULL) {
-					fp->files=0;
-					retval=-1;
-					goto cleanup;
-				}
-				hold_update=FALSE;
-				api->msg("Cannot read directory!");
-				if (api->exit_flags & UIFC_XF_QUIT) {
-					retval=fp->files=0;
-					goto cleanup;
-				}
-				SAFECOPY(cpath, lastpath);
-				FREE_AND_NULL(lastpath);
-				currfield=lastfield;
-				continue;
-			}
-		}
-		if(glob(cglob, 0, NULL, &fgl)!=0)
-			fgl.gl_pathc=0;
-		api->list_height=api->scrn_len-3-7;
-		dir_list=get_file_opt_list(dgl.gl_pathv, dgl.gl_pathc, TRUE, root);
-		file_list=get_file_opt_list(fgl.gl_pathv, fgl.gl_pathc, FALSE, root);
-		globfree(&dgl);
-		globfree(&fgl);
-		reread=FALSE;
-		dircur=dirbar=filecur=filebar=0;
-		while(!reread) {
-			hold_update=TRUE;
-			display_current_path(api, cfile);
-			api->lbclr=api->lclr|(api->bclr<<4);
-			api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1,3,listwidth,&dircur,&dirbar,NULL,dir_list);
-			api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-			api->lbclr=lbclr;
-			lastfield=currfield;
-			fieldmove=0;
-			hold_update = FALSE;
-			switch(currfield) {
-				case DIR_LIST:
-					i=api->list(WIN_DYN|WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_EXTKEYS|WIN_UNGETMOUSE|WIN_REDRAW,1,3,listwidth,&dircur,&dirbar,NULL,dir_list);
-					if(i==-1) {		/* ESC */
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(i==-2-'\t' || i==-2-CIO_KEY_RIGHT)	/* TAB */
-						fieldmove=1;
-					if(i==-3842)	/* Backtab */
-						fieldmove=-1;
-					if(i==-2-CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i>=0) {
-						FREE_AND_NULL(lastpath);
-						lastpath=strdup(cpath);
-						strcat(cpath,dir_list[i]);
-						reread=TRUE;
-						sprintf(cfile,"%s%s",cpath,cmsk);
-					}
-					break;
-				case FILE_LIST:
-					i=api->list(WIN_DYN|WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_EXTKEYS|WIN_UNGETMOUSE|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-					if(i==-1) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(i>=0) {
-						sprintf(cfile,"%s%s",cpath,file_list[i]);
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI) {
-							retval=fp->files=1;
-							fp->selected=(char **)malloc(sizeof(char *));
-							if(fp->selected==NULL) {
-								fp->files=0;
-								retval=-1;
-								goto cleanup;
-							}
-							fp->selected[0]=strdup(cfile);
-							if(fp->selected[0]==NULL) {
-								FREE_AND_NULL(fp->selected);
-								fp->files=0;
-								retval=-1;
-								goto cleanup;
-							}
-							api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-							finished=reread=TRUE;
-						}
-					}
-					if(i==-2-'\t')
-						fieldmove=1;
-					if(i==-3842 || i==-2-CIO_KEY_LEFT)	/* Backtab */
-						fieldmove=-1;
-					if(i==-2-CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					break;
-				case CURRENT_PATH:
-					FREE_AND_NULL(tmplastpath);
-					tmplastpath=strdup(cpath);
-#ifdef _WIN32
-					if (strncmp(tmplastpath, "\\\\?\\", 4)==0)
-						memmove(tmplastpath, tmplastpath+4, strlen(tmplastpath+3));
-					if (strncmp(cfile, "\\\\?\\", 4)==0)
-						memmove(cfile, cfile+4, strlen(cfile+3));
-#endif
-					api->getstrxy(SCRN_LEFT+2, SCRN_TOP+height-2, width-1, cfile, sizeof(cfile)-1, K_EDIT|K_TABEXIT|K_MOUSEEXIT, &i);
-					if(i==ESC) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if((opts & (UIFC_FP_FILEEXIST|UIFC_FP_PATHEXIST)) && !fexist(cfile)) {
-#ifdef _WIN32
-						if (cfile[0])	// Allow zero-length path to mean "Drive list"
-#endif
-						{
-							FREE_AND_NULL(tmplastpath);
-							api->msg("No such path/file!");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-					}
-					if(isdir(cfile) && cfile[0])
-						backslash(cfile);
-					_splitpath(cfile, drive, tdir, fname, ext);
-					sprintf(cpath,"%s%s",drive,tdir);
-					if(!isdir(cpath)) {
-#ifdef _WIN32
-						if (cfile[0] && strcmp(cfile, cmsk))	// Allow zero-length path to mean "Drive list"
-#endif
-						{
-							FREE_AND_NULL(tmplastpath);
-							api->msg("No such path!");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-					}
-					if(i==CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i==3840)
-						fieldmove=-1;
-					else {
-						if(currfield == CURRENT_PATH)
-							fieldmove=1;
-					}
-					sprintf(cfile,"%s%s%s%s",drive,tdir,fname,ext);
-					if(strchr(fname,'*') !=NULL || strchr(fname,'?') !=NULL
-						|| strchr(ext,'*') !=NULL || strchr(ext,'?') !=NULL
-						|| ((isdir(cfile) || cfile[0]==0) && !(opts & UIFC_FP_DIRSEL) && (i=='\r' || i=='\n'))
-						|| (!isdir(cfile) && i!='\r' && i!='\n')) {
-						if(opts & UIFC_FP_MSKNOCHG) {
-							sprintf(cfile,"%s%s%s",drive,tdir,cmsk);
-							FREE_AND_NULL(tmplastpath);
-							api->msg("File mask cannot be changed");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-						else {
-							if((!isdir(cfile)) && cpath[0] != 0)
-								sprintf(cmsk, "%s%s", fname, ext);
-							reread=TRUE;
-						}
-						break;
-					}
-					else {
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && (i=='\r' || i!='\n'))
-						fieldmove=0;
-					}
-					if((currfield != CURRENT_PATH) || fieldmove)
-						break;
-					if(isdir(cfile)) {
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && i!='\t' && i != 3840) {
-							if(opts & UIFC_FP_DIRSEL) {
-								finished=reread=TRUE;
-								retval=fp->files=1;
-								fp->selected=(char **)malloc(sizeof(char *));
-								if(fp->selected==NULL) {
-									fp->files=0;
-									retval=-1;
-									goto cleanup;
-								}
-								fp->selected[0]=strdup(cfile);
-								if(fp->selected[0]==NULL) {
-									free(fp->selected);
-									fp->files=0;
-									retval=-1;
-									goto cleanup;
-								}
-							}
-						}
-						SAFECOPY(cpath, cfile);
-						backslash(cfile);
-						strcat(cfile,cmsk);
-					}
-					if(tmplastpath != NULL) {
-						if(strcmp(tmplastpath, cpath)) {
-							reread=TRUE;
-							FREE_AND_NULL(lastpath);
-							lastpath=tmplastpath;
-							tmplastpath=NULL;
-						}
-					}
-					FREE_AND_NULL(tmplastpath);
-					if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && i!='\t' && i!=3840 && cpath[0]) {
-						retval=fp->files=1;
-						fp->selected=(char **)malloc(sizeof(char *));
-						if(fp->selected==NULL) {
-							fp->files=0;
-							retval=-1;
-							goto cleanup;
-						}
-						fp->selected[0]=strdup(cfile);
-						if(fp->selected[0]==NULL) {
-							FREE_AND_NULL(fp->selected);
-							fp->files=0;
-							retval=-1;
-							goto cleanup;
-						}
-						finished=reread=TRUE;
-					}
-					break;
-				case MASK_FIELD:
-					p=strdup(cmsk);
-					api->getstrxy(SCRN_LEFT+8, SCRN_TOP+height-3, width-7, cmsk, sizeof(cmsk)-1, K_EDIT|K_TABEXIT|K_MOUSEEXIT, &i);
-					if(i==CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i==ESC || i==CIO_KEY_QUIT || (api->exit_flags & UIFC_XF_QUIT)) {
-						FREE_AND_NULL(p);
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(strcmp(cmsk, p)) {
-						sprintf(cfile,"%s%s",cpath,cmsk);
-						reread=TRUE;
-					}
-					FREE_AND_NULL(p);
-					if(i==3840)
-						fieldmove=-1;
-					else
-						fieldmove=1;
-					break;
-			}
-			currfield+=fieldmove;
-			if(currfield<0)
-				currfield=FIELD_LIST_TERM-1;
-			while(1) {
-				if(currfield==MASK_FIELD && (opts & UIFC_FP_MSKNOCHG)) {
-					currfield+=fieldmove;
-					continue;
-				}
-				if(currfield==CURRENT_PATH && !(opts & UIFC_FP_ALLOWENTRY)) {
-					currfield+=fieldmove;
-					continue;
-				}
-				break;
-			}
-			if(currfield==FIELD_LIST_TERM)
-				currfield=DIR_LIST;
-		}
-		free_opt_list(&file_list);
-		free_opt_list(&dir_list);
-		if(finished) {
-			if((opts & UIFC_FP_OVERPROMPT) && fexist(cfile)) {
-				if(api->list(WIN_MID|WIN_SAV, 0,0,0, &i, NULL, "File exists, overwrite?", YesNo)!=0) {
-					if (api->exit_flags & UIFC_XF_QUIT) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					finished=FALSE;
-				}
-			}
-			if((opts & UIFC_FP_CREATPROMPT) && !fexist(cfile)) {
-				if(api->list(WIN_MID|WIN_SAV, 0,0,0, &i, NULL, "File does not exist, create?", YesNo)!=0) {
-					if (api->exit_flags & UIFC_XF_QUIT) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					finished=FALSE;
-				}
-			}
-		}
-	}
-
-cleanup:		/* Cleans up allocated variables returns from function */
-	hold_update=oldhu;
-	gotoxy(oldx,oldy);
-	FREE_AND_NULL(lastpath);
-	FREE_AND_NULL(tmppath);
-	FREE_AND_NULL(tmplastpath);
-	free_opt_list(&file_list);
-	free_opt_list(&dir_list);
-	return(retval);
-}
-
-int filepick_free(struct file_pick *fp)
-{
-	int i;
-
-	for(i=0; i<fp->files; i++) {
-		FREE_AND_NULL(fp->selected[i]);
-	}
-	FREE_AND_NULL(fp->selected);
-	return(0);
-}
diff --git a/uifc/filepick.h b/uifc/filepick.h
deleted file mode 100644
index 2d1285a..0000000
--- a/uifc/filepick.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _FILEPICK_H_
-#define _FILEPICK_H_
-
-#include "dirwrap.h"
-#include "uifc.h"
-
-#define UIFC_FP_MSKNOCHG	(1<<0)				/* Don't allow user to change the file mask */
-#define	UIFC_FP_MSKCASE		(1<<1)				/* Make the mask case-sensitive */
-#define UIFC_FP_UNIXSORT	(1<<2)				/* ToDo: Sort upper-case first, then lower-case */
-#define UIFC_FP_DIRSEL		(1<<3)				/* ToDo: Select directory, not file */
-#define UIFC_FP_PATHEXIST	(1<<4)				/* Do not allow selection of non-existant paths */
-#define UIFC_FP_FILEEXIST	(1<<5)				/* File must exist */
-#define UIFC_FP_SHOWHIDDEN	(1<<6)				/* Show hidden files */
-#define UIFC_FP_MULTI		((1<<7)|UIFC_FP_PATHEXIST|UIFC_FP_FILEEXIST)
-												/* ToDo: Allow multiple files to be chosen */
-
-/* The following can NOT be used with multi selects (Returns an error) */
-#define UIFC_FP_ALLOWENTRY	(1<<8)				/* Allow user to type a file/path name */
-#define UIFC_FP_OVERPROMPT	(1<<9)				/* Prompt "Overwrite?" if file exists */
-#define UIFC_FP_CREATPROMPT	(1<<10)				/* Prompt "Create?" if file does not exist */
-
-struct file_pick {
-	int		files;
-	char	**selected;
-};
-
-int filepick(uifcapi_t *api, char *title, struct file_pick *, char *initial_dir, char *default_mask, int opts);
-int filepick_free(struct file_pick *);
-
-#endif
diff --git a/uifc/uifc.h b/uifc/uifc.h
deleted file mode 100644
index 6eeffa3..0000000
--- a/uifc/uifc.h
+++ /dev/null
@@ -1,535 +0,0 @@
-/* Text-mode User Interface Library (inspired by Novell SYSCON look & feel) */
-
-/* $Id: uifc.h,v 1.97 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _UIFC_H_
-#define _UIFC_H_
-
-#include <time.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdlib.h>
-/* OS Specific */
-#if defined(_WIN32)
-    #include <windows.h>
-#endif
-#if defined(__unix__)
-	#include <sys/param.h>	/* PATH_MAX */
-#endif
-
-#ifdef _WIN32
-        #if defined(UIFC_IMPORTS) || defined(UIFC_EXPORTS)
-                #if defined(UIFC_IMPORTS)
-                        #define UIFCEXPORT __declspec( dllimport )
-                        #define UIFCEXPORTVAR __declspec( dllimport )
-                #else
-                        #define UIFCEXPORT __declspec( dllexport )
-                        #define UIFCEXPORTVAR __declspec( dllexport )
-                #endif
-        #else   /* self-contained executable */
-                #define UIFCEXPORT
-                #define UIFCEXPORTVAR	extern
-        #endif
-#else
-        #define UIFCEXPORT
-        #define UIFCEXPORTVAR	extern
-#endif
-
-#if defined(__unix__) && !defined(stricmp)
-    #define stricmp strcasecmp
-	#define strnicmp strncasecmp
-#endif
-
-#if !defined(FREE_AND_NULL)
-	#define FREE_AND_NULL(x)			if(x!=NULL) { free(x); x=NULL; }
-#endif
-
-#if !defined(MAX_PATH)	/* maximum path length */
-	#if defined MAXPATHLEN
-		#define MAX_PATH MAXPATHLEN	/* clib.h */
-	#elif defined PATH_MAX
-		#define MAX_PATH PATH_MAX
-	#elif defined _MAX_PATH
-		#define MAX_PATH _MAX_PATH
-	#else
-		#define MAX_PATH 260		
-	#endif
-#endif
-
-#define MAX_OPTS			100000
-#define MSK_ON				0xf0000000
-#define MSK_OFF 			0x0fffffff
-#define MSK_INS 			0x10000000
-#define MSK_DEL 			0x20000000
-#define MSK_COPY 			0x30000000
-#define MSK_CUT 			0x40000000
-#define MSK_PASTE			0x50000000	/* Overwrite selected item with previously copied item */
-#define MSK_EDIT			0x60000000
-
-/* Legacy terms (get/put instead of copy/paste) */
-#define MSK_GET		MSK_COPY
-#define MSK_PUT		MSK_PASTE
-
-/* Don't forget, negative return values are used for extended keys (if WIN_EXTKEYS used)! */
-#define MAX_OPLN	75		/* Maximum length of each option per menu call */
-#define MAX_BUFS	7		/* Maximum number of screen buffers to save */
-#define MIN_LINES   14      /* Minimum number of screen lines supported */
-#define MAX_LINES   255     /* Maximum number of screen lines supported (ciolib screenheight is a uchar) */ 
-#define MAX_COLS	255		/* Maximum number of screen columns supported (ciolib screenwidth is a uchar) */ 
-#define MAX_BFLN	(MAX_COLS*MAX_LINES*2)	/* Maximum size of screen buffers, char + attr */
-
-#ifndef uint
-#define uint unsigned int
-#endif
-
-								/**************************/
-						        /* Bits in uifcapi_t.mode */
-								/**************************/
-#define UIFC_INMSG		(1<<0)	/* Currently in Message Routine non-recursive */
-#define UIFC_MOUSE		(1<<1)	/* Mouse installed and available */
-#define UIFC_MONO		(1<<2)	/* Force monochrome mode */
-#define UIFC_COLOR		(1<<3)	/* Force color mode */
-#define UIFC_IBM		(1<<4)	/* Force use of IBM charset	*/
-#define UIFC_NOCTRL		(1<<5)	/* Don't allow usage of CTRL keys for movement 
-								 * etc in menus (Still available in text boxes) */
-#define UIFC_NHM		(1<<6)	/* Don't hide the mouse pointer */
-#define UIFC_NOMOUSE	(1<<7)	/* Don't enable/use the mouse */
-
-							/*******************************/
-                            /* Bits in uifcapi_t.list mode */
-							/*******************************/
-#define WIN_ORG 	(1<<0)	/* Original menu - destroy valid screen area */
-#define WIN_SAV 	(1<<1)	/* Save existing text and replace when finished */
-#define WIN_ACT 	(1<<2)	/* Menu remains active after a selection */
-#define WIN_L2R 	(1<<3)	/* Center the window based on 'width'   */
-#define WIN_T2B 	(1<<4)	/* Center the window based on 'height'  */
-#define WIN_INS 	(1<<5)	/* Allows user to use insert key */
-#define WIN_INSACT	(1<<6)	/* Remains active after insert key */
-#define WIN_DEL 	(1<<7)	/* Allows user to use delete key */
-#define WIN_DELACT	(1<<8)	/* Remains active after delete key */
-#define WIN_ESC 	(1<<9)	/* Screen is active when escape is hit			 */
-#define WIN_RHT 	(1<<10) /* Place window against right side of screen */
-#define WIN_BOT 	(1<<11) /* Place window against bottom of screen */
-#define WIN_COPY 	(1<<12) /* Allows F5 to Get (copy) a menu item */
-#define WIN_PASTE 	(1<<13) /* Allows F6 to Put (paste) a menu item */
-#define WIN_CHE 	(1<<14) /* Stay active after escape if changes */
-#define WIN_XTR 	(1<<15) /* Add extra line at end for inserting at end */
-#define WIN_DYN 	(1<<16) /* Dynamic window - return at least every second */
-#define WIN_CUT		(1<<17)	/* Allow ^X (cut) a menu item */
-#define WIN_HLP 	(1<<17) /* Parse 'Help codes' - showbuf() */
-#define WIN_PACK 	(1<<18) /* Pack text in window (No padding) - showbuf() */
-#define WIN_IMM 	(1<<19) /* Draw window and return immediately */
-#define WIN_FAT		(1<<20)	/* Do not pad outside borders */
-#define WIN_REDRAW	(1<<21) /* Force redraw on dynamic window */
-#define WIN_NODRAW	(1<<22) /* Force not to redraw on dynamic window */
-#define WIN_EXTKEYS	(1<<23) /* Return on any keypress... if it's not handled internally
-							 * Return value is -2 - keyvalue */
-#define WIN_NOBRDR	(1<<24)	/* Do not draw a border around the window */
-#define WIN_FIXEDHEIGHT	(1<<25)	/* Use list_height from uifc struct */
-#define WIN_UNGETMOUSE  (1<<26) /* If the mouse is clicked outside the window, */
-								/* Put the mouse event back into the event queue */
-#define WIN_EDIT		(1<<27)	/* Allow F2 to edit a menu item */
-#define WIN_PASTEXTR	(1<<28)	/* Allow paste into extra (blank) item */
-#define WIN_INACT		(1<<29)	/* Draw window inactive... intended for use with WIN_IMM */
-#define WIN_POP			(1<<30)	/* Exit the list. Act as though ESC was pressed. */
-								/* Intended for use after a WIN_EXTKEYS or WIN_DYN */
-#define WIN_SEL			(1<<31)	/* Exit the list. Act as though ENTER was pressed. */
-								/* Intended for use after a WIN_EXTKEYS or WIN_DYN */
-
-#define WIN_MID WIN_L2R|WIN_T2B  /* Place window in middle of screen */
-#define WIN_GET	WIN_COPY
-#define WIN_PUT WIN_PASTE
-
-#define SCRN_TOP	3
-#define SCRN_LEFT	5
-#define SCRN_RIGHT 	((int)api->scrn_width-4)
-
-								/* Bits in 'mode' for getkey and getstr     */
-#define K_UPPER 	(1L<<0) 	/* Converts all letters to upper case		*/
-#define K_UPRLWR	(1L<<1) 	/* Upper/Lower case automatically			*/
-#define K_NUMBER	(1L<<2) 	/* Allow numbers only						*/
-#define K_WRAP		(1L<<3) 	/* Allows word wrap 						*/
-#define K_MSG		(1L<<4) 	/* Allows ANSI, ^N ^A ^G					*/
-#define K_SPIN		(1L<<5) 	/* Spinning cursor (same as SPIN)			*/
-#define K_LINE		(1L<<6) 	/* Input line (inverse color)				*/
-#define K_EDIT		(1L<<7) 	/* Edit string passed						*/
-#define K_CHAT		(1L<<8) 	/* In chat multi-chat						*/
-#define K_NOCRLF	(1L<<9) 	/* Don't print CRLF after string input      */
-#define K_ALPHA 	(1L<<10)	/* Only allow alphabetic characters 		*/
-#define K_SCANNING	(1L<<11)	/* UPC Scanner is active... return on '%'	*/
-#define K_TABEXIT	(1L<<12)	/* Return on TAB or BACKTAB			    	*/
-#define K_DECIMAL	(1L<<13)	/* Allow floating point numbers only		*/
-#define K_DEUCEEXIT	(1L<<14)	/* Return whenever Deuce wants to exit		*/
-								/* Returns on up/down/F2					*/
-#define K_MOUSEEXIT	(1L<<15)	/* Returns when mouse is clicked outside of */
-								/* Input area (NOT outside of window!)		*/
-								/* And ungets the mouse event.				*/
-#define K_PASSWORD	(1L<<16)	/* Does not display text while editing		*/
-#define K_FIND		(1L<<17)	/* Don't set the "changes" flag				*/
-
-
-						/* Extra exit flags */
-#define UIFC_XF_QUIT	(1<<0)	/* Returned -1 due to CIO_KEY_QUIT */
-
-#define HELPBUF_SIZE 4000
-
-#ifndef _GEN_DEFS_H
-									/* Control characters */
-#define STX 	0x02				/* Start of text			^B	*/
-#define ETX 	0x03				/* End of text				^C	*/
-#define BS		'\b'				/* Back space				^H	*/
-#define TAB 	'\t'				/* Horizontal tabulation	^I	*/
-#define LF		'\n'				/* Line feed				^J	*/
-#define FF		0x0c				/* Form feed				^L	*/
-#define CR		'\r'				/* Carriage return			^M	*/
-#define ESC 	0x1b				/* Escape					^[	*/
-#define DEL     0x7f                /* Delete                   ^BS */
-
-enum {
-	 CTRL_A=1
-	,CTRL_B
-	,CTRL_C
-	,CTRL_D	
-	,CTRL_E
-	,CTRL_F
-	,CTRL_G
-	,CTRL_H
-	,CTRL_I
-	,CTRL_J
-	,CTRL_K
-	,CTRL_L
-	,CTRL_M
-	,CTRL_N
-	,CTRL_O
-	,CTRL_P
-	,CTRL_Q
-	,CTRL_R
-	,CTRL_S
-	,CTRL_T
-	,CTRL_U
-	,CTRL_V
-	,CTRL_W
-	,CTRL_X
-	,CTRL_Y
-	,CTRL_Z
-};
-
-#endif
-
-#ifndef uchar				/* Short-hand for unsigned data types */
-#define uchar unsigned char
-#endif
-#ifndef uint
-#define uint unsigned int
-#endif
-#ifndef ulong
-#define ulong unsigned long
-#endif
-
-#ifndef BOOL
-#define BOOL    int
-#ifndef TRUE
-#define TRUE    1
-#endif
-#ifndef FALSE
-#define FALSE   0
-#endif
-#endif
-
-typedef struct {
-	int		left,top,right,bot;
-	int		*cur,*bar;
-    uchar*	buf;
-} win_t;
-
-typedef struct {
-	char	background;
-	char	help_char;
-	char	close_char;
-	char	up_arrow;
-	char	down_arrow;
-	char	button_left;
-	char	button_right;
-
-	char	list_top_left;
-	char	list_top;
-	char	list_top_right;
-	char	list_separator_left;
-	char	list_separator_right;
-	char	list_horizontal_separator;
-	char	list_left;
-	char	list_right;
-	char	list_bottom_left;
-	char	list_bottom_right;
-	char	list_bottom;
-	char	list_scrollbar_separator;
-
-	char	input_top_left;
-	char	input_top;
-	char	input_top_right;
-	char	input_left;
-	char	input_right;
-	char	input_bottom_left;
-	char	input_bottom_right;
-	char	input_bottom;
-
-	char	popup_top_left;
-	char	popup_top;
-	char	popup_top_right;
-	char	popup_left;
-	char	popup_right;
-	char	popup_bottom_left;
-	char	popup_bottom_right;
-	char	popup_bottom;
-
-	char	help_top_left;
-	char	help_top;
-	char	help_top_right;
-	char	help_left;
-	char	help_right;
-	char	help_bottom_left;
-	char	help_bottom_right;
-	char	help_bottom;
-	char	help_titlebreak_left;
-	char	help_titlebreak_right;
-	char	help_hitanykey_left;
-	char	help_hitanykey_right;
-} uifc_graphics_t;
-
-typedef struct {
-/****************************************************************************/
-/* Size of the structure (for version compatibility verification).			*/
-/****************************************************************************/
-    size_t  size;
-/****************************************************************************/
-/* Controls general UIFC library behavior.									*/
-/****************************************************************************/
-    long    mode;
-/****************************************************************************/
-/* Set to TRUE when changes to data have been made by input function.		*/ 
-/****************************************************************************/
-    BOOL    changes;
-/****************************************************************************/
-/* Set to TRUE to enable insert mode by default (not overwrite)				*/
-/****************************************************************************/
-	BOOL	insert_mode;
-/****************************************************************************/
-/* The overlapped-window save buffer number.								*/
-/****************************************************************************/
-    uint    savnum;
-/****************************************************************************/
-/* The current overlapped-window save buffer depth.							*/
-/****************************************************************************/
-    uint    savdepth;
-/****************************************************************************/
-/* Screen length															*/
-/****************************************************************************/
-    uint    scrn_len;
-/****************************************************************************/
-/* Screen Width 															*/
-/****************************************************************************/
-    uint    scrn_width;
-/****************************************************************************/
-/* ESC key delay for curses													*/
-/****************************************************************************/
-    uint    esc_delay;
-/****************************************************************************/
-/* Alternative method of setting current help text.							*/
-/****************************************************************************/
-    char*   helpbuf;
-/****************************************************************************/
-/* Location of the help data and index files.								*/
-/****************************************************************************/
-    char    helpdatfile[MAX_PATH+1];
-    char    helpixbfile[MAX_PATH+1];
-	BOOL	help_available;
-/****************************************************************************/
-/* Help and exit button locations for current/last window					*/
-/****************************************************************************/
-	int		buttony;
-	int		exitstart;
-	int		exitend;
-	int		helpstart;
-	int		helpend;
-/****************************************************************************/
-/* List height for WIN_FIXEDHEIGHT lists.									*/
-/****************************************************************************/
-	int		list_height;
-
-/****************************************************************************/
-/* Colours for the various bits												*/
-/****************************************************************************/
-	uchar	hclr,lclr,bclr,cclr,lbclr;
-
-/****************************************************************************/
-/* Have we initialized successfully?										*/
-/****************************************************************************/
-	BOOL	initialized;
-
-/****************************************************************************/
-/* UIFC_XF_* bits for extra exit status										*/
-/****************************************************************************/
-	uint	exit_flags;
-
-/****************************************************************************/
-/* Custom drawing characters												*/
-/****************************************************************************/
-	uifc_graphics_t	*chars;
-
-/****************************************************************************/
-/* Allow application override												*/
-/****************************************************************************/
-	char** yesNoOpts;
-
-/****************************************************************************/
-/* Exit/uninitialize function.												*/
-/****************************************************************************/
-    void    (*bail) (void);
-/****************************************************************************/
-/* Fill the screen with the appropriate background attribute.				*/
-/* str is the title for the application banner.								*/
-/* Returns 0 on success, non-zero on failure.								*/
-/****************************************************************************/
-    int     (*scrn) (const char* str);
-/****************************************************************************/
-/* Popup a message, maybe wait for the user to hit a key or click button.	*/
-/****************************************************************************/
-	int		(*msg)  (const char* str);
-	int		(*msgf) (char* fmt, ...);
-	BOOL	(*deny) (char* fmt, ...);
-	BOOL	(*confirm) (char* fmt, ...);
-/****************************************************************************/
-/* Popup/down a status message.												*/
-/* str is the message to display on popup.									*/
-/* if str==NULL, then the the status is to be cleared (popdown).			*/
-/****************************************************************************/
-    void    (*pop)  (const char* str);
-/****************************************************************************/
-/* General menu function.													*/
-/* mode contains WIN_* flags to control display and functionality.			*/
-/* left, top and width specify desired screen locations and window size.	*/
-/* cur is a pointer to the current (default) option.						*/
-/* bar is a pointer to the current location of the lightbar (which used).	*/
-/* title is the caption for the menu.										*/
-/* Menus can centered left to right and top to bottom automatically.		*/
-/* mode bits are set with macros WIN_*.										*/
-/* option is an array of char arrays, first element of last char array		*/
-/* must be NULL.															*/
-/* Returns the 0-based selected option number, -1 for ESC, or the selected	*/
-/* option number OR'd with MSK_INS, MSK_DEL, MSK_GET, MSK_PUT, or MSK_EDIT.	*/
-/****************************************************************************/
-    int     (*list) (int mode, int left, int top, int width, int* dflt
-                        ,int* bar, const char *title, char** option);
-/****************************************************************************/
-/* Windowed string input routine.											*/
-/* mode contains WIN_* flags to control display and functionality.			*/
-/* left and top specify desired screen location.							*/
-/* prompt is displayed before the input is requested.						*/
-/* str is the string to input or edit.										*/
-/* len is the maximum length of the string.									*/
-/* kmode contains flags that control the string input (K_* macros).			*/
-/* This function sets uifcapi_t.changes to TRUE if the string is modified.	*/
-/* Returns the length of the string or -1 on escape/abort.					*/
-/****************************************************************************/
-    int     (*input)(int mode, int left, int top, const char* prompt, char* str
-            	        ,int len, int kmode);
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-    void    (*sethelp)(int line, char* file);
-
-/****************************************************************************/
-/* Shows the current help text												*/
-/****************************************************************************/
-    void    (*showhelp)(void);
-	
-/****************************************************************************/
-/* Shows a scrollable text buffer - optionally parsing "help markup codes"	*/
-/****************************************************************************/
-	void	(*showbuf)(int mode, int left, int top, int width, int height
-							,const char *title, const char *hbuf, int *curp, int *barp);
-
-/****************************************************************************/
-/* Updates time in upper left corner of screen with current time in ASCII/  */
-/* Unix format																*/
-/****************************************************************************/
-	void	(*timedisplay)(BOOL force);
-
-/****************************************************************************/
-/* Displays the bottom line using the WIN_* mode flags						*/
-/****************************************************************************/
-    void	(*bottomline)(int mode);
-
-/****************************************************************************/
-/* String input/exit box at a specified position							*/
-/****************************************************************************/
-	int		(*getstrxy)(int left, int top, int width, char *outstr, int max
-							,long mode, int *lastkey);
-
-/****************************************************************************/
-/* Formatted print with attribute											*/
-/****************************************************************************/
-	int		(*printf)(int x, int y, unsigned attr, char *fmat, ...);
-
-} uifcapi_t;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Return value from uifc_api.list() when uifcYesNoOpts is used */
-enum {
-	uifcYes=0,
-	uifcNo=1
-};
-
-UIFCEXPORTVAR char* uifcYesNoOpts[];
-
-/****************************************************************************/
-/* Initialization routines for each UIFC implementation.					*/
-/* Returns 0 on success, non-zero on failure.								*/
-/****************************************************************************/
-int uifcini(uifcapi_t*);	/* Original implementation based on conio		*/
-UIFCEXPORT int uifcinix(uifcapi_t*);	/* Standard I/O implementation		*/
-UIFCEXPORT int uifcini32(uifcapi_t*);	/* modern implementation			*/
-/****************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line! */
diff --git a/uifc/uifc32.c b/uifc/uifc32.c
deleted file mode 100644
index bf2d263..0000000
--- a/uifc/uifc32.c
+++ /dev/null
@@ -1,3077 +0,0 @@
-/* Modern implementation of UIFC (user interface) library based on uifc.c */
-// vi: tabstop=4
-
-/* $Id: uifc32.c,v 1.268 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-	#include <stdio.h>
-	#include <unistd.h>
-	#ifdef __QNX__
-		#include <strings.h>
-	#endif
-    #define mswait(x) delay(x)
-#elif defined(_WIN32)
-	#include <share.h>
-	#include <windows.h>
-	#define mswait(x) Sleep(x)
-#endif
-#include <genwrap.h>	// for alloca()
-#include <datewrap.h>	// localtime_r()
-#include "xpprintf.h"
-
-#include "ciolib.h"
-#include "uifc.h"
-#define MAX_GETSTR	5120
-
-#define BLINK	128
-
-static int   cursor;
-static char* helpfile=0;
-static uint  helpline=0;
-static size_t blk_scrn_len;
-static struct vmem_cell *blk_scrn;
-static struct vmem_cell *tmp_buffer;
-static struct vmem_cell *tmp_buffer2;
-static win_t sav[MAX_BUFS];
-static uifcapi_t* api;
-
-/* Prototypes */
-static int   uprintf(int x, int y, unsigned attr, char *fmt,...);
-static void  bottomline(int line);
-static char  *utimestr(time_t *intime);
-static void  help(void);
-static int   ugetstr(int left, int top, int width, char *outstr, int max, long mode, int *lastkey);
-static void  timedisplay(BOOL force);
-
-/* API routines */
-static void uifcbail(void);
-static int  uscrn(const char *str);
-static int  ulist(int mode, int left, int top, int width, int *dflt, int *bar
-	,const char *title, char **option);
-static int  uinput(int imode, int left, int top, const char *prompt, char *str
-	,int len ,int kmode);
-static int  umsg(const char *str);
-static int  umsgf(char *fmt, ...);
-static BOOL confirm(char *fmt, ...);
-static BOOL deny(char *fmt, ...);
-static void upop(const char *str);
-static void sethelp(int line, char* file);
-static void showbuf(int mode, int left, int top, int width, int height, const char *title
-	, const char *hbuf, int *curp, int *barp);
-
-/* Dynamic menu support */
-static int *last_menu_cur=NULL;
-static int *last_menu_bar=NULL;
-static int save_menu_cur=-1;
-static int save_menu_bar=-1;
-static int save_menu_opts=-1;
-
-char* uifcYesNoOpts[]={"Yes","No",NULL};
-
-static void reset_dynamic(void) {
-	last_menu_cur=NULL;
-	last_menu_bar=NULL;
-	save_menu_cur=-1;
-	save_menu_bar=-1;
-	save_menu_opts=-1;
-}
-
-static uifc_graphics_t cp437_chars = {
-	.background=0xb0,
-	.help_char='?',
-	.close_char=0xfe,
-	.up_arrow=30,
-	.down_arrow=31,
-	.button_left='[',
-	.button_right=']',
-
-	.list_top_left=0xc9,
-	.list_top=0xcd,
-	.list_top_right=0xbb,
-	.list_separator_left=0xcc,
-	.list_separator_right=0xb9,
-	.list_horizontal_separator=0xcd,
-	.list_left=0xba,
-	.list_right=0xba,
-	.list_bottom_left=0xc8,
-	.list_bottom_right=0xbc,
-	.list_bottom=0xcd,
-	.list_scrollbar_separator=0xb3,
-
-	.input_top_left=0xc9,
-	.input_top=0xcd,
-	.input_top_right=0xbb,
-	.input_left=0xba,
-	.input_right=0xba,
-	.input_bottom_left=0xc8,
-	.input_bottom_right=0xbc,
-	.input_bottom=0xcd,
-
-	.popup_top_left=0xda,
-	.popup_top=0xc4,
-	.popup_top_right=0xbf,
-	.popup_left=0xb3,
-	.popup_right=0xb3,
-	.popup_bottom_left=0xc0,
-	.popup_bottom_right=0xd9,
-	.popup_bottom=0xc4,
-
-	.help_top_left=0xda,
-	.help_top=0xc4,
-	.help_top_right=0xbf,
-	.help_left=0xb3,
-	.help_right=0xb3,
-	.help_bottom_left=0xc0,
-	.help_bottom_right=0xd9,
-	.help_bottom=0xc4,
-	.help_titlebreak_left=0xb4,
-	.help_titlebreak_right=0xc3,
-	.help_hitanykey_left=0xb4,
-	.help_hitanykey_right=0xc3,
-};
-
-/****************************************************************************/
-/* Initialization function, see uifc.h for details.							*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-
-void uifc_mouse_enable(void)
-{
-	ciomouse_setevents(0);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_START);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_MOVE);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_END);
-	ciomouse_addevent(CIOLIB_BUTTON_1_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_2_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_3_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_4_PRESS);
-	ciomouse_addevent(CIOLIB_BUTTON_5_PRESS);
-	mousepointer(CIOLIB_MOUSEPTR_BAR);
-	showmouse();
-}
-
-void uifc_mouse_disable(void)
-{
-	ciomouse_setevents(0);
-	hidemouse();
-}
-
-int kbwait(void) {
-	int timeout=0;
-	while(timeout++<50) {
-		if(kbhit())
-			return(TRUE);
-		mswait(1);
-	}
-	return(FALSE);
-}
-
-int inkey(void)
-{
-	int c;
-
-	c=getch();
-	if(!c || c==0xe0)
-		c|=(getch()<<8);
-	return(c);
-}
-
-int uifcini32(uifcapi_t* uifcapi)
-{
-	unsigned	i;
-	struct	text_info txtinfo;
-
-    if(uifcapi==NULL || uifcapi->size!=sizeof(uifcapi_t))
-        return(-1);
-
-    api=uifcapi;
-    if (api->chars == NULL)
-		api->chars = &cp437_chars;
-
-	if (api->yesNoOpts == NULL)
-		api->yesNoOpts = uifcYesNoOpts;
-
-    /* install function handlers */
-    api->bail=uifcbail;
-    api->scrn=uscrn;
-    api->msg=umsg;
-	api->msgf=umsgf;
-	api->confirm=confirm;
-	api->deny=deny;
-    api->pop=upop;
-    api->list=ulist;
-    api->input=uinput;
-    api->sethelp=sethelp;
-    api->showhelp=help;
-	api->showbuf=showbuf;
-	api->timedisplay=timedisplay;
-	api->bottomline=bottomline;
-	api->getstrxy=ugetstr;
-	api->printf=uprintf;
-
-    if(api->scrn_len!=0) {
-        switch(api->scrn_len) {
-            case 14:
-                textmode(C80X14);
-                break;
-            case 21:
-                textmode(C80X21);
-                break;
-            case 25:
-                textmode(C80);
-                break;
-            case 28:
-                textmode(C80X28);
-                break;
-            case 43:
-                textmode(C80X43);
-                break;
-            case 50:
-                textmode(C80X50);
-                break;
-            case 60:
-                textmode(C80X60);
-                break;
-            default:
-                textmode(C4350);
-                break;
-        }
-    }
-
-#if 0
-    clrscr();
-#endif
-
-    gettextinfo(&txtinfo);
-    /* unsupported mode? */
-    if(txtinfo.screenheight<MIN_LINES
-/*        || txtinfo.screenheight>MAX_LINES */
-        || txtinfo.screenwidth<40) {
-        textmode(C80);  /* set mode to 80x25*/
-        gettextinfo(&txtinfo);
-    }
-	window(1,1,txtinfo.screenwidth,txtinfo.screenheight);
-
-    api->scrn_len=txtinfo.screenheight;
-    if(api->scrn_len<MIN_LINES) {
-		uifcbail();
-		printf("\r\nUIFC: Screen length (%u) must be %d lines or greater\r\n"
-            ,api->scrn_len,MIN_LINES);
-        return(-2);
-    }
-    api->scrn_len--; /* account for status line */
-
-    if(txtinfo.screenwidth<40) {
-		uifcbail();
-        printf("\r\nUIFC: Screen width (%u) must be at least 40 characters\r\n"
-            ,txtinfo.screenwidth);
-        return(-3);
-    }
-	api->scrn_width=txtinfo.screenwidth;
-
-    if(!(api->mode&UIFC_COLOR)
-        && (api->mode&UIFC_MONO
-            || txtinfo.currmode==MONO || txtinfo.currmode==BW40 || txtinfo.currmode==BW80
-            || txtinfo.currmode==MONO14 || txtinfo.currmode==BW40X14 || txtinfo.currmode==BW80X14
-            || txtinfo.currmode==MONO21 || txtinfo.currmode==BW40X21 || txtinfo.currmode==BW80X21
-            || txtinfo.currmode==MONO28 || txtinfo.currmode==BW40X28 || txtinfo.currmode==BW80X28
-            || txtinfo.currmode==MONO43 || txtinfo.currmode==BW40X43 || txtinfo.currmode==BW80X43
-            || txtinfo.currmode==MONO50 || txtinfo.currmode==BW40X50 || txtinfo.currmode==BW80X50
-            || txtinfo.currmode==MONO60 || txtinfo.currmode==BW40X60 || txtinfo.currmode==BW80X60
-			|| txtinfo.currmode==ATARI_40X24 || txtinfo.currmode==ATARI_80X25))
-	{
-        api->bclr=BLACK;
-        api->hclr=WHITE;
-        api->lclr=LIGHTGRAY;
-        api->cclr=LIGHTGRAY;
-			api->lbclr=BLACK|(LIGHTGRAY<<4);	/* lightbar color */
-    } else {
-        api->bclr=BLUE;
-        api->hclr=YELLOW;
-        api->lclr=WHITE;
-        api->cclr=CYAN;
-		api->lbclr=BLUE|(LIGHTGRAY<<4);	/* lightbar color */
-    }
-
-	blk_scrn_len=api->scrn_width*api->scrn_len;
-	if((blk_scrn=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-	if((tmp_buffer=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-	if((tmp_buffer2=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-    for(i=0;i<blk_scrn_len;i++) {
-		blk_scrn[i].legacy_attr = api->cclr|(api->bclr<<4);
-		blk_scrn[i].ch = api->chars->background;
-		blk_scrn[i].font = 0;
-		attr2palette(blk_scrn[i].legacy_attr, &blk_scrn[i].fg, &blk_scrn[i].bg);
-	}
-
-    cursor=_NOCURSOR;
-    _setcursortype(cursor);
-
-	if(cio_api.mouse && !(api->mode&UIFC_NOMOUSE)) {
-		api->mode|=UIFC_MOUSE;
-		uifc_mouse_enable();
-	}
-
-	/* A esc_delay of less than 10 is stupid... silently override */
-	if(api->esc_delay < 10)
-		api->esc_delay=25;
-
-	if(cio_api.escdelay)
-		*(cio_api.escdelay)=api->esc_delay;
-
-	for(i=0; i<MAX_BUFS; i++)
-		sav[i].buf=NULL;
-	api->savnum=0;
-
-	api->initialized=TRUE;
-
-    return(0);
-}
-
-void docopy(void)
-{
-	int	key;
-	struct mouse_event mevent;
-	struct ciolib_screen *screen;
-	struct ciolib_screen *sbuffer;
-	int sbufsize;
-	int x,y,startx,starty,endx,endy,lines;
-	int outpos;
-	char *copybuf;
-	uint32_t bg0;
-	uint32_t bg1;
-	uint32_t bg6;
-	uint32_t fg8;
-
-	attr2palette(0x08, &fg8, &bg0);
-	attr2palette(0x10, NULL, &bg1);
-	attr2palette(0x60, NULL, &bg6);
-	screen=ciolib_savescreen();
-	sbuffer=ciolib_savescreen();
-	freepixels(sbuffer->pixels);
-	sbuffer->pixels = NULL;
-	sbufsize=screen->text_info.screenwidth * screen->text_info.screenheight * sizeof(screen->vmem[0]);
-	while(1) {
-		key=getch();
-		if(key==0 || key==0xe0)
-			key|=getch()<<8;
-		switch(key) {
-			case CIO_KEY_MOUSE:
-				getmouse(&mevent);
-				if(mevent.startx<mevent.endx) {
-					startx=mevent.startx;
-					endx=mevent.endx;
-				}
-				else {
-					startx=mevent.endx;
-					endx=mevent.startx;
-				}
-				if(mevent.starty<mevent.endy) {
-					starty=mevent.starty;
-					endy=mevent.endy;
-				}
-				else {
-					starty=mevent.endy;
-					endy=mevent.starty;
-				}
-				switch(mevent.event) {
-					case CIOLIB_BUTTON_1_DRAG_MOVE:
-						memcpy(sbuffer->vmem,screen->vmem,sbufsize);
-						for(y=starty-1;y<endy;y++) {
-							for(x=startx-1;x<endx;x++) {
-								int pos=y*api->scrn_width+x;
-
-								if (sbuffer->vmem[pos].bg != bg1)
-									sbuffer->vmem[pos].bg = bg1;
-								else
-									sbuffer->vmem[pos].bg = bg6;
-								if (sbuffer->vmem[pos].bg == sbuffer->vmem[pos].fg)
-									attr2palette(sbuffer->vmem[pos].legacy_attr | 0x08, &sbuffer->vmem[pos].fg, &sbuffer->vmem[pos].bg);
-								if ((sbuffer->vmem[pos].legacy_attr & 0x70) != 0x10)
-									sbuffer->vmem[pos].legacy_attr = (sbuffer->vmem[pos].legacy_attr & 0x8f) | 0x10;
-								else
-									sbuffer->vmem[pos].legacy_attr = (sbuffer->vmem[pos].legacy_attr & 0x8f) | 0x60;
-								if (((sbuffer->vmem[pos].legacy_attr & 0x70) >> 4) == (sbuffer->vmem[pos].legacy_attr & 0x08))
-									sbuffer->vmem[pos].legacy_attr |= 0x08;
-							}
-						}
-						restorescreen(sbuffer);
-						break;
-					case CIOLIB_BUTTON_1_DRAG_END:
-						lines=abs(mevent.endy-mevent.starty)+1;
-						copybuf=malloc(((endy-starty+1)*(endx-startx+1)+1+lines*2)*4);
-						outpos=0;
-						for(y=starty-1;y<endy;y++) {
-							for(x=startx-1;x<endx;x++) {
-								size_t outlen;
-								uint8_t *utf8str;
-								char ch;
-
-								ch = screen->vmem[(y*api->scrn_width+x)].ch ? screen->vmem[(y*api->scrn_width+x)].ch : ' ';
-								utf8str = cp_to_utf8(conio_fontdata[screen->vmem[(y*api->scrn_width+x)].font].cp, &ch, 1, &outlen);
-								if (utf8str == NULL)
-									continue;
-								memcpy(copybuf + outpos, utf8str, outlen);
-								outpos += outlen;
-							}
-							#ifdef _WIN32
-								copybuf[outpos++]='\r';
-							#endif
-							copybuf[outpos++]='\n';
-						}
-						copybuf[outpos]=0;
-						copytext(copybuf, strlen(copybuf));
-						free(copybuf);
-						restorescreen(screen);
-						freescreen(screen);
-						freescreen(sbuffer);
-						return;
-				}
-				break;
-			default:
-				restorescreen(screen);
-				freescreen(screen);
-				freescreen(sbuffer);
-				ungetch(key);
-				return;
-		}
-	}
-}
-
-static int uifc_getmouse(struct mouse_event *mevent)
-{
-	mevent->startx=0;
-	mevent->starty=0;
-	mevent->event=0;
-	if(api->mode&UIFC_MOUSE) {
-		getmouse(mevent);
-		if(mevent->event==CIOLIB_BUTTON_3_CLICK)
-			return(ESC);
-		if(mevent->event==CIOLIB_BUTTON_1_DRAG_START) {
-			docopy();
-			return(0);
-		}
-		if(mevent->starty==api->buttony) {
-			if(mevent->startx>=api->exitstart
-					&& mevent->startx<=api->exitend
-					&& mevent->event==CIOLIB_BUTTON_1_CLICK) {
-				return(ESC);
-			}
-			if(mevent->startx>=api->helpstart
-					&& mevent->startx<=api->helpend
-					&& mevent->event==CIOLIB_BUTTON_1_CLICK) {
-				return(CIO_KEY_F(1));
-			}
-		}
-		if (mevent->event == CIOLIB_BUTTON_4_PRESS)
-			return(CIO_KEY_UP);
-		if (mevent->event == CIOLIB_BUTTON_5_PRESS)
-			return(CIO_KEY_DOWN);
-		return(0);
-	}
-	return(-1);
-}
-
-void uifcbail(void)
-{
-	int i;
-
-	_setcursortype(_NORMALCURSOR);
-	textattr(LIGHTGRAY);
-	uifc_mouse_disable();
-	suspendciolib();
-	FREE_AND_NULL(blk_scrn);
-	FREE_AND_NULL(tmp_buffer);
-	FREE_AND_NULL(tmp_buffer2);
-	api->initialized=FALSE;
-	for(i=0; i< MAX_BUFS; i++)
-		FREE_AND_NULL(sav[i].buf);
-}
-
-/****************************************************************************/
-/* Clear screen, fill with background attribute, display application title.	*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uscrn(const char *str)
-{
-    textattr(api->bclr|(api->cclr<<4));
-    gotoxy(1,1);
-    clreol();
-    gotoxy(3,1);
-	cputs(str);
-    if(!vmem_puttext(1,2,api->scrn_width,api->scrn_len,blk_scrn))
-        return(-1);
-    gotoxy(1,api->scrn_len+1);
-    clreol();
-	reset_dynamic();
-	setname(str);
-    return(0);
-}
-
-/****************************************************************************/
-/****************************************************************************/
-static void scroll_text(int x1, int y1, int x2, int y2, int down)
-{
-	vmem_gettext(x1,y1,x2,y2,tmp_buffer2);
-	if(down)
-		vmem_puttext(x1,y1+1,x2,y2,tmp_buffer2);
-	else
-		vmem_puttext(x1,y1,x2,y2-1,tmp_buffer2+(((x2-x1)+1)));
-}
-
-/****************************************************************************/
-/* Updates time in upper left corner of screen with current time in ASCII/  */
-/* Unix format																*/
-/****************************************************************************/
-static void timedisplay(BOOL force)
-{
-	static time_t savetime;
-	static int savemin;
-	time_t now;
-	struct tm gm;
-	int old_hold;
-
-	now=time(NULL);
-	localtime_r(&now, &gm);
-	if(force || savemin != gm.tm_min || difftime(now,savetime)>=60) {
-		old_hold=hold_update;
-		hold_update=FALSE;
-		uprintf(api->scrn_width-25,1,api->bclr|(api->cclr<<4),utimestr(&now));
-		hold_update=old_hold;
-		savetime=now;
-		savemin = gm.tm_min;
-	}
-}
-
-/****************************************************************************/
-/* Truncates white-space chars off end of 'str'								*/
-/****************************************************************************/
-static void truncspctrl(char *str)
-{
-	uint c;
-
-	c=strlen(str);
-	while(c && (uchar)str[c-1]<=' ') c--;
-	if(str[c]!=0)	/* don't write to string constants */
-		str[c]=0;
-}
-
-static void
-inactive_win(struct vmem_cell *buf, int left, int top, int right, int bottom, int y, int hbrdrsize, uchar cclr, uchar lclr, uchar hclr, int btop)
-{
-	int width = right - left + 1;
-	int height = bottom - top + 1;
-	int i, j;
-
-	vmem_gettext(left, top, right, bottom, buf);
-	for (i=0; i < (width * height); i++)
-		set_vmem_attr(&buf[i], lclr | (cclr<<4));
-	j=(((y-btop)*width))+3+((width-hbrdrsize-2));
-	for(i=(((y-btop)*width))+3;i<j;i++)
-		set_vmem_attr(&buf[i], hclr|(cclr<<4));
-
-	vmem_puttext(left, top, right, bottom, buf);
-}
-
-/****************************************************************************/
-/* General menu function, see uifc.h for details.							*/
-/****************************************************************************/
-int ulist(int mode, int left, int top, int width, int *cur, int *bar
-	, const char *initial_title, char **option)
-{
-	struct vmem_cell *ptr, *win, shade[MAX_LINES*2], line[MAX_COLS];
-	static char search[MAX_OPLN] = "";
-	int height,y;
-	int i,j,opts=0,s=0; /* s=search index into options */
-	int	is_redraw=0;
-	int s_top=SCRN_TOP;
-	int s_left=SCRN_LEFT;
-	int s_right=SCRN_RIGHT;
-	int s_bottom=api->scrn_len-3;
-	int hbrdrsize=2;
-	int lbrdrwidth=1;
-	int rbrdrwidth=1;
-	int vbrdrsize=4;
-	int tbrdrwidth=3;
-	int bbrdrwidth=1;
-	int title_len;
-	int tmpcur=0;
-	struct mouse_event mevnt;
-	char	*title=NULL;
-	int	a,b,c,longopt;
-	int	optheight=0;
-	int gotkey;
-	uchar	hclr,lclr,bclr,cclr,lbclr;
-
-	if(cur==NULL) cur=&tmpcur;
-	api->exit_flags = 0;
-	hclr=api->hclr;
-	lclr=api->lclr;
-	bclr=api->bclr;
-	cclr=api->cclr;
-	lbclr=api->lbclr;
-	if(mode & WIN_INACT) {
-		bclr=api->cclr;
-		hclr=api->lclr;
-		lclr=api->lclr;
-		cclr=api->cclr;
-		lbclr=(api->cclr<<4)|api->hclr;
-	}
-	title=strdup(initial_title==NULL?"":initial_title);
-
-	if(!(api->mode&UIFC_NHM))
-		uifc_mouse_disable();
-
-	title_len=strlen(title);
-
-	if(mode&WIN_FAT) {
-		s_top=1;
-		s_left=2;
-		s_right=api->scrn_width-3;  /* Leave space for the shadow */
-		s_bottom=api->scrn_len-1;   /* Leave one for the shadow */
-	}
-	if(mode&WIN_NOBRDR) {
-		hbrdrsize=0;
-		vbrdrsize=0;
-		lbrdrwidth=0;
-		rbrdrwidth=0;
-		tbrdrwidth=0;
-		bbrdrwidth=0;
-	}
-	/* Count the options */
-	while (option != NULL && opts < MAX_OPTS) {
-		if (option[opts] == NULL || option[opts][0] == 0)
-			break;
-		else opts++;
-	}
-	if (mode&WIN_XTR && opts<MAX_OPTS)
-		opts++;
-
-	/* Sanity-check the savnum */
-	if(mode&WIN_SAV && api->savnum>=MAX_BUFS-1)
-		putch(7);
-
-	api->help_available = (api->helpbuf!=NULL || api->helpixbfile[0]!=0);
-
-	/* Create the status bar/bottom-line */
-	int bline = mode;
-	if (api->bottomline != NULL) {
-		if ((mode&(WIN_XTR | WIN_PASTEXTR)) == WIN_XTR && (*cur) == opts - 1)
-			api->bottomline(bline & ~WIN_PASTE);
-		else
-			api->bottomline(bline);
-	}
-	optheight=opts+vbrdrsize;
-	height=optheight;
-	if(mode&WIN_FIXEDHEIGHT) {
-		height=api->list_height;
-	}
-	if(top+height>s_bottom)
-		height=(s_bottom)-top;
-	if(optheight>height)
-		optheight=height;
-	if(!width || width<title_len+hbrdrsize+2) {
-		width=title_len+hbrdrsize+2;
-		for(i=0;i<opts;i++) {
-			if(option[i]!=NULL) {
-				truncspctrl(option[i]);
-				if((j=strlen(option[i])+hbrdrsize+2+1)>width)
-					width=j;
-			}
-		}
-	}
-	/* Determine minimum widths here to accommodate mouse "icons" in border */
-	if(!(mode&WIN_NOBRDR) && api->mode&UIFC_MOUSE) {
-		if(api->help_available && width<8)
-			width=8;
-		else if(width<5)
-			width=5;
-	}
-	if(width>(s_right+1)-s_left) {
-		width=(s_right+1)-s_left;
-		if(title_len>(width-hbrdrsize-2)) {
-			*(title+width-hbrdrsize-2-3)='.';
-			*(title+width-hbrdrsize-2-2)='.';
-			*(title+width-hbrdrsize-2-1)='.';
-			*(title+width-hbrdrsize-2)=0;
-			title_len=strlen(title);
-		}
-	}
-	if(mode&WIN_L2R)
-		left=(s_right-s_left-width+1)/2;
-	else if(mode&WIN_RHT)
-		left=s_right-(width+hbrdrsize+2+left);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2-2;
-	else if(mode&WIN_BOT)
-		top=s_bottom-height-top;
-	if(left<0)
-		left=0;
-	if(top<0)
-		top=0;
-
-	/* Dynamic Menus */
-	if(mode&WIN_DYN
-			&& cur != NULL
-			&& bar != NULL
-			&& last_menu_cur==cur
-			&& last_menu_bar==bar
-			&& save_menu_cur==*cur
-			&& save_menu_bar==*bar
-			&& save_menu_opts==opts) {
-		is_redraw=1;
-	}
-
-	if(mode&WIN_DYN && mode&WIN_REDRAW)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_NODRAW)
-		is_redraw=0;
-
-	if(mode&WIN_ORG && !(mode&WIN_SAV)) {		/* Clear all save buffers on WIN_ORG */
-		for(i=0; i< MAX_BUFS; i++)
-			FREE_AND_NULL(sav[i].buf);
-		api->savnum=0;
-	}
-
-	if(mode&WIN_SAV) {
-		/* Check if this screen (by cur/bar) is already saved */
-		for(i=0; i<MAX_BUFS; i++) {
-			if(sav[i].buf!=NULL) {
-				if(cur==sav[i].cur && bar==sav[i].bar) {
-					/* Yes, it is... */
-					for(j=api->savnum-1; j>i; j--) {
-						/* Restore old screens */
-						vmem_puttext(sav[j].left,sav[j].top,sav[j].right,sav[j].bot
-							,(void *)sav[j].buf);	/* put original window back */
-						FREE_AND_NULL(sav[j].buf);
-					}
-					api->savnum=i;
-				}
-			}
-		}
-		/* savnum not the next one - must be a dynamic window or we popped back up the stack */
-		if(sav[api->savnum].buf != NULL) {
-			/* Is this even the right window? */
-			if(sav[api->savnum].cur==cur
-					&& sav[api->savnum].bar==bar) {
-				if((sav[api->savnum].left!=s_left+left
-					|| sav[api->savnum].top!=s_top+top
-					|| sav[api->savnum].right!=s_left+left+width+1
-					|| sav[api->savnum].bot!=s_top+top+height)) { /* dimensions have changed */
-					vmem_puttext(sav[api->savnum].left,sav[api->savnum].top,sav[api->savnum].right,sav[api->savnum].bot
-						,(void *)sav[api->savnum].buf);	/* put original window back */
-					FREE_AND_NULL(sav[api->savnum].buf);
-					if ((sav[api->savnum].buf = malloc((width + 3) * (height + 2) * sizeof(struct vmem_cell)))==NULL) {
-						cprintf("UIFC line %d: error allocating %u bytes."
-							,__LINE__,(width+3)*(height+2)*sizeof(struct vmem_cell));
-						free(title);
-						if(!(api->mode&UIFC_NHM))
-							uifc_mouse_enable();
-						return(-1);
-					}
-					vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-						,s_top+top+height,(void *)sav[api->savnum].buf);	  /* save again */
-					sav[api->savnum].left=s_left+left;
-					sav[api->savnum].top=s_top+top;
-					sav[api->savnum].right=s_left+left+width+1;
-					sav[api->savnum].bot=s_top+top+height;
-					sav[api->savnum].cur=cur;
-					sav[api->savnum].bar=bar;
-				}
-			}
-			else {
-				/* Find something available... */
-				while(sav[api->savnum].buf!=NULL)
-					api->savnum++;
-			}
-		}
-		else {
-			if((sav[api->savnum].buf=malloc((width+3)*(height+2)*sizeof(struct vmem_cell)))==NULL) {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,(width+3)*(height+2)*sizeof(struct vmem_cell));
-				free(title);
-				if(!(api->mode&UIFC_NHM))
-					uifc_mouse_enable();
-				return(-1);
-			}
-			vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-				,s_top+top+height,(void *)sav[api->savnum].buf);
-			sav[api->savnum].left=s_left+left;
-			sav[api->savnum].top=s_top+top;
-			sav[api->savnum].right=s_left+left+width+1;
-			sav[api->savnum].bot=s_top+top+height;
-			sav[api->savnum].cur=cur;
-			sav[api->savnum].bar=bar;
-		}
-	}
-
-	if(!is_redraw) {
-		if(mode&WIN_ORG) { /* Clear around menu */
-			if(top)
-				vmem_puttext(1,2,api->scrn_width,s_top+top-1,blk_scrn);
-			if((unsigned)(s_top+height+top)<=api->scrn_len)
-				vmem_puttext(1,s_top+height+top,api->scrn_width,api->scrn_len,blk_scrn);
-			if(left)
-				vmem_puttext(1,s_top+top,s_left+left-1,s_top+height+top
-					,blk_scrn);
-			if(s_left+left+width<=s_right)
-				vmem_puttext(s_left+left+width,s_top+top,/* s_right+2 */api->scrn_width
-					,s_top+height+top,blk_scrn);
-		}
-		ptr=tmp_buffer;
-		if(!(mode&WIN_NOBRDR)) {
-			set_vmem(ptr++, api->chars->list_top_left, hclr|(bclr<<4), 0);
-
-			if(api->mode&UIFC_MOUSE) {
-				set_vmem(ptr++, api->chars->button_left, hclr|(bclr<<4), 0);
-				/* *(ptr++)='�'; */
-				set_vmem(ptr++, api->chars->close_char, lclr|(bclr<<4), 0);
-				set_vmem(ptr++, api->chars->button_right, hclr|(bclr<<4), 0);
-				i=3;
-				if(api->help_available) {
-					set_vmem(ptr++, api->chars->button_left, hclr|(bclr<<4), 0);
-					set_vmem(ptr++, api->chars->help_char, lclr|(bclr<<4), 0);
-					set_vmem(ptr++, api->chars->button_right, hclr|(bclr<<4), 0);
-					i+=3;
-				}
-				api->buttony=s_top+top;
-				api->exitstart=s_left+left+1;
-				api->exitend=s_left+left+3;
-				api->helpstart=s_left+left+4;
-				api->helpend=s_left+left+6;
-			}
-			else
-				i=0;
-
-			for(;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_top, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_top_right, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_left, hclr|(bclr<<4), 0);
-			a=title_len;
-			b=(width-a-1)/2;
-			for(i=0;i<b;i++) {
-				set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			}
-			for(i=0;i<a;i++)
-				set_vmem(ptr++, title[i], hclr|(bclr<<4), 0);
-			for(i=0;i<width-(a+b)-2;i++)
-				set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_right, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_separator_left, hclr|(bclr<<4), 0);
-			for(i=0;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_horizontal_separator, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_separator_right, hclr|(bclr<<4), 0);
-		}
-
-		if((*cur)>=opts)
-			(*cur)=opts-1;			/* returned after scrolled */
-
-		if(!bar) {
-			if((*cur)>height-vbrdrsize-1)
-				(*cur)=height-vbrdrsize-1;
-			if((*cur)>opts-1)
-				(*cur)=opts-1;
-			i=0;
-		}
-		else {
-			if((*bar)>=opts)
-				(*bar)=opts-1;
-			if((*bar)>height-vbrdrsize-1)
-				(*bar)=height-vbrdrsize-1;
-			if((*cur)==opts-1)
-				(*bar)=height-vbrdrsize-1;
-			if((*bar)>opts-1)
-				(*bar)=opts-1;
-			if((*bar)<0)
-				(*bar)=0;
-			i=(*cur)-(*bar);
-			if (i < 0) {
-				*bar += i;
-				i = 0;
-			}
-			if(i+(height-vbrdrsize-1)>=opts) {
-				(*bar)=(height-vbrdrsize);
-				if (*bar > *cur)
-					*bar = *cur;
-				i=(*cur)-(*bar)+1;
-			}
-		}
-		if((*cur)<0)
-			(*cur)=0;
-
-		j=0;
-		if(i<0) i=0;
-		longopt=0;
-		while(j<height-vbrdrsize) {
-			if(!(mode&WIN_NOBRDR))
-				set_vmem(ptr++, api->chars->list_left, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_scrollbar_separator, lclr|(bclr<<4), 0);
-			if(i==(*cur))
-				a=lbclr;
-			else
-				a=lclr|(bclr<<4);
-			if(i<opts && option[i]!=NULL) {
-				b=strlen(option[i]);
-				if(b>longopt)
-					longopt=b;
-				if(b+hbrdrsize+2>width)
-					b=width-hbrdrsize-2;
-				for(c=0;c<b;c++)
-					set_vmem(ptr++, option[i][c], a, 0);
-			}
-			else
-				c=0;
-			while(c<width-hbrdrsize-2) {
-				set_vmem(ptr++, ' ', a, 0);
-				c++;
-			}
-			if(!(mode&WIN_NOBRDR))
-				set_vmem(ptr++, api->chars->list_right, hclr|(bclr<<4), 0);
-			i++;
-			j++;
-		}
-		if(!(mode&WIN_NOBRDR)) {
-			set_vmem(ptr++, api->chars->list_bottom_left, hclr|(bclr<<4), 0);
-			for(i=0;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_bottom, hclr|(bclr<<4), 0);
-			set_vmem(ptr, api->chars->list_bottom_right, hclr|(bclr<<4), 0);	/* Not incremented to shut up BCC */
-		}
-		vmem_puttext(s_left+left,s_top+top,s_left+left+width-1
-			,s_top+top+height-1,tmp_buffer);
-		if(bar)
-			y=top+tbrdrwidth+(*bar);
-		else
-			y=top+tbrdrwidth+(*cur);
-		if(opts+vbrdrsize>height && ((!bar && (*cur)!=opts-1)
-			|| (bar && ((*cur)-(*bar))+(height-vbrdrsize)<opts))) {
-			gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-			textattr(lclr|(bclr<<4));
-			putch(api->chars->down_arrow);	   /* put down arrow */
-			textattr(hclr|(bclr<<4));
-		}
-
-		if(bar && (*bar)!=(*cur)) {
-			gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-			textattr(lclr|(bclr<<4));
-			putch(api->chars->up_arrow);	   /* put the up arrow */
-			textattr(hclr|(bclr<<4));
-		}
-
-		if(!(mode&WIN_NOBRDR)) {
-			/* Shadow */
-			if(api->bclr==BLUE) {
-				vmem_gettext(s_left+left+width,s_top+top+1,s_left+left+width+1
-					,s_top+top+height-1,shade);
-				for(i=0;i<height*2;i++)
-					set_vmem_attr(&shade[i], DARKGRAY);
-				vmem_puttext(s_left+left+width,s_top+top+1,s_left+left+width+1
-					,s_top+top+height-1,shade);
-				vmem_gettext(s_left+left+2,s_top+top+height,s_left+left+width+1
-					,s_top+top+height,shade);
-				for(i=0;i<width;i++)
-					set_vmem_attr(&shade[i], DARKGRAY);
-				vmem_puttext(s_left+left+2,s_top+top+height,s_left+left+width+1
-					,s_top+top+height,shade);
-			}
-		}
-	}
-	else {	/* Is a redraw */
-		if(bar)
-			y=top+tbrdrwidth+(*bar);
-		else
-			y=top+tbrdrwidth+(*cur);
-		i=(*cur)+(top+tbrdrwidth-y);
-		j=tbrdrwidth-1;
-
-		longopt=0;
-		while(j<height-bbrdrwidth-1) {
-			ptr=tmp_buffer;
-			if(i==(*cur))
-				a=lbclr;
-			else
-				a=lclr|(bclr<<4);
-			if(i<opts && option[i]!=NULL) {
-				b=strlen(option[i]);
-				if(b>longopt)
-					longopt=b;
-				if(b+hbrdrsize+2>width)
-					b=width-hbrdrsize-2;
-				for(c=0;c<b;c++)
-					set_vmem(ptr++, option[i][c], a, 0);
-			}
-			else
-				c=0;
-			while(c<width-hbrdrsize-2) {
-				set_vmem(ptr++, ' ', a, 0);
-				c++;
-			}
-			i++;
-			j++;
-			vmem_puttext(s_left+left+lbrdrwidth+2,s_top+top+j,s_left+left+width-rbrdrwidth-1
-				,s_top+top+j,tmp_buffer);
-		}
-	}
-	free(title);
-
-	last_menu_cur=cur;
-	last_menu_bar=bar;
-	if(!(api->mode&UIFC_NHM))
-		uifc_mouse_enable();
-
-	if(mode&WIN_IMM) {
-		return(-2);
-	}
-
-	if(mode&WIN_ORG) {
-		if(api->timedisplay != NULL)
-			api->timedisplay(/* force? */TRUE);
-	}
-
-	while(1) {
-	#if 0					/* debug */
-		struct text_info txtinfo;
-		gettextinfo(&txtinfo);
-		gotoxy(30,1);
-		cprintf("y=%2d h=%2d c=%2d b=%2d s=%2d o=%2d w=%d/%d h=%d/%d"
-			,y,height,*cur,bar ? *bar :0xff,api->savnum,opts,txtinfo.screenwidth, api->scrn_width, txtinfo.screenheight, api->scrn_len);
-	#endif
-		if(api->timedisplay != NULL)
-			api->timedisplay(/* force? */FALSE);
-		gotkey=0;
-		textattr(((api->lbclr)&0x0f)|((api->lbclr >> 4)&0x0f));
-		gotoxy(s_left+lbrdrwidth+2+left, s_top+y);
-		if((api->exit_flags & UIFC_XF_QUIT) || kbwait() || (mode&(WIN_POP|WIN_SEL))) {
-			if(api->exit_flags & UIFC_XF_QUIT)
-				gotkey = CIO_KEY_QUIT;
-			else if(mode&WIN_POP)
-				gotkey=ESC;
-			else if(mode&WIN_SEL)
-				gotkey=CR;
-			else
-				gotkey=inkey();
-			if(gotkey==CIO_KEY_MOUSE) {
-				if((gotkey=uifc_getmouse(&mevnt))==0) {
-					/* Clicked in menu */
-					if(mevnt.startx>=s_left+left+lbrdrwidth+2
-							&& mevnt.startx<=s_left+left+width-rbrdrwidth-1
-							&& mevnt.starty>=s_top+top+tbrdrwidth
-							&& mevnt.starty<=(s_top+top+optheight)-bbrdrwidth-1
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-
-						(*cur)=((mevnt.starty)-(s_top+top+tbrdrwidth))+(*cur+(top+tbrdrwidth-y));
-						if(bar)
-							(*bar)=(*cur);
-						y=top+tbrdrwidth+((mevnt.starty)-(s_top+top+tbrdrwidth));
-
-						if(!opts)
-							continue;
-
-						if(mode&WIN_SAV)
-							api->savnum++;
-						if(mode&WIN_ACT) {
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_disable();
-							if((win=malloc((width+3)*(height+2)*sizeof(*win)))==NULL) {
-								cprintf("UIFC line %d: error allocating %u bytes."
-									,__LINE__,(width+3)*(height+2)*sizeof(*win));
-								if(!(api->mode&UIFC_NHM))
-									uifc_mouse_enable();
-								return(-1);
-							}
-							inactive_win(win, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							free(win);
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_enable();
-						}
-						else if(mode&WIN_SAV) {
-							api->savnum--;
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_disable();
-							if(sav[api->savnum].buf != NULL)
-								vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-									,sav[api->savnum].right,sav[api->savnum].bot
-									,(void *)sav[api->savnum].buf);
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_enable();
-							FREE_AND_NULL(sav[api->savnum].buf);
-						}
-						if(mode&WIN_XTR && (*cur)==opts-1)
-							return(MSK_INS|*cur);
-						return(*cur);
-					}
-					/* Clicked Scroll Up */
-					else if(mevnt.startx==s_left+left+lbrdrwidth
-							&& mevnt.starty==s_top+top+tbrdrwidth
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						gotkey=CIO_KEY_PPAGE;
-					}
-					/* Clicked Scroll Down */
-					else if(mevnt.startx==s_left+left+lbrdrwidth
-							&& mevnt.starty==(s_top+top+height)-bbrdrwidth-1
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						gotkey=CIO_KEY_NPAGE;
-					}
-					/* Clicked Outside of Window */
-					else if((mevnt.startx<s_left+left
-							|| mevnt.startx>s_left+left+width-1
-							|| mevnt.starty<s_top+top
-							|| mevnt.starty>s_top+top+height-1)
-							&& (mevnt.event==CIOLIB_BUTTON_1_CLICK
-							|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-						if(mode&WIN_UNGETMOUSE) {
-							ungetmouse(&mevnt);
-							gotkey=CIO_KEY_MOUSE;
-						}
-						else {
-							gotkey=ESC;
-						}
-					}
-				}
-			}
-			/* For compatibility with terminals lacking special keys */
-			switch(gotkey) {
-				case '\b':
-					gotkey=ESC;
-					break;
-				case '+':
-					gotkey=CIO_KEY_IC;	/* insert */
-					break;
-				case '-':
-				case DEL:
-					gotkey=CIO_KEY_DC;	/* delete */
-					break;
-				case CTRL_B:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_HOME;
-					break;
-				case CTRL_C:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(5);	/* copy */
-					break;
-				case CTRL_D:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_NPAGE;
-					break;
-				case CTRL_E:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_END;
-					break;
-				case CTRL_U:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_PPAGE;
-					break;
-				case CTRL_V:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(6);	/* paste */
-					break;
-				case CTRL_X:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_SHIFT_DC;	/* cut */
-					break;
-				case CTRL_Z:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(1);	/* help */
-					break;
-				case CIO_KEY_ABORTED:
-					gotkey=ESC;
-					break;
-				case CIO_KEY_QUIT:
-					api->exit_flags |= UIFC_XF_QUIT;
-					gotkey=ESC;
-					break;
-			}
-			if(gotkey>255) {
-				s=0;
-				switch(gotkey) {
-					/* ToDo extended keys */
-					case CIO_KEY_HOME:	/* home */
-						if(!opts)
-							break;
-						if(opts+vbrdrsize>optheight) {
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(' ');    /* Delete the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[0]);
-							for(i=1;i<optheight-vbrdrsize;i++)    /* re-display options */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-									,lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=0;
-							if(bar)
-								(*bar)=0;
-							y=top+tbrdrwidth;
-							break;
-						}
-						vmem_gettext(s_left+left+lbrdrwidth+2,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+left+lbrdrwidth+2,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						(*cur)=0;
-						if(bar)
-							(*bar)=0;
-						y=top+tbrdrwidth;
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lbclr);
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						break;
-					case CIO_KEY_UP:	/* up arrow */
-						if(!opts)
-							break;
-						if(!(*cur) && opts+vbrdrsize>optheight) {
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth); /* like end */
-							textattr(lclr|(bclr<<4));
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(' ');    /* delete the down arrow */
-							for(i=(opts+vbrdrsize)-optheight,j=0;i<opts;i++,j++)
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-									,i==opts-1 ? lbclr
-										: lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=opts-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-							y=top+optheight-bbrdrwidth-1;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						if(!(*cur)) {
-							y=top+optheight-bbrdrwidth-1;
-							(*cur)=opts-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-						}
-						else {
-							(*cur)--;
-							y--;
-							if(bar && *bar)
-								(*bar)--;
-						}
-						if(y<top+tbrdrwidth) {	/* scroll */
-							if(!(*cur)) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(' '); /* delete the up arrow */
-							}
-							if((*cur)+optheight-vbrdrsize==opts-1) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->down_arrow);	/* put the dn arrow */
-							}
-							y++;
-							scroll_text(s_left+left+lbrdrwidth+1,s_top+top+tbrdrwidth
-								,s_left+left+width-rbrdrwidth-1,s_top+top+height-bbrdrwidth-1,1);
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[*cur]);
-						}
-						else {
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0;i<width;i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						}
-						break;
-					case CIO_KEY_PPAGE:	/* PgUp */
-						if(!opts)
-							break;
-						*cur -= (optheight-vbrdrsize-1);
-						if(*cur<0)
-							*cur = 0;
-						if(bar)
-							*bar=0;
-						y=top+tbrdrwidth;
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-						textattr(lclr|(bclr<<4));
-						if(*cur)  /* Scroll mode */
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-						else
-							putch(' ');    /* delete the up arrow */
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-						if(opts >= height-tbrdrwidth && *cur + height - vbrdrsize < opts)
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-						else
-							putch(' ');    /* delete the down arrow */
-						for(i=*cur,j=0;i<=*cur-vbrdrsize-1+optheight;i++,j++)
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-								,i==*cur ? lbclr
-									: lclr|(bclr<<4)
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-						break;
-					case CIO_KEY_NPAGE:	/* PgDn */
-						if(!opts)
-							break;
-						*cur += (height-vbrdrsize-1);
-						if(*cur>opts-1)
-							*cur = opts-1;
-						if(bar)
-							*bar = optheight-vbrdrsize-1;
-						y=top+optheight-bbrdrwidth-1;
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-						textattr(lclr|(bclr<<4));
-						if(*cur>height-vbrdrsize-1)  /* Scroll mode */
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-						else
-							putch(' ');    /* delete the up arrow */
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-						if(*cur < opts-1)
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-						else
-							putch(' ');    /* delete the down arrow */
-						for(i=*cur+vbrdrsize+1-optheight,j=0;i<=*cur;i++,j++)
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-								,i==*cur ? lbclr
-									: lclr|(bclr<<4)
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-						break;
-					case CIO_KEY_END:	/* end */
-						if(!opts)
-							break;
-						if(opts+vbrdrsize>height) {	/* Scroll mode */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(' ');    /* delete the down arrow */
-							for(i=(opts+vbrdrsize)-height,j=0;i<opts;i++,j++)
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-									,i==opts-1 ? lbclr
-										: lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=opts-1;
-							y=top+optheight-bbrdrwidth-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						(*cur)=opts-1;
-						y=top+optheight-bbrdrwidth-1;
-						if(bar)
-							(*bar)=optheight-vbrdrsize-1;
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<74;i++)
-							set_vmem_attr(&line[i], lbclr);
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						break;
-					case CIO_KEY_DOWN:	/* dn arrow */
-						if(!opts)
-							break;
-						if((*cur)==opts-1 && opts+vbrdrsize>height) { /* like home */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(' ');    /* Delete the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[0]);
-							for(i=1;i<height-vbrdrsize;i++)    /* re-display options */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-									,lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=0;
-							y=top+tbrdrwidth;
-							if(bar)
-								(*bar)=0;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0; i < width; i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						if((*cur)==opts-1) {
-							(*cur)=0;
-							y=top+tbrdrwidth;
-							if(bar) {
-								/* gotoxy(1,1); cprintf("bar=%08lX ",bar); */
-								(*bar)=0;
-							}
-						}
-						else {
-							(*cur)++;
-							y++;
-							if(bar && (*bar)<height-vbrdrsize-1) {
-								/* gotoxy(1,1); cprintf("bar=%08lX ",bar); */
-								(*bar)++;
-							}
-						}
-						if(y==top+height-bbrdrwidth) {	/* scroll */
-							if(*cur==opts-1) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								textattr(lclr|(bclr<<4));
-								putch(' ');	/* delete the down arrow */
-							}
-							if((*cur)+vbrdrsize==height) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->up_arrow);	/* put the up arrow */
-							}
-							y--;
-							/* gotoxy(1,1); cprintf("\rdebug: %4d ",__LINE__); */
-							scroll_text(s_left+left+lbrdrwidth+1,s_top+top+tbrdrwidth
-								,s_left+left+width-rbrdrwidth-1,s_top+top+height-bbrdrwidth-1,0);
-							/* gotoxy(1,1); cprintf("\rdebug: %4d ",__LINE__); */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+height-bbrdrwidth-1
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[*cur]);
-						}
-						else {
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y
-								,line);
-							for(i=0; i < width; i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y
-								,line);
-						}
-						break;
-					case CIO_KEY_F(1):	/* F1 - Help */
-					{
-						struct vmem_cell *save = malloc(width*height*sizeof(*save));
-						if(save != NULL) {
-							vmem_gettext(s_left+left,s_top+top,s_left
-								+left+width-1,s_top+top+height-1,save);
-							struct vmem_cell *copy = malloc(width*height*sizeof(*copy));
-							if(copy != NULL) {
-								inactive_win(copy, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-								free(copy);
-							}
-						}
-						api->showhelp();
-						if(save != NULL) {
-							vmem_puttext(s_left+left,s_top+top,s_left
-								+left+width-1,s_top+top+height-1,save);
-							free(save);
-						}
-						break;
-					}
-					case CIO_KEY_F(2):	/* F2 - Edit */
-						if(mode&WIN_XTR && (*cur)==opts-1)	/* can't edit */
-							break;							/* extra line */
-						if(mode&WIN_EDIT) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if(sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return((*cur)|MSK_EDIT);
-						}
-						break;
-					case CIO_KEY_F(5):		/* F5 - Copy */
-					case CIO_KEY_CTRL_IC:	/* Ctrl-Insert */
-						if(mode&WIN_COPY && !(mode&WIN_XTR && (*cur)==opts-1))
-							return((*cur) | MSK_COPY);
-						break;
-					case CIO_KEY_SHIFT_DC:	/* Shift-Del: Cut */
-						if(mode&WIN_CUT && !(mode&WIN_XTR && (*cur) == opts - 1))
-							return((*cur) | MSK_CUT);
-						break;
-					case CIO_KEY_SHIFT_IC:	/* Shift-Insert: Paste */
-					case CIO_KEY_F(6):		/* F6 - Paste */
-						if(mode&WIN_PASTE && (mode&WIN_PASTEXTR || !(mode&WIN_XTR && (*cur)==opts-1)))
-							return((*cur)|MSK_PASTE);
-						break;
-					case CIO_KEY_IC:	/* insert */
-						if(mode&WIN_INS) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_INSACT)
-								inactive_win(tmp_buffer, s_left+left,s_top+top,s_left+left+width-1,s_top+top+height-1,y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if(sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							if(!opts) {
-								return(MSK_INS);
-							}
-							return((*cur)|MSK_INS);
-						}
-						break;
-					case CIO_KEY_DC:	/* delete */
-						if(mode&WIN_XTR && (*cur)==opts-1)	/* can't delete */
-							break;							/* extra line */
-						if(mode&WIN_DEL) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_DELACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return((*cur)|MSK_DEL);
-						}
-						break;
-					default:
-						if(mode&WIN_EXTKEYS)
-							return(-2-gotkey);
-						break;
-				}
-			}
-			else {
-				gotkey&=0xff;
-				if(isalnum(gotkey) && opts>1 && option[0][0]) {
-					search[s]=gotkey;
-					search[s+1]=0;
-					for(j=(*cur)+1,a=b=0;a<2;j++) {   /* a = search count */
-						if(j==opts) {					/* j = option count */
-							j=-1;						/* b = letter count */
-							continue;
-						}
-						if(j==(*cur)) {
-							b++;
-							continue;
-						}
-						if(b>=longopt) {
-							b=0;
-							a++;
-						}
-						if(a==1 && !s)
-							break;
-						if(option[j]!=NULL
-							&& strlen(option[j])>(size_t)b
-							&& ((!a && s && !strnicmp(option[j]+b,search,s+1))
-							|| ((a || !s) && toupper(option[j][b])==toupper(gotkey)))) {
-							if(a) s=0;
-							else s++;
-							if(y+(j-(*cur))+2>height+top) {
-								(*cur)=j;
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->up_arrow);	   /* put the up arrow */
-								if((*cur)==opts-1) {
-									gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-									putch(' ');	/* delete the down arrow */
-								}
-								for(i=((*cur)+vbrdrsize+1)-height,j=0;i<(*cur)+1;i++,j++)
-									uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-										,i==(*cur) ? lbclr
-											: lclr|(bclr<<4)
-										,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-								y=top+height-bbrdrwidth-1;
-								if(bar)
-									(*bar)=optheight-vbrdrsize-1;
-								break;
-							}
-							if(y-((*cur)-j)<top+tbrdrwidth) {
-								(*cur)=j;
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								if(!(*cur))
-									putch(' ');    /* Delete the up arrow */
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								putch(api->chars->down_arrow);	   /* put the down arrow */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-									,lbclr
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[(*cur)]);
-								for(i=1;i<height-vbrdrsize;i++) 	/* re-display options */
-									uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-										,lclr|(bclr<<4)
-										,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2
-										,option[(*cur)+i]);
-								y=top+tbrdrwidth;
-								if(bar)
-									(*bar)=0;
-								break;
-							}
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0; i<width; i++)
-								set_vmem_attr(&line[i], lclr|(bclr<<4));
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							if((*cur)>j)
-								y-=(*cur)-j;
-							else
-								y+=j-(*cur);
-							if(bar) {
-								if((*cur)>j)
-									(*bar)-=(*cur)-j;
-								else
-									(*bar)+=j-(*cur);
-							}
-							(*cur)=j;
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0; i < width; i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							break;
-						}
-					}
-					if(a==2)
-						s=0;
-				}
-				else
-					switch(gotkey) {
-						case CR:
-							if(!opts)
-								break;
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							if(mode&WIN_XTR && (*cur)==opts-1)
-								return(MSK_INS|*cur);
-							return(*cur);
-						case 3:
-						case ESC:
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ESC || (mode&WIN_CHE && api->changes)) {
-								vmem_gettext(s_left+left,s_top+top,s_left
-									+left+width-1,s_top+top+height-1,tmp_buffer);
-								for(i=0; i < (width * height);i++)
-									set_vmem_attr(&tmp_buffer[i], lclr|(cclr<<4));
-								vmem_puttext(s_left+left,s_top+top,s_left
-									+left+width-1,s_top+top+height-1,tmp_buffer);
-							}
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return(-1);
-						case CTRL_F:			/* find */
-						case CTRL_G:
-							if(/*!(api->mode&UIFC_NOCTRL)*/1) { // No no, *this* control key is fine!
-								if (gotkey == CTRL_G || api->input(WIN_MID|WIN_SAV, 0, 0, "Find", search, sizeof(search), K_EDIT|K_FIND) > 0) {
-									for (j = (*cur) + 1; j != *cur; j++, j = (j >= opts) ? 0 : j) {
-										if (option[j] == NULL || j >= opts)
-											continue;
-										if (strcasestr(option[j], search) != NULL) {
-											// Copy/pasted from search above.
-											if(y+(j-(*cur))+2>height+top) {
-												(*cur)=j;
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-												textattr(lclr|(bclr<<4));
-												putch(api->chars->up_arrow);	   /* put the up arrow */
-												if((*cur)==opts-1) {
-													gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-													putch(' ');	/* delete the down arrow */
-												}
-												for(i=((*cur)+vbrdrsize+1)-height,j=0;i<(*cur)+1;i++,j++)
-													uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-														,i==(*cur) ? lbclr
-															: lclr|(bclr<<4)
-														,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-												y=top+height-bbrdrwidth-1;
-												if(bar)
-													(*bar)=optheight-vbrdrsize-1;
-												break;
-											}
-											if(y-((*cur)-j)<top+tbrdrwidth) {
-												(*cur)=j;
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-												textattr(lclr|(bclr<<4));
-												if(!(*cur))
-													putch(' ');    /* Delete the up arrow */
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-												putch(api->chars->down_arrow);	   /* put the down arrow */
-												uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-													,lbclr
-													,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[(*cur)]);
-												for(i=1;i<height-vbrdrsize;i++) 	/* re-display options */
-													uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-														,lclr|(bclr<<4)
-														,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2
-														,option[(*cur)+i]);
-												y=top+tbrdrwidth;
-												if(bar)
-													(*bar)=0;
-												break;
-											}
-											vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											for(i=0; i<width; i++)
-												set_vmem_attr(&line[i], lclr|(bclr<<4));
-											vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											if((*cur)>j)
-												y-=(*cur)-j;
-											else
-												y+=j-(*cur);
-											if(bar) {
-												if((*cur)>j)
-													(*bar)-=(*cur)-j;
-												else
-													(*bar)+=j-(*cur);
-											}
-											(*cur)=j;
-											vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											for(i=0; i < width; i++)
-												set_vmem_attr(&line[i], lbclr);
-											vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											break;
-										}
-									}
-								}
-							}
-							break;
-						default:
-							if(mode&WIN_EXTKEYS)
-								return(-2-gotkey);
-				}
-			}
-			/* Update the status bar to reflect the Put/Paste option applicability */
-			if (bline&WIN_PASTE && api->bottomline != NULL) {
-				if ((mode&(WIN_XTR | WIN_PASTEXTR)) == WIN_XTR && (*cur) == opts - 1)
-					api->bottomline(bline & ~WIN_PASTE);
-				else
-					api->bottomline(bline);
-			}
-		}
-		else
-			mswait(1);
-		if(mode&WIN_DYN) {
-			save_menu_cur=*cur;
-			save_menu_bar=*bar;
-			save_menu_opts=opts;
-			return(-2-gotkey);
-		}
-	}
-}
-
-
-/*************************************************************************/
-/* This function is a windowed input string input routine.               */
-/*************************************************************************/
-int uinput(int mode, int left, int top, const char *inprompt, char *str,
-	int max, int kmode)
-{
-	struct vmem_cell shade[MAX_COLS], save_buf[MAX_COLS*4], in_win[MAX_COLS*3];
-	int	width;
-	int height=3;
-	int i,plen,slen,j;
-	int	iwidth;
-	int l;
-	char *prompt;
-	int s_top=SCRN_TOP;
-	int s_left=SCRN_LEFT;
-	int s_right=SCRN_RIGHT;
-	int s_bottom=api->scrn_len-3;
-	int hbrdrsize=2;
-	int tbrdrwidth=1;
-
-	reset_dynamic();
-
-	if(mode&WIN_FAT) {
-		s_top=1;
-		s_left=2;
-		s_right=api->scrn_width-3;  /* Leave space for the shadow */
-	}
-	if(mode&WIN_NOBRDR) {
-		hbrdrsize=0;
-		tbrdrwidth=0;
-		height=1;
-	}
-
-	prompt=strdup(inprompt==NULL ? "":inprompt);
-	plen=strlen(prompt);
-	if(!plen)
-		slen=2+hbrdrsize;
-	else
-		slen=4+hbrdrsize;
-
-	width=plen+slen+max;
-	if(width>(s_right-s_left+1))
-		width=(s_right-s_left+1);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2-2;
-	else if(mode&WIN_BOT)
-		top=s_bottom-height-top;
-	if(mode&WIN_L2R)
-		left=(s_right-s_left-width+1)/2;
-	if(left<=-(s_left))
-		left=-(s_left)+1;
-	if(top<0)
-		top=0;
-	if(mode&WIN_SAV)
-		vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-			,s_top+top+height,save_buf);
-	if(mode&WIN_ORG) { /* Clear around menu */
-		if(top)
-			vmem_puttext(1,2,api->scrn_width,s_top+top-1,blk_scrn);
-		if((unsigned)(s_top+height+top)<=api->scrn_len)
-			vmem_puttext(1,s_top+height+top,api->scrn_width,api->scrn_len,blk_scrn);
-		if(left)
-			vmem_puttext(1,s_top+top,s_left+left-1,s_top+height+top
-				,blk_scrn);
-		if(s_left+left+width<=s_right)
-			vmem_puttext(s_left+left+width,s_top+top,/* s_right+2 */api->scrn_width
-				,s_top+height+top,blk_scrn);
-	}
-
-	iwidth=width-plen-slen;
-	while(iwidth<1 && plen>4) {
-		plen=strlen(prompt);
-		prompt[plen-1]=0;
-		prompt[plen-2]='.';
-		prompt[plen-3]='.';
-		prompt[plen-4]='.';
-		plen--;
-		iwidth=width-plen-slen;
-	}
-
-	i=0;
-	if(!(mode&WIN_NOBRDR)) {
-		set_vmem(&in_win[i++], api->chars->input_top_left, api->hclr|(api->bclr<<4), 0);
-		for(j=1;j<width-1;j++)
-			set_vmem(&in_win[i++], api->chars->input_top, api->hclr|(api->bclr<<4), 0);
-		if(api->mode&UIFC_MOUSE && width>6) {
-			j=1;
-			set_vmem(&in_win[j++], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-			/* in_win[4]='�'; */
-			set_vmem(&in_win[j++], api->chars->close_char, api->lclr|(api->bclr<<4), 0);
-			set_vmem(&in_win[j++], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-			l=3;
-			if(api->helpbuf!=NULL || api->helpixbfile[0]!=0) {
-				set_vmem(&in_win[j++], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-				set_vmem(&in_win[j++], api->chars->help_char, api->lclr|(api->bclr<<4), 0);
-				set_vmem(&in_win[j++], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-				l+=3;
-			}
-			api->buttony=s_top+top;
-			api->exitstart=s_left+left+1;
-			api->exitend=s_left+left+3;
-			api->helpstart=s_left+left+4;
-			api->helpend=s_left+left+l;
-		}
-
-		set_vmem(&in_win[i++], api->chars->input_top_right, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i++], api->chars->input_right, api->hclr|(api->bclr<<4), 0);
-	}
-
-	if(plen)
-		set_vmem(&in_win[i++], ' ', api->lclr|(api->bclr<<4), 0);
-
-	for(j=0;prompt[j];j++)
-		set_vmem(&in_win[i++], prompt[j], api->lclr|(api->bclr<<4), 0);
-
-	if(plen)
-		set_vmem(&in_win[i++], ':', api->lclr|(api->bclr<<4), 0);
-
-	for(j=0;j<iwidth+2;j++) {
-		set_vmem(&in_win[i++], ' ', api->lclr|(api->bclr<<4), 0);
-	}
-
-	if(!(mode&WIN_NOBRDR)) {
-		set_vmem(&in_win[i++], api->chars->input_right, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i++], api->chars->input_bottom_left, api->hclr|(api->bclr<<4), 0);
-		for(j=1;j<width-1;j++)
-			set_vmem(&in_win[i++], api->chars->input_bottom, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i], api->chars->input_bottom_right, api->hclr|(api->bclr<<4), 0);	/* I is not incremented to shut up BCC */
-	}
-	vmem_puttext(s_left+left,s_top+top,s_left+left+width-1
-		,s_top+top+height-1,in_win);
-
-	if(!(mode&WIN_NOBRDR)) {
-		/* Shadow */
-		if(api->bclr==BLUE) {
-			vmem_gettext(s_left+left+width,s_top+top+1,s_left+left+width+1
-				,s_top+top+(height-1),shade);
-			for(j=0;j<6;j++)
-				set_vmem_attr(&shade[j], DARKGRAY);
-			vmem_puttext(s_left+left+width,s_top+top+1,s_left+left+width+1
-				,s_top+top+(height-1),shade);
-			vmem_gettext(s_left+left+2,s_top+top+3,s_left+left+width+1
-				,s_top+top+height,shade);
-			for(j=0;j<width;j++)
-				set_vmem_attr(&shade[j], DARKGRAY);
-			vmem_puttext(s_left+left+2,s_top+top+3,s_left+left+width+1
-				,s_top+top+height,shade);
-		}
-	}
-
-	if(api->bottomline != NULL)
-		api->bottomline(WIN_COPY|WIN_CUT|WIN_PASTE);
-	textattr(api->lclr|(api->bclr<<4));
-	if(!plen)
-		i=ugetstr(s_left+left+2,s_top+top+tbrdrwidth,iwidth,str,max,kmode,NULL);
-	else
-		i=ugetstr(s_left+left+plen+4,s_top+top+tbrdrwidth,iwidth,str,max,kmode,NULL);
-	if(mode&WIN_SAV)
-		vmem_puttext(s_left+left,s_top+top,s_left+left+width+1
-			,s_top+top+height,save_buf);
-	free(prompt);
-	return(i);
-}
-
-/****************************************************************************/
-/* Displays the message 'str' and waits for the user to select "OK"         */
-/****************************************************************************/
-int  umsg(const char *str)
-{
-	int i=0;
-	char *ok[2]={"OK",""};
-
-	if(api->mode&UIFC_INMSG)	/* non-cursive */
-		return -1;
-	api->mode|=UIFC_INMSG;
-	i = ulist(WIN_SAV|WIN_MID,0,0,0,&i,0,str,ok);
-	api->mode&=~UIFC_INMSG;
-	return i;
-}
-
-/* Same as above, using printf-style varargs */
-int umsgf(char* fmt, ...)
-{
-	int retval = -1;
-	va_list va;
-	char* buf = NULL;
-
-	va_start(va, fmt);
-    vasprintf(&buf, fmt, va);
-    va_end(va);
-	if(buf != NULL) {
-		retval = umsg(buf);
-		free(buf);
-	}
-	return retval;
-}
-
-static int yesno(int dflt, char* fmt, va_list va)
-{
-	int retval;
-	char* buf = NULL;
-
-    vasprintf(&buf, fmt, va);
-	if(buf == NULL)
-		return dflt;
-	retval = ulist(WIN_SAV|WIN_MID,0,0,0,&dflt,0,buf,api->yesNoOpts);
-	free(buf);
-	return retval;
-}
-
-static BOOL confirm(char* fmt, ...)
-{
-	int retval;
-
-	va_list va;
-	va_start(va, fmt);
-	retval = yesno(0, fmt, va);
-	va_end(va);
-	return retval == 0;
-}
-
-static BOOL deny(char* fmt, ...)
-{
-	int retval;
-
-	va_list va;
-	va_start(va, fmt);
-	retval = yesno(1, fmt, va);
-	va_end(va);
-	return retval != 0;
-}
-
-/***************************************/
-/* Private sub - updates a ugetstr box */
-/***************************************/
-void getstrupd(int left, int top, int width, char *outstr, int cursoffset, int *scrnoffset, int mode)
-{
-	_setcursortype(_NOCURSOR);
-	if(cursoffset<*scrnoffset)
-		*scrnoffset=cursoffset;
-
-	if(*scrnoffset+width < cursoffset)
-		*scrnoffset=cursoffset-width;
-
-	gotoxy(left,top);
-	if(mode&K_PASSWORD)
-		// This typecast is to suppress a clang warning "adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]"
-		cprintf("%-*.*s",width,width,((char *)"********************************************************************************")+(80-strlen(outstr+*scrnoffset)));
-	else
-		cprintf("%-*.*s",width,width,outstr+*scrnoffset);
-	gotoxy(left+(cursoffset-*scrnoffset),top);
-	_setcursortype(cursor);
-}
-
-/****************************************************************************/
-/* Gets a string of characters from the user. Turns cursor on. Allows 	    */
-/* Different modes - K_* macros. ESC aborts input.                          */
-/****************************************************************************/
-int ugetstr(int left, int top, int width, char *outstr, int max, long mode, int *lastkey)
-{
-	char   *str;
-	int	ch;
-	int     i,j,k,f=0;	/* i=offset, j=length */
-	BOOL	gotdecimal=FALSE;
-	int	soffset=0;
-	struct mouse_event	mevnt;
-	char	*pastebuf=NULL;
-	unsigned char	*pb=NULL;
-
-	api->exit_flags = 0;
-	if((str=alloca(max+1))==NULL) {
-		cprintf("UIFC line %d: error allocating %u bytes\r\n"
-			,__LINE__,(max+1));
-		_setcursortype(cursor);
-		return(-1);
-	}
-	gotoxy(left,top);
-	_setcursortype(cursor = api->insert_mode ? _SOLIDCURSOR : _NORMALCURSOR);
-	str[0]=0;
-	if(mode&K_EDIT && outstr[0]) {
-	/***
-		truncspctrl(outstr);
-	***/
-		outstr[max]=0;
-		i=j=strlen(outstr);
-		textattr(api->lbclr);
-		getstrupd(left, top, width, outstr, i, &soffset, mode);
-		textattr(api->lclr|(api->bclr<<4));
-		if(strlen(outstr)<(size_t)width) {
-			k=wherex();
-			f=wherey();
-			cprintf("%*s",width-strlen(outstr),"");
-			gotoxy(k,f);
-		}
-		strcpy(str,outstr);
-#if 0
-		while(kbwait()==0) {
-			mswait(1);
-		}
-#endif
-		f=inkey();
-		if(f==CIO_KEY_QUIT) {
-			api->exit_flags |= UIFC_XF_QUIT;
-			return -1;
-		}
-
-		if(f==CIO_KEY_MOUSE) {
-			f=uifc_getmouse(&mevnt);
-			if(f==0 || (f==ESC && mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-				if(mode & K_MOUSEEXIT
-						&& (mevnt.starty != top
-							|| mevnt.startx > left+width
-						    || mevnt.startx < left)
-						&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-					if(lastkey)
-						*lastkey=CIO_KEY_MOUSE;
-					ungetmouse(&mevnt);
-					return(j);
-				}
-				if(mevnt.startx>=left
-						&& mevnt.startx<=left+width
-						&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-					i=mevnt.startx-left+soffset;
-					if(i>j)
-						i=j;
-				}
-				if(mevnt.starty == top
-						&& mevnt.startx>=left
-						&& mevnt.startx<=left+width
-						&& (mevnt.event==CIOLIB_BUTTON_2_CLICK
-						|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-					i=mevnt.startx-left+soffset;
-					if(i>j)
-						i=j;
-					pb=(uint8_t *)getcliptext();
-					if (pb) {
-						pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-						free(pb);
-						pb=(unsigned char *)pastebuf;
-					}
-					else {
-						free(pastebuf);
-						pastebuf = NULL;
-					}
-					f=0;
-				}
-			}
-		}
-
-		if(f == CR
-				|| (f >= 0xff && f != CIO_KEY_DC)
-				|| (f == 3840 && mode&K_TABEXIT)	// Backtab
-				|| (f == '\t' && mode&K_TABEXIT)
-				|| (f == '%' && mode&K_SCANNING)
-				|| f==CTRL_B
-				|| f==CTRL_E
-				|| f==CTRL_Z
-				|| f==CTRL_X	/* Cut */
-				|| f==CTRL_C	/* Copy */
-				|| f==0)
-		{
-			getstrupd(left, top, width, str, i, &soffset, mode);
-		}
-		else
-		{
-			getstrupd(left, top, width, str, i, &soffset, mode);
-			i=j=0;
-		}
-	}
-	else
-		i=j=0;
-
-	ch=0;
-	while(ch!=CR)
-	{
-		if(i>j) j=i;
-		str[j]=0;
-		getstrupd(left, top, width, str, i, &soffset, mode);
-		if(f || pb!=NULL || (ch=inkey())!=0)
-		{
-			if(f) {
-				ch=f;
-				f=0;
-			}
-			else if(pb!=NULL) {
-				ch=*(pb++);
-				if(!*pb) {
-					free(pastebuf);
-					pastebuf=NULL;
-					pb=NULL;
-				}
-			}
-			if(ch==CIO_KEY_MOUSE) {
-				ch=uifc_getmouse(&mevnt);
-				if(ch==0 || (ch==ESC && mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-					if(mode & K_MOUSEEXIT
-							&& (mevnt.starty != top
-								|| mevnt.startx > left+width
-						    	|| mevnt.startx < left)
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						if(lastkey)
-							*lastkey=CIO_KEY_MOUSE;
-						ungetmouse(&mevnt);
-						ch=CR;
-						continue;
-					}
-					if(mevnt.starty == top
-							&& mevnt.startx>=left
-							&& mevnt.startx<=left+width
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						i=mevnt.startx-left+soffset;
-						if(i>j)
-							i=j;
-					}
-					if(mevnt.starty == top
-							&& mevnt.startx>=left
-							&& mevnt.startx<=left+width
-							&& (mevnt.event==CIOLIB_BUTTON_2_CLICK
-							|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-						i=mevnt.startx-left+soffset;
-						if(i>j)
-							i=j;
-						pb=(uint8_t *)getcliptext();
-						if (pb) {
-							pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-							free(pb);
-							pb=(unsigned char *)pastebuf;
-						}
-						else {
-							free(pastebuf);
-							pastebuf = NULL;
-						}
-						ch=0;
-					}
-				}
-			}
-			if(lastkey != NULL)
-				*lastkey=ch;
-			switch(ch)
-			{
-				case CTRL_Z:
-				case CIO_KEY_F(1):	/* F1 Help */
-					api->showhelp();
-					if(api->exit_flags & UIFC_XF_QUIT)
-						f = CIO_KEY_QUIT;
-					continue;
-				case CIO_KEY_LEFT:	/* left arrow */
-					if(i)
-					{
-						i--;
-					}
-					continue;
-				case CIO_KEY_RIGHT:	/* right arrow */
-					if(i<j)
-					{
-						i++;
-					}
-					continue;
-				case CTRL_B:
-				case CIO_KEY_HOME:	/* home */
-					if(i)
-					{
-						i=0;
-					}
-					continue;
-				case CTRL_E:
-				case CIO_KEY_END:	/* end */
-					if(i<j)
-					{
-						i=j;
-					}
-					continue;
-				case CTRL_V:
-				case CIO_KEY_SHIFT_IC:	/* Shift-Insert: Paste */
-					pb=(uint8_t *)getcliptext();
-					if (pb) {
-						pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-						free(pb);
-						pb=(unsigned char *)pastebuf;
-					}
-					else {
-						free(pastebuf);
-						pastebuf = NULL;
-					}
-					continue;
-				case CIO_KEY_IC:	/* insert */
-					api->insert_mode = !api->insert_mode;
-					_setcursortype(cursor = api->insert_mode ? _SOLIDCURSOR : _NORMALCURSOR);
-					continue;
-				case BS:
-					if(i)
-					{
-						if(i==j)
-						{
-							j--;
-							i--;
-						}
-						else {
-							i--;
-							j--;
-							if(str[i]=='.')
-								gotdecimal=FALSE;
-							for(k=i;k<=j;k++)
-								str[k]=str[k+1];
-						}
-						if (soffset > 0)
-							soffset--;
-						continue;
-					}
-					break;
-				case CIO_KEY_DC:	/* delete */
-				case DEL:			/* sdl_getch() is returning 127 when keypad "Del" is hit */
-					if(i<j)
-					{
-						if(str[i]=='.')
-							gotdecimal=FALSE;
-						for(k=i;k<j;k++)
-							str[k]=str[k+1];
-						j--;
-					}
-					continue;
-				case CIO_KEY_QUIT:
-					api->exit_flags |= UIFC_XF_QUIT;
-					/* Fall-through */
-				case CIO_KEY_ABORTED:
-				case ESC:
-					{
-						cursor=_NOCURSOR;
-						_setcursortype(cursor);
-						if(pastebuf!=NULL) {
-							free(pastebuf);
-							pastebuf = NULL;
-						}
-						return(-1);
-					}
-				case CR:
-					break;
-				case 3840:	/* Backtab */
-				case '\t':
-					if(mode&K_TABEXIT)
-						ch=CR;
-					break;
-				case '%':	/* '%' indicates that a UPC is coming next */
-					if(mode&K_SCANNING)
-						ch=CR;
-					break;
-				case CIO_KEY_F(2):
-				case CIO_KEY_UP:
-				case CIO_KEY_DOWN:
-					if(mode&K_DEUCEEXIT) {
-						ch=CR;
-						break;
-					}
-					continue;
-				case CTRL_C:
-				case CIO_KEY_CTRL_IC:	/* Ctrl-Insert */
-				{
-					size_t sz;
-					uint8_t *utf8 = cp_to_utf8(CIOLIB_CP437, str, j, &sz);
-					copytext((char *)utf8, sz);
-					free(utf8);
-					continue;
-				}
-				case CTRL_X:
-				case CIO_KEY_SHIFT_DC:
-					if(j)
-					{
-						size_t sz;
-						uint8_t *utf8 = cp_to_utf8(CIOLIB_CP437, str, j, &sz);
-						copytext((char *)utf8, sz);
-						free(utf8);
-						i=j=0;
-					}
-					continue;
-				case CTRL_Y:
-					if(i<j)
-					{
-						j=i;
-					}
-					continue;
-			}
-			if(mode&K_NUMBER && !isdigit(ch))
-				continue;
-			if(mode&K_DECIMAL && !isdigit(ch)) {
-				if(ch!='.')
-					continue;
-				if(gotdecimal)
-					continue;
-				gotdecimal=TRUE;
-			}
-			if(mode&K_ALPHA && !isalpha(ch))
-				continue;
-			if((ch>=' ' || (ch==1 && mode&K_MSG)) && i<max && (!api->insert_mode || j<max) && ch < 256)
-			{
-				if(mode&K_UPPER)
-					ch=toupper(ch);
-				if(api->insert_mode)
-				{
-					for(k=++j;k>i;k--)
-						str[k]=str[k-1];
-				}
-				str[i++]=ch;
-			}
-		}
-	}
-
-
-	str[j]=0;
-	if(mode&K_EDIT)
-	{
-		truncspctrl(str);
-		if(!(mode&K_FIND) && strcmp(outstr,str))
-			api->changes=1;
-	}
-	else
-	{
-		if(!(mode&K_FIND) && j)
-			api->changes=1;
-	}
-	strcpy(outstr,str);
-	cursor=_NOCURSOR;
-	_setcursortype(cursor);
-	if(pastebuf!=NULL)
-		free(pastebuf);
-	return(j);
-}
-
-/****************************************************************************/
-/* Performs printf() through puttext() routine								*/
-/****************************************************************************/
-static int uprintf(int x, int y, unsigned attr, char *fmat, ...)
-{
-	va_list argptr;
-	char str[MAX_COLS+1];
-	struct vmem_cell buf[MAX_COLS];
-	int i;
-
-    va_start(argptr,fmat);
-    vsprintf(str,fmat,argptr);
-    va_end(argptr);
-    for(i = 0; str[i]; i++)
-	set_vmem(&buf[i], str[i], attr, 0);
-    vmem_puttext(x,y,x+(i-1),y,buf);
-    return(i);
-}
-
-
-/****************************************************************************/
-/* Display bottom line of screen in inverse                                 */
-/****************************************************************************/
-void bottomline(int mode)
-{
-	int i=1;
-
-	i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"    ");
-	if(api->help_available) {
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F1 ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Help  ");
-	}
-	if(mode&WIN_EDIT) {
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F2 ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Edit Item  ");
-	}
-	if(mode&WIN_COPY) {
-		if(api->mode&UIFC_NOCTRL) {
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F5 ");
-			i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Copy  ");
-		} else {
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^C");
-			i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"opy  ");
-		}
-	}
-	if(mode&WIN_CUT) {
-		if(api->mode&UIFC_NOCTRL)
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"Shift-DEL ");
-		else
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^X ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Cut  ");
-	}
-	if(mode&WIN_PASTE) {
-		if(api->mode&UIFC_NOCTRL)
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F6 ");
-		else
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^V ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Paste  ");
-	}
-	if(mode&WIN_INS) {
-#ifdef __DARWIN__
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"+/");
-#endif
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"INS");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"ert Item  ");
-	}
-	if(mode&WIN_DEL) {
-#ifdef __DARWIN__
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"fn-");
-#endif
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"DEL");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"ete Item  ");
-	}
-	i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"ESC ");	/* Backspace is no good no way to abort editing */
-	i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Exit");
-	gotoxy(i,api->scrn_len+1);
-	if (wherex() == i && wherey() == api->scrn_len+1) {
-		textattr(BLACK|(api->cclr<<4));
-		clreol();
-	}
-}
-
-/*****************************************************************************/
-/* Generates a 24 character ASCII string that represents the time_t pointer  */
-/* Used as a replacement for ctime()                                         */
-/*****************************************************************************/
-char *utimestr(time_t *intime)
-{
-	static char str[25];
-	const char* wday="";
-	const char* mon="";
-	const char* mer= "";
-	int hour;
-	struct tm *gm;
-
-	gm=localtime(intime);
-	switch(gm->tm_wday) {
-		case 0:
-			wday = "Sun";
-			break;
-		case 1:
-			wday = "Mon";
-			break;
-		case 2:
-			wday = "Tue";
-			break;
-		case 3:
-			wday = "Wed";
-			break;
-		case 4:
-			wday = "Thu";
-			break;
-		case 5:
-			wday = "Fri";
-			break;
-		case 6:
-			wday = "Sat";
-			break;
-	}
-	switch(gm->tm_mon) {
-		case 0:
-			mon = "Jan";
-			break;
-		case 1:
-			mon = "Feb";
-			break;
-		case 2:
-			mon = "Mar";
-			break;
-		case 3:
-			mon = "Apr";
-			break;
-		case 4:
-			mon = "May";
-			break;
-		case 5:
-			mon = "Jun";
-			break;
-		case 6:
-			mon = "Jul";
-			break;
-		case 7:
-			mon = "Aug";
-			break;
-		case 8:
-			mon = "Sep";
-			break;
-		case 9:
-			mon = "Oct";
-			break;
-		case 10:
-			mon = "Nov";
-			break;
-		case 11:
-			mon = "Dec";
-			break;
-	}
-	if(gm->tm_hour>=12) {
-		mer = "pm";
-		hour=gm->tm_hour;
-		if (hour > 12)
-			hour-=12;
-	}
-	else {
-		if(!gm->tm_hour)
-			hour=12;
-		else
-			hour=gm->tm_hour;
-		mer = "am";
-	}
-	safe_snprintf(str, sizeof(str), "%s %s %02d %4d %02d:%02d %s",wday,mon,gm->tm_mday,1900+gm->tm_year
-		,hour,gm->tm_min,mer);
-	return(str);
-}
-
-/****************************************************************************/
-/* Status popup/down function, see uifc.h for details.						*/
-/****************************************************************************/
-void upop(const char *str)
-{
-	static struct vmem_cell sav[80*3], buf[80*3];
-	int i,j,k;
-	static int width;
-
-	if(str == NULL) {
-		vmem_puttext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,sav);
-		return;
-	}
-
-	width = strlen(str);
-	if(!width)
-		return;
-	width += 7;
-	vmem_gettext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,sav);
-	for(i=0; i < width*3; i++)
-		set_vmem(&buf[i], ' ', api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[0], api->chars->popup_top_left, api->hclr|(api->bclr<<4), 0);
-	for(i=1;i<(width-1);i++)
-		set_vmem(&buf[i], api->chars->popup_top, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_top_right, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_left, api->hclr|(api->bclr<<4), 0);
-	k=strlen(str);
-	i+=((((width-3)-k)/2));
-	for(j=0;j<k;j++,i++)
-		set_vmem(&buf[i], str[j], api->hclr|(api->bclr<<4)|BLINK, 0);
-	i=(((width-1)*2)+1);
-	set_vmem(&buf[i++], api->chars->popup_right, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_bottom_left, api->hclr|(api->bclr<<4), 0);
-	for(;i<((width*3)-1);i++)
-		set_vmem(&buf[i], api->chars->popup_bottom, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i], api->chars->popup_bottom_right, api->hclr|(api->bclr<<4), 0);
-
-	vmem_puttext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,buf);
-}
-
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-void sethelp(int line, char* file)
-{
-    helpline=line;
-    helpfile=file;
-}
-
-/****************************************************************************/
-/* Shows a scrollable text buffer - optionally parsing "help markup codes"	*/
-/****************************************************************************/
-void showbuf(int mode, int left, int top, int width, int height, const char *title, const char *hbuf, int *curp, int *barp)
-{
-	char inverse=0,high=0;
-	struct vmem_cell *textbuf;
-	struct vmem_cell *p;
-	const char *pc;
-	struct vmem_cell *oldp=NULL;
-	int i,j,k,len;
-	int	 lines;
-	int pad=1;
-	int	is_redraw=0;
-	uint title_len=0;
-	struct mouse_event	mevnt;
-
-	api->exit_flags = 0;
-	_setcursortype(_NOCURSOR);
-
-	title_len=strlen(title);
-	if(api->mode&UIFC_MOUSE)
-		title_len+=6;
-
-	if((unsigned)(top+height)>=api->scrn_len)
-		height = api->scrn_len - top;
-	if(!width || (unsigned)width<title_len+6)
-		width=title_len+6;
-	if((unsigned)(width + left) > api->scrn_width)
-		width = api->scrn_width - left + 1;
-	if(mode&WIN_L2R)
-		left=(api->scrn_width-width+2)/2;
-	else if(mode&WIN_RHT)
-		left=SCRN_RIGHT-(width+4+left);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2;
-	else if(mode&WIN_BOT)
-		top=api->scrn_len-height-3-top;
-	if(left<0)
-		left=0;
-	if(top<0)
-		top=0;
-
-	if(mode&WIN_PACK)
-		pad=0;
-
-	/* Dynamic Menus */
-	if(mode&WIN_DYN
-	    && curp != NULL
-	    && barp != NULL
-	    && last_menu_cur==curp
-	    && last_menu_bar==barp
-	    && save_menu_cur==*curp
-	    && save_menu_bar==*barp)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_REDRAW)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_NODRAW)
-		is_redraw=0;
-
-	vmem_gettext(1,1,api->scrn_width,api->scrn_len,tmp_buffer);
-
-	if(!is_redraw) {
-		for(i=0; i<width*height; i++)
-			set_vmem(&tmp_buffer2[i], ' ', api->hclr|(api->bclr<<4), 0);
-		tmp_buffer2[0].ch=api->chars->help_top_left;
-		j=title_len;
-		if(j>width-6) {
-			j=width-6;
-			title_len = j;
-		}
-		for(i=1;i<(width-j)/2;i++)
-   		      tmp_buffer2[i].ch=api->chars->help_top;
-		if((api->mode&UIFC_MOUSE) && (!(mode&WIN_DYN))) {
-			set_vmem(&tmp_buffer2[1], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-			/* tmp_buffer2[4]='�'; */
-			set_vmem(&tmp_buffer2[2], api->chars->close_char, api->lclr|(api->bclr<<4), 0);
-			set_vmem(&tmp_buffer2[3], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-			/* Buttons are ignored - leave it this way to not confuse stuff from help() */
-		}
-		tmp_buffer2[i].ch = api->chars->help_titlebreak_left;
-		i+=2;
-		for(j=0,pc=title;j<title_len&&*pc;j++,pc++) {
-			tmp_buffer2[i].ch=*pc;
-			i++;
-		}
-		i++;
-   		tmp_buffer2[i].ch=api->chars->help_titlebreak_right;
-   		i++;
-		for(;i<((width-1));i++)
-   		    tmp_buffer2[i].ch=api->chars->help_top;
-		tmp_buffer2[i].ch=api->chars->help_top_right;
-		i++;
-		j=i;	/* leave i alone */
-		for(k=0;k<(height-2);k++) { 		/* the sides of the box */
-	        tmp_buffer2[j].ch=api->chars->help_left;
-	        j++;
-			j+=((width-2));
-        	tmp_buffer2[j].ch=api->chars->help_right;
-        	j++;
-		}
-		tmp_buffer2[j].ch = api->chars->help_bottom_left;
-		j++;
-		if(!(mode&WIN_DYN) && (width>31)) {
-			for(k=j;k<j+(((width-4)/2-13));k++)
-				tmp_buffer2[k].ch=api->chars->help_bottom;
-			tmp_buffer2[k].ch = api->chars->help_hitanykey_left; k+=2;
-			tmp_buffer2[k].ch='H'; k++;
-			tmp_buffer2[k].ch='i'; k++;
-			tmp_buffer2[k].ch='t'; k+=2;
-			tmp_buffer2[k].ch='a'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='y'; k+=2;
-			tmp_buffer2[k].ch='k'; k++;
-			tmp_buffer2[k].ch='e'; k++;
-			tmp_buffer2[k].ch='y'; k+=2;
-			tmp_buffer2[k].ch='t'; k++;
-			tmp_buffer2[k].ch='o'; k+=2;
-			tmp_buffer2[k].ch='c'; k++;
-			tmp_buffer2[k].ch='o'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='t'; k++;
-			tmp_buffer2[k].ch='i'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='u'; k++;
-			tmp_buffer2[k].ch='e'; k+=2;
-			tmp_buffer2[k].ch=api->chars->help_hitanykey_right; k++;
-			for(j=k;j<k+(((width-4)/2-12))+(width&1);j++)
-				tmp_buffer2[j].ch=api->chars->help_bottom;
-		}
-		else {
-			for(k=j;k<j+((width-2));k++)
-				tmp_buffer2[k].ch=api->chars->help_bottom;
-			j=k;
-		}
-		tmp_buffer2[j].ch=api->chars->help_bottom_right;
-		if(!(mode&WIN_DYN)) {
-			tmp_buffer2[j-1].ch=api->chars->button_right;
-			tmp_buffer2[j-2].ch=' ';
-			tmp_buffer2[j-3].ch=' ';
-			tmp_buffer2[j-4].ch=api->chars->button_left;
-#define SCROLL_UP_BUTTON_X	left + (width - 4)
-#define SCROLL_UP_BUTTON_Y	top + height
-#define SCROLL_DN_BUTTON_X	left + (width - 3)
-#define SCROLL_DN_BUTTON_Y	top + height
-		}
-		vmem_puttext(left,top+1,left+width-1,top+height,tmp_buffer2);
-	}
-	len=strlen(hbuf);
-
-	lines=0;
-	k=0;
-	for(j=0;j<len;j++) {
-		if(mode&WIN_HLP && (hbuf[j]==2 || hbuf[j]=='~' || hbuf[j]==1 || hbuf[j]=='`'))
-			continue;
-		if(hbuf[j]==CR)
-			continue;
-		k++;
-		if((hbuf[j]==LF) || (k>=width-2-pad-pad && (hbuf[j+1]!='\n' && hbuf[j+1]!='\r'))) {
-			k=0;
-			lines++;
-		}
-	}
-	if(k)
-		lines++;
-	if(lines < height-2-pad-pad)
-		lines=height-2-pad-pad;
-
-	if((textbuf=(struct vmem_cell *)malloc((width-2-pad-pad)*lines*sizeof(*textbuf)))==NULL) {
-		cprintf("UIFC line %d: error allocating %u bytes\r\n"
-			,__LINE__,(width-2-pad-pad)*lines*sizeof(*textbuf));
-		_setcursortype(cursor);
-		return;
-	}
-	for(i=0; i < (width - 2 - pad - pad) * lines;i++)
-		set_vmem(&textbuf[i], ' ', (api->hclr|(api->bclr<<4)), 0);
-	for(j=i=0; j < len; j++, i++) {
-		if(hbuf[j]==LF) {
-			i++;
-			while(i%((width-2-pad-pad)))
-				i++;
-			i--;
-		}
-		else if(mode&WIN_HLP && (hbuf[j]==2 || hbuf[j]=='~')) {		 /* Ctrl-b toggles inverse */
-			inverse=!inverse;
-			i--;
-		}
-		else if(mode&WIN_HLP && (hbuf[j]==1 || hbuf[j]=='`')) {		 /* Ctrl-a toggles high intensity */
-			high=!high;
-			i--;
-		}
-		else if(hbuf[j]!=CR) {
-			set_vmem(&textbuf[i], hbuf[j], inverse ? (api->bclr|(api->cclr<<4)) : high ? (api->hclr|(api->bclr<<4)) : (api->lclr|(api->bclr<<4)), 0);
-			if(((i+1)%((width-2-pad-pad))==0 && (hbuf[j+1]==LF)) || (hbuf[j+1]==CR && hbuf[j+2]==LF))
-				i--;
-		}
-		else
-			i--;
-	}
-	i=0;
-	p=textbuf;
-	struct vmem_cell * textend = textbuf + (lines-(height-2-pad-pad))*(width-2-pad-pad);
-	if(mode&WIN_DYN) {
-		vmem_puttext(left+1+pad,top+2+pad,left+width-2-pad,top+height-1-pad,p);
-	}
-	else {
-		while(i==0) {
-			if(p!=oldp) {
-				if(p > textend)
-					p=textend;
-				if(p<textbuf)
-					p=textbuf;
-				if(p!=oldp) {
-					vmem_puttext(left+1+pad,top+2+pad,left+width-2-pad,top+height-1-pad,p);
-					oldp=p;
-				}
-				gotoxy(SCROLL_UP_BUTTON_X, SCROLL_UP_BUTTON_Y);
-				textattr(api->lclr|(api->bclr<<4));
-				putch(p > textbuf ? api->chars->up_arrow : ' ');
-				putch(p < textend ? api->chars->down_arrow : ' ');
-			}
-			if(kbwait()) {
-				j=inkey();
-				if(j==CIO_KEY_MOUSE) {
-					/* Ignores return value to avoid hitting help/exit hotspots */
-					if(uifc_getmouse(&mevnt)>=0) {
-						/* Clicked Scroll Up */
-						if(mevnt.startx>=left+pad
-								&& mevnt.startx<=left+pad+width-3
-								&& mevnt.starty>=top+pad+1
-								&& mevnt.starty<=top+pad+(height/2)-2
-								&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p -= ((width-2-pad-pad)*(height-5));
-							continue;
-						}
-						if(mevnt.startx == SCROLL_UP_BUTTON_X && mevnt.starty == SCROLL_UP_BUTTON_Y
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p -= ((width-2-pad-pad));
-							continue;
-						}
-						/* Clicked Scroll Down */
-						if(mevnt.startx>=left+pad
-								&& mevnt.startx<=left+pad+width
-								&& mevnt.starty<=top+pad+height-2
-								&& mevnt.starty>=top+pad+height-(height/2+1)-2
-								&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p += (width-2-pad-pad)*(height-5);
-							continue;
-						}
-						if(mevnt.startx == SCROLL_DN_BUTTON_X && mevnt.starty == SCROLL_DN_BUTTON_Y
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p += ((width-2-pad-pad));
-							continue;
-						}
-						/* Scroll up */
-						if (mevnt.event == CIOLIB_BUTTON_4_PRESS) {
-							p = p-((width-2-pad-pad));
-							continue;
-						}
-						/* Scroll down */
-						if (mevnt.event == CIOLIB_BUTTON_5_PRESS) {
-							p += ((width-2-pad-pad));
-							continue;
-						}
-						/* Non-click events (drag, move, multiclick, etc) */
-						if(mevnt.event!=CIOLIB_BUTTON_CLICK(CIOLIB_BUTTON_NUMBER(mevnt.event)))
-							continue;
-						i=1;
-					}
-					continue;
-				}
-				switch(j) {
-					case CIO_KEY_HOME:	/* home */
-						p = textbuf;
-						break;
-
-					case CIO_KEY_UP:	/* up arrow */
-						p = p-((width-2-pad-pad));
-						break;
-
-					case CIO_KEY_PPAGE:	/* PgUp */
-						p = p-((width-2-pad-pad)*(height-5));
-						break;
-
-					case CIO_KEY_NPAGE:	/* PgDn */
-						p += (width-2-pad-pad)*(height-5);
-						break;
-
-					case CIO_KEY_END:	/* end */
-						p = textend;
-						break;
-
-					case CIO_KEY_DOWN:	/* dn arrow */
-						p += ((width-2-pad-pad));
-						break;
-
-					case CIO_KEY_QUIT:
-						api->exit_flags |= UIFC_XF_QUIT;
-						// Fall-through
-					default:
-						i=1;
-				}
-			}
-			mswait(1);
-		}
-
-		vmem_puttext(1,1,api->scrn_width,api->scrn_len,tmp_buffer);
-	}
-	free(textbuf);
-	if(is_redraw)			/* Force redraw of menu also. */
-		reset_dynamic();
-	_setcursortype(cursor);
-}
-
-/************************************************************/
-/* Help (F1) key function. Uses helpbuf as the help input.	*/
-/************************************************************/
-static void help(void)
-{
-	char hbuf[HELPBUF_SIZE],str[256];
-    char *p;
-	unsigned short line;	/* This must be 16-bits */
-	long l;
-	FILE *fp;
-
-	api->exit_flags = 0;
-	if(api->helpbuf==NULL && api->helpixbfile[0]==0)
-		return;
-
-	_setcursortype(_NOCURSOR);
-
-    if(!api->helpbuf) {
-        if((fp=fopen(api->helpixbfile,"rb"))==NULL)
-            SAFEPRINTF(hbuf,"ERROR: Cannot open help index: %s"
-                ,api->helpixbfile);
-        else {
-            p=strrchr(helpfile,'/');
-            if(p==NULL)
-                p=strrchr(helpfile,'\\');
-            if(p==NULL)
-                p=helpfile;
-            else
-                p++;
-            l=-1L;
-            while(!feof(fp)) {
-                if(fread(str,12,1,fp)!=1)
-                    break;
-                str[12]=0;
-                if(fread(&line,2,1,fp)!=1)
-					break;
-                if(stricmp(str,p) || line!=helpline) {
-                    if(fseek(fp,4,SEEK_CUR)==0)
-						break;
-                    continue;
-                }
-                if(fread(&l,4,1,fp)!=1)
-					l=-1L;
-                break;
-            }
-            fclose(fp);
-            if(l==-1L)
-                SAFEPRINTF3(hbuf,"ERROR: Cannot locate help key (%s:%u) in: %s"
-                    ,p,helpline,api->helpixbfile);
-            else {
-                if((fp=fopen(api->helpdatfile,"rb"))==NULL)
-                    SAFEPRINTF(hbuf,"ERROR: Cannot open help file: %s"
-                        ,api->helpdatfile);
-                else {
-                    if(fseek(fp,l,SEEK_SET)!=0) {
-						SAFEPRINTF4(hbuf,"ERROR: Cannot seek to help key (%s:%u) at %ld in: %s"
-							,p,helpline,l,api->helpixbfile);
-					}
-					else {
-						if(fread(hbuf,1,HELPBUF_SIZE,fp)<1) {
-							SAFEPRINTF4(hbuf,"ERROR: Cannot read help key (%s:%u) at %ld in: %s"
-								,p,helpline,l,api->helpixbfile);
-						}
-					}
-					fclose(fp);
-				}
-			}
-		}
-		showbuf(WIN_MID|WIN_HLP, 0, 0, 76, api->scrn_len, "Online Help", hbuf, NULL, NULL);
-	}
-    else {
-		showbuf(WIN_MID|WIN_HLP, 0, 0, 76, api->scrn_len, "Online Help", api->helpbuf, NULL, NULL);
-	}
-}
diff --git a/uifc/uifctest.c b/uifc/uifctest.c
deleted file mode 100644
index 490ad39..0000000
--- a/uifc/uifctest.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* uedit.c */
-
-/* Synchronet for *nix user editor */
-
-/* $Id: uifctest.c,v 1.9 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <signal.h>
-#include <stdio.h>
-/* #include "curs_fix.h" */
-#include "filepick.h"
-#include "uifc.h"
-
-/********************/
-/* Global Variables */
-/********************/
-uifcapi_t uifc; /* User Interface (UIFC) Library API */
-char YesStr[]="Yes";
-char NoStr[]="No";
-char *ok[2]={"OK",""};
-
-int main(int argc, char** argv)  {
-	char**	opt;
-	char**	mopt;
-	int		main_dflt=0;
-	int		main_bar=0;
-	char	revision[16];
-	char	str[256],ctrl_dir[41],*p;
-	char	title[256];
-	int		i,j;
-	int		done;
-	int		last;
-	int		edtuser=0;
-	char	longtitle[1024];
-	struct file_pick fper;
-	/******************/
-	/* Ini file stuff */
-	/******************/
-	char	ini_file[MAX_PATH+1];
-	FILE*				fp;
-
-	sscanf("$Revision: 1.9 $", "%*s %s", revision);
-
-    printf("\nSynchronet UIFC Test Suite Copyright "
-        "Rob Swindell\n");
-
-    memset(&uifc,0,sizeof(uifc));
-
-	uifc.esc_delay=500;
-
-	for(i=1;i<argc;i++) {
-        if(argv[i][0]=='-')
-            switch(toupper(argv[i][1])) {
-                case 'C':
-        			uifc.mode|=UIFC_COLOR;
-                    break;
-                case 'L':
-                    uifc.scrn_len=atoi(argv[i]+2);
-                    break;
-                case 'E':
-                    uifc.esc_delay=atoi(argv[i]+2);
-                    break;
-				case 'I':
-					/* Set up ex-ascii codes */
-					uifc.mode|=UIFC_IBM;
-					break;
-                default:
-                    printf("\nusage: %s [ctrl_dir] [options]"
-                        "\n\noptions:\n\n"
-                        "-c  =  force color mode\n"
-                        "-e# =  set escape delay to #msec\n"
-						"-i  =  force IBM charset\n"
-                        "-l# =  set screen lines to #\n"
-						,argv[0]
-                        );
-        			exit(0);
-		}
-		if(atoi(argv[i]))
-			edtuser=atoi(argv[i]);
-    }
-
-#ifdef __unix__
-	signal(SIGPIPE, SIG_IGN);
-#endif
-
-	uifc.size=sizeof(uifc);
-#ifdef USE_CURSES
-	i=uifcinic(&uifc);  /* curses */
-#else
-	i=uifcini32(&uifc);  /* curses */
-#endif
-	if(i!=0) {
-		printf("uifc library init returned error %d\n",i);
-		exit(1);
-	}
-
-	opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1));
-	for(i=0;i<(MAX_OPTS+1);i++)
-		opt[i]=(char *)malloc(MAX_OPLN);
-
-	mopt=(char **)malloc(sizeof(char *)*MAX_OPTS);
-	for(i=0;i<MAX_OPTS;i++)
-		mopt[i]=(char *)malloc(MAX_OPLN);
-
-	sprintf(title,"Synchronet Test Suite");
-	if(uifc.scrn(title)) {
-		printf(" USCRN (len=%d) failed!\n",uifc.scrn_len+1);
-		return(1);
-	}
-
-	strcpy(mopt[0],"Long Title");
-	strcpy(mopt[1],"String Input");
-	strcpy(mopt[2],"File picker");
-	mopt[3][0]=0;
-
-	uifc.helpbuf=	"`Test Suite:`\n"
-					"\nToDo: Add Help";
-
-	while(1) {
-		j=uifc.list(WIN_L2R|WIN_ESC|WIN_ACT|WIN_DYN|WIN_ORG,0,5,70,&main_dflt,&main_bar
-			,title,mopt);
-
-		if(j <= -2)
-			continue;
-
-		if(j==-1) {
-			uifc.bail();
-			return(0);
-		}
-
-		if(j==0) {
-			/* Long Title */
-			strcpy(longtitle,"This is a long title...");
-			for(p=strchr(longtitle,0);p<longtitle+sizeof(longtitle)-1;p++)
-				*p='.';
-			*p=0;
-			done=0;
-			uifc.list(WIN_ORG|WIN_MID|WIN_ACT,0,0,0,&i,0,longtitle,ok);
-		}
-		if(j==1) {
-			/* String input */
-			strcpy(longtitle,"This is a test if string input... enter/edit this field");
-			uifc.input(WIN_MID|WIN_NOBRDR,0,0,"Input",longtitle,sizeof(longtitle),K_EDIT);
-			uifc.showbuf(WIN_MID, 0, 0, uifc.scrn_width-4, uifc.scrn_len-4, "Result:", longtitle, NULL, NULL);
-		}
-		if(j==2) {
-			/* File picker */
-			if(filepick(&uifc, "Bob", &fper, NULL, NULL, UIFC_FP_ALLOWENTRY)!=-1) {
-				if(fper.files==1) {
-					sprintf(str,"File selected: %-.200s",fper.selected[0]);
-					uifc.msg(str);
-				}
-				filepick_free(&fper);
-			}
-		}
-	}
-}
diff --git a/uifc/uifcx.c b/uifc/uifcx.c
deleted file mode 100644
index 766f675..0000000
--- a/uifc/uifcx.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/* Standard I/O Implementation of UIFC (user interface) library */
-
-/* $Id: uifcx.c,v 1.41 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "genwrap.h"
-#include "gen_defs.h"
-#include "xpprintf.h"
-#include "uifc.h"
-
-#include <sys/types.h>
-
-#ifdef __unix__
-/*	#include <sys/time.h> why? */
-	#include <unistd.h>
-#endif
-
-static char *helpfile=0;
-static uint helpline=0;
-static uifcapi_t* api;
-
-/* Prototypes */
-static void help(void);
-
-/* API routines */
-static void uifcbail(void);
-static int uscrn(const char *str);
-static int ulist(int mode, int left, int top, int width, int *dflt, int *bar
-	,const char *title, char **option);
-static int uinput(int imode, int left, int top, const char *prompt, char *str
-	,int len ,int kmode);
-static int umsg(const char *str);
-static int umsgf(char *str, ...);
-static BOOL confirm(char *str, ...);
-static BOOL deny(char *str, ...);
-static void upop(const char *str);
-static void sethelp(int line, char* file);
-
-/****************************************************************************/
-/****************************************************************************/
-static int uprintf(int x, int y, unsigned attr, char *fmat, ...)
-{
-	va_list argptr;
-	char str[MAX_COLS + 1];
-	int i;
-
-	va_start(argptr, fmat);
-	vsprintf(str, fmat, argptr);
-	va_end(argptr);
-	i = printf("%s", str);
-	return(i);
-}
-
-
-/****************************************************************************/
-/* Initialization function, see uifc.h for details.							*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uifcinix(uifcapi_t* uifcapi)
-{
-	static char* yesNoOpts[] = {"Yes", "No", NULL};
-
-    if(uifcapi==NULL || uifcapi->size!=sizeof(uifcapi_t))
-        return(-1);
-
-    api=uifcapi;
-
-	if (api->yesNoOpts == NULL)
-		api->yesNoOpts = yesNoOpts; // Not currently used in this interface instance
-
-    /* install function handlers */
-    api->bail=uifcbail;
-    api->scrn=uscrn;
-    api->msg=umsg;
-	api->msgf=umsgf;
-	api->confirm=confirm;
-	api->deny=deny;
-    api->pop=upop;
-    api->list=ulist;
-    api->input=uinput;
-    api->sethelp=sethelp;
-    api->showhelp=help;
-	api->showbuf=NULL;
-	api->timedisplay=NULL;
-	api->printf = uprintf;
-
-    setvbuf(stdin,NULL,_IONBF,0);
-    setvbuf(stdout,NULL,_IONBF,0);
-    api->scrn_len=24;
-	api->initialized=TRUE;
-
-    return(0);
-}
-
-/****************************************************************************/
-/* Exit/uninitialize UIFC implementation.									*/
-/****************************************************************************/
-void uifcbail(void)
-{
-	api->initialized=FALSE;
-}
-
-/****************************************************************************/
-/* Clear screen, fill with background attribute, display application title.	*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uscrn(const char *str)
-{
-    return(0);
-}
-
-static int getstr(char* str, int maxlen)
-{
-	char 	ch;
-    int		len=0;
-#ifdef __unix__
-	int		istty;
-
-	istty=isatty(fileno(stdin));
-#endif
-    while(1) {
-		if(fread(&ch,1,1,stdin)!=1)
-			break;
-#ifdef __unix__
-		if(!istty)  {
-			printf("%c",ch);
-			fflush(stdout);
-		}
-#endif
-        if(ch=='\r' || ch=='\n')	/* enter */
-        	break;
-        if(ch=='\b' || ch==DEL) {	/* backspace */
-        	if(len) len--;
-            continue;
-    	}
-        if(len<maxlen)
-			str[len++]=ch;
-	}
-    str[len]=0;	/* we need The Terminator */
-
-	return(len);
-}
-
-/****************************************************************************/
-/* Local utility function.													*/
-/****************************************************************************/
-static int which(char* prompt, int max)
-{
-    char    str[41];
-    int     i;
-
-    while(1) {
-        printf("%s which (1-%d): ",prompt,max);
-        str[0]=0;
-		getstr(str,sizeof(str)-1);
-        i=atoi(str);
-        if(i>0 && i<=max)
-            return(i-1);
-    }
-}
-
-/****************************************************************************/
-/* General menu function, see uifc.h for details.							*/
-/****************************************************************************/
-int ulist(int mode, int left, int top, int width, int *cur, int *bar
-	, const char *title, char **option)
-{
-    char str[128];
-	int i,opts;
-    int optnumlen;
-    int yesno=0;
-    int lines;
-
-    for(opts=0;opts<MAX_OPTS;opts++)
-    	if(option[opts]==NULL || option[opts][0]==0)
-    		break;
-
-    if((*cur)>=opts)
-        (*cur)=opts-1;			/* returned after scrolled */
-
-    if((*cur)<0)
-        (*cur)=0;
-
-    if(opts>999)
-        optnumlen=4;
-    else if(opts>99)
-        optnumlen=3;
-    else if(opts>9)
-        optnumlen=2;
-    else
-        optnumlen=1;
-    while(1) {
-        if(opts==2 && !stricmp(option[0],"Yes") && !stricmp(option[1],"No")) {
-            yesno=1;
-            printf("%s? ",title);
-        } else {
-            printf("\n[%s]\n",title);
-            lines=2;
-            for(i=0;i<opts;i++) {
-                printf("%*d: %s\n",optnumlen,i+1,option[i]);
-                lines++;
-                if(!(lines%api->scrn_len)) {
-                    printf("More? ");
-                    str[0]=0;
-                    getstr(str,sizeof(str)-1);
-                    if(toupper(*str)=='N')
-                        break;
-                }
-            }
-            str[0]=0;
-            if(mode&WIN_COPY)
-                strcat(str,", Copy");
-			if(mode&WIN_CUT)
-				strcat(str,", X-Cut");
-            if(mode&WIN_PASTE)
-                strcat(str,", Paste");
-            if(mode&WIN_INS)
-                strcat(str,", Add");
-            if(mode&WIN_DEL)
-                strcat(str,", Delete");
-            printf("\nWhich (Help%s or Quit): ",str);
-        }
-        str[0]=0;
-        getstr(str,sizeof(str)-1);
-
-        truncsp(str);
-        i=atoi(str);
-        if(i>0 && i<=opts) {
-            *cur=--i;
-            return(*cur);
-        }
-        i=atoi(str+1);
-        switch(toupper(*str)) {
-            case 0:
-            case ESC:
-            case 'Q':
-                printf("Quit\n");
-                return(-1);
-            case 'Y':
-                if(!yesno)
-                    break;
-                printf("Yes\n");
-                return(0);
-            case 'N':
-                if(!yesno)
-                    break;
-                printf("No\n");
-                return(1);
-            case 'H':
-            case '?':
-                printf("Help\n");
-                help();
-                break;
-            case 'A':   /* Add/Insert */
-				if(!(mode&WIN_INS))
-					break;
-				if(!opts)
-    				return(MSK_INS);
-                if(i>0 && i<=opts+1)
-        			return((i-1)|MSK_INS);
-                return(which("Add before",opts+1)|MSK_INS);
-            case 'D':   /* Delete */
-				if(!(mode&WIN_DEL))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_DEL);
-                if(opts==1)
-                    return(MSK_DEL);
-                return(which("Delete",opts)|MSK_DEL);
-            case 'C':   /* Copy */
-				if(!(mode&WIN_COPY))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_COPY);
-                if(opts==1)
-                    return(MSK_COPY);
-                return(which("Copy",opts)|MSK_COPY);
-            case 'X':   /* Cut */
-				if(!(mode&WIN_CUT))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_CUT);
-                if(opts==1)
-                    return(MSK_CUT);
-                return(which("Cut",opts)|MSK_CUT);
-            case 'P':   /* Paste */
-				if(!(mode&WIN_PASTE))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts+1)
-        			return((i-1)|MSK_PASTE);
-                if(opts==1)
-                    return(MSK_PASTE);
-                return(which("Insert pasted item before",opts+1)|MSK_PASTE);
-        }
-    }
-}
-
-/*************************************************************************/
-/* This function is a windowed input string input routine.               */
-/*************************************************************************/
-int uinput(int mode, int left, int top, const char *prompt, char *outstr,
-	int max, int kmode)
-{
-    char str[256];
-
-    while(1) {
-        printf("%s (maxlen=%u): ",prompt,max);
-
-        getstr(str,max);
-        truncsp(str);
-        if(strcmp(str,"?"))
-            break;
-        help();
-    }
-	if(strcmp(outstr,str))
-		api->changes=1;
-    if(kmode&K_UPPER)	/* convert to uppercase? */
-    	strupr(str);
-    strcpy(outstr,str);
-    return(strlen(outstr));
-}
-
-/****************************************************************************/
-/* Displays the message 'str' and waits for the user to hit ENTER           */
-/****************************************************************************/
-int umsg(const char *str)
-{
-	int ch;
-	printf("%s\nHit enter to continue:",str);
-	ch = getchar();
-	return ch == '\r' || ch == '\n';
-}
-
-/* Same as above, using printf-style varargs */
-int umsgf(char* fmt, ...)
-{
-	int retval = -1;
-	va_list va;
-	char* buf = NULL;
-
-	va_start(va, fmt);
-	vasprintf(&buf, fmt, va);
-	va_end(va);
-	if(buf != NULL) {
-		retval = umsg(buf);
-		free(buf);
-	}
-	return retval;
-}
-
-BOOL confirm(char* fmt, ...)
-{
-	int ch;
-	va_list va;
-
-	va_start(va, fmt);
-	vprintf(fmt, va);
-	va_end(va);
-	printf(" (Y/n)? ");
-	ch = getchar();
-	return tolower(ch) != 'n' && ch != EOF;
-}
-
-BOOL deny(char* fmt, ...)
-{
-	int ch;
-	va_list va;
-
-	va_start(va, fmt);
-	vprintf(fmt, va);
-	va_end(va);
-	printf(" (N/y)? ");
-	ch = getchar();
-	return tolower(ch) != 'y';
-}
-
-/****************************************************************************/
-/* Status popup/down function, see uifc.h for details.						*/
-/****************************************************************************/
-void upop(const char *str)
-{
-	static int len;
-
-    if(str==NULL)
-        printf("\r%*s\r", len, "");
-    else
-        len = printf("\r%s\r", str) - 2;
-}
-
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-void sethelp(int line, char* file)
-{
-    helpline=line;
-    helpfile=file;
-}
-
-static void uputs(char* ptr)
-{
-	while(*ptr) {
-		if(*ptr>2)
-			putchar(*ptr);
-		ptr++;
-	}
-	putchar('\n');
-}
-
-/****************************************************************************/
-/* Help function.															*/
-/****************************************************************************/
-void help()
-{
-	char hbuf[HELPBUF_SIZE],str[256];
-    char *p;
-	unsigned short line;
-	long l;
-	FILE *fp;
-
-    printf("\n");
-    if(!api->helpbuf) {
-        if((fp=fopen(api->helpixbfile,"rb"))==NULL)
-            SAFEPRINTF(hbuf,"ERROR: Cannot open help index: %.128s"
-                ,api->helpixbfile);
-        else {
-            p=strrchr(helpfile,'/');
-            if(p==NULL)
-                p=strrchr(helpfile,'\\');
-            if(p==NULL)
-                p=helpfile;
-            else
-                p++;
-            l=-1L;
-            while(!feof(fp)) {
-                if(fread(str,12,1,fp)!=1)
-                    break;
-                str[12]=0;
-                if(fread(&line,2,1,fp)!=1)
-					break;
-                if(stricmp(str,p) || line!=helpline) {
-                    if(fseek(fp,4,SEEK_CUR)==0)
-						break;
-                    continue;
-                }
-                if(fread(&l,4,1,fp)!=1)
-					l=-1L;
-                break;
-            }
-            fclose(fp);
-            if(l==-1L)
-                SAFEPRINTF3(hbuf,"ERROR: Cannot locate help key (%s:%u) in: %.128s"
-                    ,p,helpline,api->helpixbfile);
-            else {
-                if((fp=fopen(api->helpdatfile,"rb"))==NULL)
-                    SAFEPRINTF(hbuf,"ERROR: Cannot open help file: %.128s"
-                        ,api->helpdatfile);
-                else {
-                    if(fseek(fp,l,SEEK_SET)!=0) {
-						SAFEPRINTF4(hbuf,"ERROR: Cannot seek to help key (%s:%u) at %ld in: %.128s"
-							,p,helpline,l,api->helpixbfile);
-					}
-					else {
-						if(fread(hbuf,1,HELPBUF_SIZE,fp)<1) {
-							SAFEPRINTF4(hbuf,"ERROR: Cannot read help key (%s:%u) at %ld in: %.128s"
-								,p,helpline,l,api->helpixbfile);
-						}
-						hbuf[HELPBUF_SIZE-1] = 0;
-					}
-					fclose(fp);
-				}
-			}
-		}
-		uputs(hbuf);
-		if(strlen(hbuf)>200) {
-			printf("Hit enter");
-			getstr(str,sizeof(str)-1);
-		}
-	}
-    else {
-		uputs(api->helpbuf);
-		if(strlen(api->helpbuf)>200) {
-			printf("Hit enter");
-			getstr(str,sizeof(str)-1);
-		}
-	}
-}
diff --git a/xpdev/CMakeLists.txt b/xpdev/CMakeLists.txt
deleted file mode 100644
index cb753fd..0000000
--- a/xpdev/CMakeLists.txt
+++ /dev/null
@@ -1,189 +0,0 @@
-project (XPDev C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (CheckIncludeFiles)
-INCLUDE (CheckFunctionExists)
-find_package(Threads)
-find_package(X11)
-if(NOT WIN32)
-	find_package(PkgConfig)
-	pkg_check_modules(SDL2 sdl2)
-endif()
-
-set(SOURCE
-    conwrap.c
-    dat_file.c
-    datewrap.c
-    dirwrap.c
-    filewrap.c
-    genwrap.c
-    ini_file.c
-    link_list.c
-    msg_queue.c
-    multisock.c
-    netwrap.c
-    semfile.c
-    semwrap.c
-    sockwrap.c
-    str_list.c
-    strwrap.c
-    threadwrap.c
-    unicode.c
-    xp_dl.c
-    xpbeep.c
-    xpdatetime.c
-    xpmap.c
-    xpprintf.c
-    xptime.c
-)
-
-set(HEADER
-	conwrap.h
-	cp437defs.h
-	dat_file.h
-	datewrap.h
-	dirwrap.h
-	eventwrap.h
-	filewrap.h
-	gen_defs.h
-	genwrap.h
-	haproxy.h
-	ini_file.h
-	link_list.h
-	msg_queue.h
-	multisock.h
-	netwrap.h
-	petdefs.h
-	semfile.h
-	semwrap.h
-	sockwrap.h
-	str_list.h
-	strwrap.h
-	threadwrap.h
-	unicode_defs.h
-	unicode.h
-	wrapdll.h
-	xp_dl.h
-	xp_syslog.h
-	xpbeep.h
-	xpdatetime.h
-	xpendian.h
-	xpevent.h
-	xpmap.h
-	xpprintf.h
-	xpsem.h
-)
-
-if(NOT WIN32)
-	list(APPEND SOURCE xpevent.c)
-    list(APPEND SOURCE xpsem.c)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	list(APPEND SOURCE sdlfuncs.c)
-	if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		list(APPEND SOURCE SDLMain.m)
-	endif()
-	if(WIN32)
-		list(APPEND SOURCE SDL_win32_main.c)
-	endif()
-endif()
-
-add_library(xpdev OBJECT ${SOURCE})
-target_include_directories(xpdev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_include_directories(xpdev PUBLIC ${XPDevPlus_BINARY_DIR})
-target_link_libraries(xpdev ${CMAKE_DL_LIBS})
-
-CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H)
-CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H)
-set(LINK_LIST_THREADSAFE TRUE PARENT_SCOPE)
-
-CHECK_INCLUDE_FILES(sys/soundcard.h HAS_SYS_SOUNDCARD_H) 
-CHECK_INCLUDE_FILES(soundcard.h HAS_SOUNDCARD_H) 
-CHECK_INCLUDE_FILES(linux/inttypes.h HAS_LINUX_SOUNDCARD_H) 
-if(HAS_SYS_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=1)
-elseif(HAS_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=2)
-elseif(HAS_LINUX_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=3)
-endif()
-
-CHECK_INCLUDE_FILES(dev/speaker/speaker.h HAS_DEV_SPEAKER_SPEAKER_H)
-if(HAS_DEV_SPEAKER_SPEAKER_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_SPEAKER_SPEAKER_H)
-endif()
-CHECK_INCLUDE_FILES(dev/machine/speaker.h HAS_DEV_MACHINE_SPEAKER_H)
-if(HAS_DEV_MACHINE_SPEAKER_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_MACHINE_SPEAKER_H)
-endif()
-CHECK_INCLUDE_FILES(dev/speaker/spkr.h HAS_DEV_MACHINE_SPKR_H)
-if(HAS_DEV_MACHINE_SPKR_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_MACHINE_SPKR_H)
-endif()
-
-if(WIN32)
-	target_compile_definitions(xpdev PUBLIC _WIN32 _WIN32_WINNT=0x0501 WINVER=0x0501 MSVCRT_VERSION=0x0501 _WIN32_IE=0x0500)
-	target_link_libraries(xpdev iphlpapi ws2_32 winmm netapi32)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Haiku")
-	target_link_libraries(xpdev network m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
-	target_link_libraries(xpdev ossaudio m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
-	target_link_libraries(xpdev ossaudio m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
-	target_link_libraries(xpdev socket m)
-else()
-	target_link_libraries(xpdev m)
-endif()
-target_link_libraries(xpdev ${CMAKE_THREAD_LIBS_INIT})
-
-if(EXISTS /dev/urandom)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_URANDOM URANDOM_DEV="/dev/urandom")
-endif()
-if(EXISTS /dev/random)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_RANDOM RANDOM_DEV="/dev/random")
-endif()
-
-CHECK_FUNCTION_EXISTS(random HAS_RANDOM_FUNC) 
-if(HAS_RANDOM_FUNC)
-	target_compile_definitions(xpdev PRIVATE HAS_RANDOM_FUNC)
-endif()
-
-CHECK_FUNCTION_EXISTS(srandomdev HAS_SRANDOMDEV_FUNC)
-if(HAS_SRANDOMDEV_FUNC)
-	target_compile_definitions(xpdev PRIVATE HAS_SRANDOMDEV_FUNC)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS})
-	set(WITH_SDL_AUDIO TRUE PARENT_SCOPE)
-endif()
-
-if(X11_FOUND)
-	target_include_directories(xpdev PRIVATE ${X11_INCLUDE_DIR})
-endif()
-
-if (PKG_CONFIG_FOUND)
-	pkg_check_modules(PORTAUDIO2 portaudio-2.0)
-	if(PORTAUDIO2_FOUND)
-		set(PORTAUDIO_FOUND TRUE)
-		set(PORTAUDIO_LIBS PORTAUDIO2_LIBS)
-		set(PORTAUDIO_CFLAGS PORTAUDIO2_CFLAGS)
-	else()
-		find_path(PORTAUDIO_INCLUDEDIR portaudio.h)
-		if(PORTAUDIO_INCLUDEDIR)
-			set(PORTAUDIO_FOUND TRUE)
-		endif()
-	endif()
-endif()
-
-if(PORTAUDIO_FOUND)
-	target_include_directories(xpdev PRIVATE ${PORTAUDIO_INCLUDEDIR})
-endif()
-
-CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND)
-if(USE_ALSA_SOUND)
-    target_compile_definitions(xpdev PRIVATE USE_ALSA_SOUND)
-endif()
diff --git a/xpdev/Makefile b/xpdev/Makefile
deleted file mode 100644
index d6aafc6..0000000
--- a/xpdev/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# To build the .dll files, use "make [OPTIONS] DLLIBS=1 dl"
-
-SRC_ROOT	=	..
-!include $(SRC_ROOT)/build/Common.bmake
-
-CFLAGS	=	$(CFLAGS) $(XPDEV_CFLAGS)
-MT_CFLAGS	=	$(MT_CFLAGS) $(XPDEV-MT_CFLAGS)
-
-#The following is necessary only when DLL-exporting wrapper functions
-!ifdef DLLIBS
-CFLAGS	=	$(CFLAGS) -DWRAPPER_EXPORTS=1
-!endif
-
-MT_CFLAGS = $(MT_CFLAGS) -DLINK_LIST_THREADSAFE
-
-!ifdef USE_SDL_AUDIO
-MTOBJS		= $(MTOBJS) $(MTOBJODIR)$(DIRSEP)SDL_win32_main$(OFILE)
-MTOBJS		= $(MTOBJS) $(MTOBJODIR)$(DIRSEP)sdlfuncs$(OFILE)
-OBJS		= $(OBJS) $(OBJODIR)$(DIRSEP)SDL_win32_main$(OFILE)
-OBJS		= $(OBJS) $(OBJODIR)$(DIRSEP)sdlfuncs$(OFILE)
-!endif
-
-$(WRAPTEST): $(XPDEV-MT_LIB_BUILD) $(TESTOBJS) $(EXEODIR)
-	@echo Linking $<
-	$(QUIET)$(CC) $(LDFLAGS) $(MT_LDFLAGS) $(XPDEV-MT_CFLAGS) $(XPDEV-MT_LDFLAGS) -e$@ $(TESTOBJS) $(XPDEV-MT_LIBS)
-
-$(XPTIME): $(XPDEV_LIB_BUILD) $(OBJODIR)$(DIRSEP)xptime$(OFILE)
-	@echo Linking $<
-	$(QUIET)$(CC) $(LDFLAGS) $(XPDEV-CFLAGS) $(XPDEV-LDFLAGS) -e$@ $** $(XPDEV-LIBS)
-
-$(XPDEV_LIB_BUILD): $(OBJS)
-	@echo Creating $< ...
-	-$(QUIET)$(DELETE) $@
-	&$(QUIET)tlib $@ +$**
-
-$(XPDEV_SHLIB_BUILD): $(OBJS)
-	@echo Linking $@
-	$(QUIET)$(MKSHLIB) $(MT_LDFLAGS) -lGi -e$@ $(LDFLAGS) $(SHLIBOPTS) @&&|
-	$**
-	cw32.lib
-|
-
-$(XPDEV-MT_LIB_BUILD): $(MTOBJS)
-	@echo Creating $< ...
-	-$(QUIET)$(DELETE) $@
-	&$(QUIET)tlib $@ +$**
-
-$(XPDEV-MT_SHLIB_BUILD): $(MTOBJS)
-	@echo Linking $@
-	$(QUIET)$(MKSHLIB) $(MT_LDFLAGS) -lGi -e$@ $(LDFLAGS) $(SHLIBOPTS) @&&|
-	$**
-	cw32mt.lib
-|
diff --git a/xpdev/SDLMain.h b/xpdev/SDLMain.h
deleted file mode 100644
index 4683df5..0000000
--- a/xpdev/SDLMain.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#import <Cocoa/Cocoa.h>
-
-@interface SDLMain : NSObject
-@end
diff --git a/xpdev/SDLMain.m b/xpdev/SDLMain.m
deleted file mode 100644
index f9c6394..0000000
--- a/xpdev/SDLMain.m
+++ /dev/null
@@ -1,387 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#include "SDL.h"
-#include "SDLMain.h"
-#include <sys/param.h> /* for MAXPATHLEN */
-#include <unistd.h>
-
-/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
- but the method still is there and works. To avoid warnings, we declare
- it ourselves here. */
-@interface NSApplication(SDL_Missing_Methods)
-- (void)setAppleMenu:(NSMenu *)menu;
-@end
-
-/* Use this flag to determine whether we use SDLMain.nib or not */
-#define		SDL_USE_NIB_FILE	0
-
-/* Use this flag to determine whether we use CPS (docking) or not */
-#define		SDL_USE_CPS		1
-#ifdef SDL_USE_CPS
-/* Portions of CPS.h */
-typedef struct CPSProcessSerNum
-{
-	UInt32		lo;
-	UInt32		hi;
-} CPSProcessSerNum;
-
-extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
-extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
-extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
-
-#endif /* SDL_USE_CPS */
-
-static int    gArgc;
-static char  **gArgv;
-static BOOL   gFinderLaunch;
-static BOOL   gCalledAppMainline = FALSE;
-
-static NSString *getApplicationName(void)
-{
-    const NSDictionary *dict;
-    NSString *appName = 0;
-
-    /* Determine the application name */
-    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
-    if (dict)
-        appName = [dict objectForKey: @"CFBundleName"];
-    
-    if (![appName length])
-        appName = [[NSProcessInfo processInfo] processName];
-
-    return appName;
-}
-
-#if SDL_USE_NIB_FILE
-/* A helper category for NSString */
-@interface NSString (ReplaceSubString)
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
-@end
-#endif
-
-@interface NSApplication (SDLApplication)
-@end
-
-@implementation NSApplication (SDLApplication)
-/* Invoked from the Quit menu item */
-- (void)terminate:(id)sender
-{
-    /* Post a SDL_QUIT event */
-    SDL_Event event;
-    event.type = SDL_QUIT;
-    SDL_PushEvent(&event);
-}
-@end
-
-/* The main class of the application, the application's delegate */
-@implementation SDLMain
-
-/* Set the working directory to the .app's parent directory */
-- (void) setupWorkingDirectory:(BOOL)shouldChdir
-{
-    if (shouldChdir)
-    {
-        char parentdir[MAXPATHLEN];
-        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
-        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
-        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
-            chdir(parentdir);   /* chdir to the binary app's parent */
-        }
-        CFRelease(url);
-        CFRelease(url2);
-    }
-}
-
-#if SDL_USE_NIB_FILE
-
-/* Fix menu to contain the real app name instead of "SDL App" */
-- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
-{
-    NSRange aRange;
-    NSEnumerator *enumerator;
-    NSMenuItem *menuItem;
-
-    aRange = [[aMenu title] rangeOfString:@"SDL App"];
-    if (aRange.length != 0)
-        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
-
-    enumerator = [[aMenu itemArray] objectEnumerator];
-    while ((menuItem = [enumerator nextObject]))
-    {
-        aRange = [[menuItem title] rangeOfString:@"SDL App"];
-        if (aRange.length != 0)
-            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
-        if ([menuItem hasSubmenu])
-            [self fixMenu:[menuItem submenu] withAppName:appName];
-    }
-}
-
-#else
-
-static void setApplicationMenu(void)
-{
-    /* warning: this code is very odd */
-    NSMenu *appleMenu;
-    NSMenuItem *menuItem;
-    NSString *title;
-    NSString *appName;
-    
-    appName = getApplicationName();
-    appleMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    /* Add menu items */
-    title = [@"About " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Hide " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""];
-
-    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@""];
-    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
-
-    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Quit " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@""];
-
-    
-    /* Put menu into the menubar */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
-    [menuItem setSubmenu:appleMenu];
-    [[NSApp mainMenu] addItem:menuItem];
-
-    /* Tell the application object that this is now the application menu */
-    [NSApp setAppleMenu:appleMenu];
-
-    /* Finally give up our references to the objects */
-    [appleMenu release];
-    [menuItem release];
-}
-
-/* Create a window menu */
-static void setupWindowMenu(void)
-{
-    NSMenu      *windowMenu;
-    NSMenuItem  *windowMenuItem;
-    NSMenuItem  *menuItem;
-
-    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-    
-    /* "Minimize" item */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@""];
-    [windowMenu addItem:menuItem];
-    [menuItem release];
-    
-    /* Put menu into the menubar */
-    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
-    [windowMenuItem setSubmenu:windowMenu];
-    [[NSApp mainMenu] addItem:windowMenuItem];
-    
-    /* Tell the application object that this is now the window menu */
-    [NSApp setWindowsMenu:windowMenu];
-
-    /* Finally give up our references to the objects */
-    [windowMenu release];
-    [windowMenuItem release];
-}
-
-/* Replacement for NSApplicationMain */
-static void CustomApplicationMain (int argc, char **argv)
-{
-    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
-    SDLMain				*sdlMain;
-
-    /* If there's no Window Server (ie: remote headless), go in dry. */
-    if (_CGSDefaultConnection() == NULL) {
-        XPDEV_main(argc, argv, environ);
-        return;
-    }
-
-    /* Ensure the application object is initialised */
-    [NSApplication sharedApplication];
-    
-#ifdef SDL_USE_CPS
-    {
-        CPSProcessSerNum PSN;
-        /* Tell the dock about us */
-        if (!CPSGetCurrentProcess(&PSN))
-            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
-                if (!CPSSetFrontProcess(&PSN))
-                    [NSApplication sharedApplication];
-    }
-#endif /* SDL_USE_CPS */
-
-    /* Set up the menubar */
-    [NSApp setMainMenu:[[NSMenu alloc] init]];
-    setApplicationMenu();
-    setupWindowMenu();
-
-    /* Create SDLMain and make it the app delegate */
-    sdlMain = [[SDLMain alloc] init];
-    [NSApp setDelegate:sdlMain];
-    
-    /* Start the main event loop */
-    [NSApp run];
-    
-    [sdlMain release];
-    [pool release];
-}
-
-#endif
-
-
-/*
- * Catch document open requests...this lets us notice files when the app
- *  was launched by double-clicking a document, or when a document was
- *  dragged/dropped on the app's icon. You need to have a
- *  CFBundleDocumentsType section in your Info.plist to get this message,
- *  apparently.
- *
- * Files are added to gArgv, so to the app, they'll look like command line
- *  arguments. Previously, apps launched from the finder had nothing but
- *  an argv[0].
- *
- * This message may be received multiple times to open several docs on launch.
- *
- * This message is ignored once the app's mainline has been called.
- */
-- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
-{
-    const char *temparg;
-    size_t arglen;
-    char *arg;
-    char **newargv;
-
-    if (!gFinderLaunch)  /* MacOS is passing command line args. */
-        return FALSE;
-
-    if (gCalledAppMainline)  /* app has started, ignore this document. */
-        return FALSE;
-
-    temparg = [filename UTF8String];
-    arglen = SDL_strlen(temparg) + 1;
-    arg = (char *) SDL_malloc(arglen);
-    if (arg == NULL)
-        return FALSE;
-
-    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
-    if (newargv == NULL)
-    {
-        SDL_free(arg);
-        return FALSE;
-    }
-    gArgv = newargv;
-
-    SDL_strlcpy(arg, temparg, arglen);
-    gArgv[gArgc++] = arg;
-    gArgv[gArgc] = NULL;
-    return TRUE;
-}
-
-extern char **environ;
-/* Called when the internal event loop has just started running */
-- (void) applicationDidFinishLaunching: (NSNotification *) note
-{
-    int status;
-
-    /* Set the working directory to the .app's parent directory */
-    [self setupWorkingDirectory:gFinderLaunch];
-
-#if SDL_USE_NIB_FILE
-    /* Set the main menu to contain the real app name instead of "SDL App" */
-    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
-#endif
-
-    /* Hand off to main application code */
-    gCalledAppMainline = TRUE;
-    status = SDL_main_env (gArgc, gArgv, environ);
-
-    /* We're done, thank you for playing */
-    exit(status);
-}
-@end
-
-
-@implementation NSString (ReplaceSubString)
-
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
-{
-    unsigned int bufferSize;
-    unsigned int selfLen = [self length];
-    unsigned int aStringLen = [aString length];
-    unichar *buffer;
-    NSRange localRange;
-    NSString *result;
-
-    bufferSize = selfLen + aStringLen - aRange.length;
-    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
-    
-    /* Get first part into buffer */
-    localRange.location = 0;
-    localRange.length = aRange.location;
-    [self getCharacters:buffer range:localRange];
-    
-    /* Get middle part into buffer */
-    localRange.location = 0;
-    localRange.length = aStringLen;
-    [aString getCharacters:(buffer+aRange.location) range:localRange];
-     
-    /* Get last part into buffer */
-    localRange.location = aRange.location + aRange.length;
-    localRange.length = selfLen - localRange.location;
-    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
-    
-    /* Build output string */
-    result = [NSString stringWithCharacters:buffer length:bufferSize];
-    
-    NSDeallocateMemoryPages(buffer, bufferSize);
-    
-    return result;
-}
-
-@end
-
-
-
-#ifdef main
-#  undef main
-#endif
-
-
-/* Main entry point to executable - should *not* be SDL_main! */
-int main (int argc, char **argv)
-{
-    /* Copy the arguments into a global variable */
-    /* This is passed if we are launched by double-clicking */
-    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
-        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
-        gArgv[0] = argv[0];
-        gArgv[1] = NULL;
-        gArgc = 1;
-        gFinderLaunch = YES;
-    } else {
-        int i;
-        gArgc = argc;
-        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
-        for (i = 0; i <= argc; i++)
-            gArgv[i] = argv[i];
-        gFinderLaunch = NO;
-    }
-
-#if SDL_USE_NIB_FILE
-    NSApplicationMain (argc, argv);
-#else
-    CustomApplicationMain (argc, argv);
-#endif
-    return 0;
-}
-
diff --git a/xpdev/SDL_win32_main.c b/xpdev/SDL_win32_main.c
deleted file mode 100644
index ef9b360..0000000
--- a/xpdev/SDL_win32_main.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-    SDL_main.c, placed in the public domain by Sam Lantinga  4/13/98
-
-    The WinMain function -- calls your program's main() function
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-#include <windows.h>
-#include <malloc.h>			/* For _alloca() */
-
-#define DIR_SEPERATOR TEXT("/")
-#include <direct.h>
-
-/* Parse a command line buffer into arguments */
-static int ParseCommandLine(char *cmdline, char **argv)
-{
-	char *bufp;
-	int argc;
-
-	argc = 0;
-	for ( bufp = cmdline; *bufp; ) {
-		/* Skip leading whitespace */
-		while ( isspace(*bufp) ) {
-			++bufp;
-		}
-		/* Skip over argument */
-		if ( *bufp == '"' ) {
-			++bufp;
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && (*bufp != '"') ) {
-				++bufp;
-			}
-		} else {
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && ! isspace(*bufp) ) {
-				++bufp;
-			}
-		}
-		if ( *bufp ) {
-			if ( argv ) {
-				*bufp = '\0';
-			}
-			++bufp;
-		}
-	}
-	if ( argv ) {
-		argv[argc] = NULL;
-	}
-	return(argc);
-}
-
-extern int main(int argc, char **argv);
-
-/* This is where execution begins [console apps] */
-static int console_main(int argc, char *argv[], char **env)
-{
-	int n;
-	char *bufp, *appname;
-
-	/* Get the class name from argv[0] */
-	appname = argv[0];
-	if ( (bufp=strrchr(argv[0], '\\')) != NULL ) {
-		appname = bufp+1;
-	} else
-	if ( (bufp=strrchr(argv[0], '/')) != NULL ) {
-		appname = bufp+1;
-	}
-
-	if ( (bufp=strrchr(appname, '.')) == NULL )
-		n = strlen(appname);
-	else
-		n = (bufp-appname);
-
-	bufp = (char *)alloca(n+1);
-	if ( bufp == NULL ) {
-		return 1;
-	}
-	strncpy(bufp, appname, n);
-	bufp[n] = '\0';
-	appname = bufp;
-
-	/* Run the application main() code */
-	n=main(argc, argv);
-
-	/* Exit cleanly, calling atexit() functions */
-	exit(n);
-
-	/* Hush little compiler, don't you cry... */
-	return(n);
-}
-
-/* This is where execution begins [windowed apps] */
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-{
-	HINSTANCE handle;
-	char **argv;
-	int argc;
-	char *cmdline;
-	char *bufp;
-
-	/* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
-	   keep them open.  This is a hack.. hopefully it will be fixed 
-	   someday.  DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
-	 */
-	handle = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( handle != NULL ) {
-		FreeLibrary(handle);
-	}
-
-	/* Grab the command line (use alloca() on Windows) */
-	bufp = GetCommandLine();
-	cmdline = (char *)alloca(strlen(bufp)+1);
-	if ( cmdline == NULL ) {
-		return 1;
-	}
-	strcpy(cmdline, bufp);
-
-	/* Parse it into argv and argc */
-	argc = ParseCommandLine(cmdline, NULL);
-	argv = (char **)alloca((argc+1)*(sizeof *argv));
-	if ( argv == NULL ) {
-		return 1;
-	}
-	ParseCommandLine(cmdline, argv);
-
-	/* Run the main program (after a little SDL initialization) */
-	return(console_main(argc, argv, _environ));
-}
diff --git a/xpdev/conwrap.c b/xpdev/conwrap.c
deleted file mode 100644
index 01d85f9..0000000
--- a/xpdev/conwrap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* conwrap.c */
-
-/* DOS's kbhit and getch functions for Unix - Casey Martin 2000 */
-
-/* $Id: conwrap.c,v 1.15 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html		*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__unix__)
-
-#include <stdlib.h>
-#include <string.h>	/* memcpy */
-#include <unistd.h>
-#include <termios.h>
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <signal.h>
-
-#include "conwrap.h"				/* Verify prototypes */
-
-static struct termios current;		/* our current term settings			*/
-static struct termios original;     /* old termios settings					*/
-static int beensetup = 0;           /* has _termios_setup() been called?	*/
-static int istty = 0;				/* is stdin a tty?						*/		
-
-/* Resets the termios to its previous state */
-void _termios_reset(void)
-{
-	tcsetattr(STDIN_FILENO, TCSANOW, &original);
-}
-
-/************************************************
-  This pair of functions handles Ctrl-Z presses
-************************************************/
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void _sighandler_stop(int sig)
-{
-    /* clean up the terminal */
-    _termios_reset();
-
-    /* ... and stop */
-	kill(getpid(), SIGSTOP);
-}
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void _sighandler_cont(int sig)
-{
-    /* restore terminal */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-
-/* Prepares termios for non-blocking action */
-void _termios_setup(void)
-{
-	beensetup = 1;
-    
-	tcgetattr(STDIN_FILENO, &original);
-  
-	memcpy(&current, &original, sizeof(struct termios));
-	current.c_cc[VMIN] = 1;           /* read() will return with one char */
-	current.c_cc[VTIME] = 0;          /* read() blocks forever */
-	current.c_lflag &= ~ICANON;       /* character mode */
-    current.c_lflag &= ~ECHO;         /* turn off echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-
-    /* Let's install an exit function, also.  This way, we can reset
-     * the termios silently
-	 */
-    atexit(_termios_reset);
-
-    /* install the Ctrl-Z handler */
-    signal(SIGTSTP, _sighandler_stop);
-    signal(SIGCONT, _sighandler_cont);
-}
-
-void _echo_on(void)
-{
-	tcgetattr(STDIN_FILENO, &current);
-    current.c_lflag |= ECHO;         /* turn on echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-void _echo_off(void)
-{
-	tcgetattr(STDIN_FILENO, &current);
-    current.c_lflag &= ~ECHO;         /* turn off echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-int kbhit(void)
-{
-	fd_set inp;
-	struct timeval timeout = {0, 0};
-
-	if(!istty) {
-		istty = isatty(STDIN_FILENO);
-		if(!istty)
-			return 0;
-	}
-
-    if(!beensetup)
-    	_termios_setup();
-
-	/* set up select() args */
-	FD_ZERO(&inp);
-	FD_SET(STDIN_FILENO, &inp);
-
-	if(select(STDIN_FILENO+1, &inp, NULL, NULL, &timeout)<1)
-		return 0;
-	return 1;
-}
-
-int getch(void)
-{
-	char c;
-
-    if(!beensetup)
-    	_termios_setup();
-
-    /* get a char out of stdin */
-    if(read(STDIN_FILENO, &c, 1)==-1)
-		return 0;
-
-    return c;
-}
-
-#endif /* __unix__ */
diff --git a/xpdev/conwrap.h b/xpdev/conwrap.h
deleted file mode 100644
index e79c18f..0000000
--- a/xpdev/conwrap.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* conwrap.h */
-
-/* Cross-platform local console I/O wrapppers */
-
-/* $Id: conwrap.h,v 1.6 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CONWRAP_H
-#define _CONWRAP_H
-
-#if defined(__unix__)
-
-    void _termios_reset(void);
-    void _echo_on(void);
-    void _echo_off(void);
-    int kbhit(void);
-    int getch(void);
-
-#else	/* DOS-Based */
-
-	#include <conio.h>
-
-#endif
-
-#endif	/* _CONWRAP_H */
diff --git a/xpdev/cp437defs.h b/xpdev/cp437defs.h
deleted file mode 100644
index 6524710..0000000
--- a/xpdev/cp437defs.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Synchronet IBM Code Page 437 (CP437) definitions */
-
-/* $Id: cp437defs.h,v 1.5 2019/08/30 10:47:41 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef CP437DEFS_H_
-#define CP437DEFS_H_
-
-enum cp437_char {
-	CP437_WHITE_SMILING_FACE = '\x01',
-	CP437_BLACK_SMILING_FACE = '\x02',
-	CP437_BLACK_HEART_SUIT = '\x03',
-	CP437_BLACK_DIAMOND_SUIT = '\x04',
-	CP437_BLACK_CLUB_SUIT = '\x05',
-	CP437_BLACK_SPADE_SUIT = '\x06',
-	CP437_BULLET = '\x07',
-	CP437_INVERSE_BULLET = '\x08',
-	CP437_WHITE_CIRCLE = '\x09',
-	CP437_INVERSE_WHITE_CIRCLE = '\x0A',
-	CP437_MALE_SIGN = '\x0B',
-	CP437_FEMALE_SIGN = '\x0C',
-	CP437_EIGHTH_NOTE = '\x0D',
-	CP437_BEAMED_EIGHTH_NOTES = '\x0E',
-	CP437_WHITE_SUN_WITH_RAYS = '\x0F',
-	CP437_BLACK_RIGHT_POINTING_POINTER = '\x10',
-	CP437_BLACK_LEFT_POINTING_POINTER = '\x11',
-	CP437_UP_DOWN_ARROW = '\x12',
-	CP437_DOUBLE_EXCLAMATION_MARK = '\x13',
-	CP437_PILCROW_SIGN = '\x14',	// Paragraph mark
-	CP437_SECTION_SIGN = '\x15',
-	CP437_BLACK_RECTANGLE = '\x16',
-	CP437_UP_DOWN_ARROW_WITH_BASE = '\x17',
-	CP437_UPWARDS_ARROW = '\x18',
-	CP437_DOWNWARDS_ARROW = '\x19',
-	CP437_RIGHTWARDS_ARROW = '\x1A',
-	CP437_LEFTWARDS_ARROW = '\x1B',
-	CP437_RIGHT_ANGLE = '\x1C',
-	CP437_LEFT_RIGHT_ARROW = '\x1D',
-	CP437_BLACK_UP_POINTING_TRIANGLE = '\x1E',
-	CP437_BLACK_DOWN_POINTING_TRIANGLE = '\x1F',
-
-	// 0x20 - 0x7E are ASCII characters
-
-	CP437_HOUSE = '\x7F',
-	CP437_LATIN_CAPTIAL_LETTER_C_WITH_CEDILLA = '\x80',
-	CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = '\x81',
-	CP437_LATIN_SMALL_LETTER_E_WITH_ACUTE = '\x82',
-	CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = '\x83',
-	CP437_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = '\x84',
-	CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE = '\x85',
-	CP437_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = '\x86',
-	CP437_LATIN_SMALL_LETTER_C_WITH_CEDILLA = '\x87',
-	CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = '\x88',
-	CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = '\x89',
-	CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE = '\x8a',
-	CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = '\x8b',
-	CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = '\x8c',
-	CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE = '\x8d',
-	CP437_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = '\x8e',
-	CP437_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = '\x8f',
-	CP437_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = '\x90',
-	CP437_LATIN_SMALL_LETTER_AE = '\x91',
-	CP437_LATIN_CAPITAL_LETTER_AE = '\x92',
-	CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = '\x93',
-	CP437_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = '\x94',
-	CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE = '\x95',
-	CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = '\x96',
-	CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE = '\x97',
-	CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = '\x98',
-	CP437_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = '\x99',
-	CP437_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = '\x9A',
-	CP437_CENT_SIGN = '\x9B',
-	CP437_POUND_SIGN = '\x9C',
-	CP437_YEN_SIGN = '\x9E',
-	CP437_PESETA_SIGN = '\x9E',
-	CP437_LATIN_SMALL_LETTER_F_WITH_HOOK = '\x9F',
-	CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE = '\xA0',
-	CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE = '\xA1',
-	CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE = '\xA2',
-	CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE = '\xA3',
-	CP437_LATIN_SMALL_LETTER_N_WITH_TILDE = '\xA4',
-	CP437_LATIN_CAPITAL_LETTER_N_WITH_TILDE = '\xA5',
-	CP437_FEMININE_ORDINAL_INDICATOR = '\xA6',
-	CP437_MASCULINE_ORDINAL_INDICATOR = '\xA7',
-	CP437_INVERTED_QUESTION_MARK = '\xA8',
-	CP437_REVERSED_NOT_SIGN = '\xA9',
-	CP437_NOT_SIGN = '\xAA',
-	CP437_VULGAR_FRACTION_ONE_HALF = '\xAB',
-	CP437_VULGAR_FRACTION_ONE_QUARTER = '\xAC',
-	CP437_INVERTED_EXCLAMATION_MARK = '\xAD',
-	CP437_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAE',
-	CP437_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAF',
-	CP437_LIGHT_SHADE = '\xB0',
-	CP437_MEDIUM_SHADE = '\xB1',
-	CP437_DARK_SHADE = '\xB2',
-	CP437_BOX_DRAWINGS_LIGHT_VERTICAL = '\xB3',
-	CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT = '\xB4',
-	CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE = '\xB5',
-	CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE = '\xB6',
-	CP437_BOX_DRAWINGS_DOUBLE_VERTICAL = '\xBA',
-	CP437_BOX_DRAWINGS_VERTICAL_AND_HORIZONTAL = '\xC5',
-	// TODO...
-	CP437_FULL_BLOCK = '\xDB',
-	CP437_LOWER_HALF_BLOCK = '\xDC',
-	CP437_LEFT_HALF_BLOCK = '\xDD',
-	CP437_RIGHT_HALF_BLOCK = '\xDE',
-	CP437_UPPER_HALF_BLOCK = '\xDF',
-	// TODO...
-	CP437_GREEK_SMALL_LETTER_ALPHA = '\xE0',
-	CP437_GREEK_SMALL_LETTER_BETA = '\xE1',
-	CP437_LATIN_SMALL_LETTER_SHARP_S = '\xE1',		// Duplicate
-	CP437_GREEK_CAPITAL_LETTER_GAMMA = '\xE2',
-	CP437_GREEK_SMALL_LETTER_PI = '\xE3',
-	CP437_GREEK_CAPITAL_LETTER_SIGMA = '\xE4',
-	CP437_GREEK_SMALL_LETTER_SIGMA = '\xE5',
-	CP437_GREEK_SMALL_LETTER_MU = '\xE6',
-	CP437_MICRO_SIGN = '\xE6',	// Duplicate
-	CP437_GREEK_SMALL_LETTER_TAU = '\xE7',
-	CP437_GREEK_CAPITAL_LETTER_PHI = '\xE8',
-	CP437_GREEK_SMALL_LETTER_THETA = '\xE9',
-	CP437_GREEK_CAPITAL_LETTER_OMEGA = '\xEA',
-	CP437_GREEK_SMALL_LETTER_DELTA = '\xEB',
-	CP437_INFINITY = '\xEC',
-	CP437_GREEK_SMALL_LETTER_PHI = '\xED',
-	CP437_GREEK_SMALL_LETTER_EPSILION = '\xEE',
-	CP437_INTERSECTION = '\xEF',
-	CP437_IDENTICAL_TO = '\xF0',
-	CP437_TRIPLE_BAR = '\xF0',	// Duplicate
-	CP437_PLUS_MINUS_SIGN = '\xF1',
-	CP437_GREATER_THAN_OR_EQUAL_TO = '\xF2',
-	CP437_LESS_THAN_OR_EQUAL_TO = '\xF3',
-	CP437_TOP_HALF_INTEGRAL = '\xF4',
-	CP437_BOTTOM_HALF_INTEGRAL = '\xF5',
-	CP437_DIVISION_SIGN = '\xF6',
-	CP437_ALMOST_EQUAL_TO = '\xF7',
-	CP437_DEGREE_SIGN = '\xF8',
-	CP437_BULLET_OPERATOR = '\xF9',
-	CP437_MIDDLE_DOT = '\xFA',
-	CP437_SQUARE_ROOT = '\xFB',
-	CP437_CHECK_MARK = '\xFB',	// Duplicate
-	CP437_SUPERSCRIPT_LATIN_SMALL_LETTER_N = '\xFC',
-	CP437_SUPERSCRIPT_TWO = '\xFD',
-	CP437_BLACK_SQUARE = '\xFE',
-	CP437_HALFWIDTH_BLACK_SQUARE = '\xFE',	// Duplicate
-	CP437_NO_BREAK_SPACE = '\xFF'
-};
-
-#endif // Don't add anything after this line
diff --git a/xpdev/dat_file.c b/xpdev/dat_file.c
deleted file mode 100644
index 7b8e5b6..0000000
--- a/xpdev/dat_file.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* dat_file.c */
-
-/* Functions to deal with comma (CSV) and tab-delimited files and lists */
-
-/* $Id: dat_file.c,v 1.8 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "dat_file.h"
-#include "genwrap.h"	/* lastchar */
-#include "filewrap.h"	/* chsize */
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* strdup */
-
-/***********************************/
-/* CSV (Comma Separated Value) API */
-/***********************************/
-
-static char* csvEncode(char* field)
-{
-	char* dst;
-	char* src;
-	char* buf;
-	char* comma;
-	char* quote;
-	char  first;
-	char  last;
-	char* nl;
-	BOOL  enclose;
-
-	if((buf=malloc(strlen(field)*2))==NULL)
-		return(NULL);
-
-	nl=strchr(field,'\n');
-	comma=strchr(field,',');
-	quote=strchr(field,'"');
-	first=field[0];
-	last=*lastchar(field);
-
-	enclose = (quote || comma || nl || first==' ' || last==' ');
-
-	dst=buf;
-	if(enclose)
-		*(dst++)='"';
-	src=field;
-	while(*src) {
-		if(*src=='"')
-			*(dst++)='"';	/* escape quotes */
-		*(dst++)=*src++;
-	}
-	if(enclose)
-		*(dst++)='"';
-
-	*dst=0;
-
-	return(buf);
-}
-
-char* csvLineCreator(const str_list_t columns)
-{
-	char*	str=NULL;
-	char*	p;
-	char*	val;
-	size_t	i,len;
-
-	if(columns==NULL)
-		return(NULL);
-
-	for(i=0;columns[i]!=NULL;i++) {
-		len=strlen(columns[i])*2;
-		if(str)
-			len+=strlen(str);
-		if((p=realloc(str,len))==NULL)
-			break;
-		str=p;
-		if(i) strcat(str,",");
-		else  *str=0;
-		if((val=csvEncode(columns[i]))==NULL)
-			break;
-		strcat(str,val);
-		free(val);
-	}
-
-	return(str);
-}
-
-str_list_t csvLineParser(const char* line)
-{
-	char*		p;
-	char*		buf;
-	char*		tmp;
-	size_t		count=0;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if((buf=strdup(line))==NULL) {
-		strListFree(&list);
-		return(NULL);
-	}
-
-	truncsp(buf);
-
-	for(p=strtok_r(buf,",",&tmp);p;p=strtok_r(NULL,",",&tmp))
-		strListAppend(&list,p,count++);
-
-	free(buf);
-
-	return(list);
-}
-
-/*********************/
-/* Tab-Delimited API */
-/*********************/
-
-char* tabLineCreator(const str_list_t columns)
-{
-	char*	str=NULL;
-	char*	p;
-	size_t	i,len;
-
-	if(columns==NULL)
-		return(NULL);
-
-	for(i=0;columns[i]!=NULL;i++) {
-		len=strlen(columns[i])*2;
-		if(str)
-			len+=strlen(str);
-		if((p=realloc(str,len))==NULL)
-			break;
-		str=p;
-		if(i) strcat(str,"\t");
-		else  *str=0;
-		strcat(str,columns[i]);
-	}
-
-	return(str);
-}
-
-str_list_t tabLineParser(const char* line)
-{
-	char*		p;
-	char*		buf;
-	char*		tmp;
-	size_t		count=0;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if((buf=strdup(line))==NULL) {
-		strListFree(&list);
-		return(NULL);
-	}
-
-	for(p=strtok_r(buf,"\t",&tmp);p;p=strtok_r(NULL,"\t",&tmp))
-		strListAppend(&list,p,count++);
-
-	free(buf);
-
-	return(list);
-}
-
-/* Generic API */
-
-str_list_t dataCreateList(const str_list_t records[], const str_list_t columns, dataLineCreator_t lineCreator)
-{
-	char*		p;
-	str_list_t	list;
-	size_t		i;
-	size_t		li=0;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if(columns!=NULL) {
-		p=lineCreator(columns);
-		strListAppend(&list,p,li++);
-		free(p);
-	}
-		
-	if(records!=NULL)
-		for(i=0;records[i]!=NULL;i++) {
-			p=lineCreator(records[i]);
-			strListAppend(&list,p,li++);
-			free(p);
-		}
-
-	return(list);
-}
-
-BOOL dataWriteFile(FILE* fp, const str_list_t records[], const str_list_t columns, const char* separator
-				   ,dataLineCreator_t lineCreator)
-{
-	size_t		count,total;
-	str_list_t	list;
-
-	rewind(fp);
-
-	if(chsize(fileno(fp),0)!=0)	/* truncate */
-		return(FALSE);
-
-	if((list=dataCreateList(records,columns,lineCreator))==NULL)
-		return(FALSE);
-
-	total = strListCount(list);
-	count = strListWriteFile(fp,list,separator);
-	strListFree(&list);
-
-	return(count == total);
-}
-
-str_list_t* dataParseList(const str_list_t records, str_list_t* columns, dataLineParser_t lineParser)
-{
-	size_t		ri=0;
-	size_t		li=0;
-	str_list_t* list;
-
-	if(records==NULL)
-		return(NULL);
-
-	if((list=(str_list_t*)malloc(sizeof(str_list_t)*(strListCount(records)+1)))==NULL)
-		return(NULL);
-
-	if(columns!=NULL) {
-		if((*columns=lineParser(records[ri++]))==NULL) {
-			free(list);
-			return(NULL);
-		}
-	}
-
-	while(records[ri]!=NULL)
-		list[li++]=lineParser(records[ri++]);
-
-	list[li]=NULL; /* terminate */
-
-	return(list);
-}
-
-str_list_t*	dataReadFile(FILE* fp, str_list_t* columns, dataLineParser_t lineParser)
-{
-	str_list_t*	records;
-	str_list_t	lines;
-	size_t		i;
-
-	rewind(fp);
-
-	if((lines=strListReadFile(fp, NULL, 0))==NULL)
-		return(NULL);
-
-	/* truncate line-feed chars off end of strings */
-	for(i=0; lines[i]!=NULL; i++)
-		truncnl(lines[i]);
-
-	records=dataParseList(lines,columns,lineParser);
-
-	strListFree(&lines);
-
-	return(records);
-}
diff --git a/xpdev/dat_file.h b/xpdev/dat_file.h
deleted file mode 100644
index 4c45d8a..0000000
--- a/xpdev/dat_file.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* dat_file.h */
-
-/* Functions to deal with comma (CSV) and tab-delimited files and lists */
-
-/* $Id: dat_file.h,v 1.4 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DAT_FILE_H
-#define _DAT_FILE_H
-
-#include "str_list.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/***************/
-/* Generic API */
-/***************/
-
-typedef str_list_t	(*dataLineParser_t)(const char*);
-typedef char*		(*dataLineCreator_t)(const str_list_t);
-
-/* columns arguments are optional (may be NULL) */
-str_list_t*	dataParseList(const str_list_t records, str_list_t* columns, dataLineParser_t);
-str_list_t*	dataReadFile(FILE* fp, str_list_t* columns, dataLineParser_t);
-
-str_list_t	dataCreateList(const str_list_t records[], const str_list_t columns, dataLineCreator_t);
-BOOL		dataWriteFile(FILE* fp, const str_list_t records[], const str_list_t columns
-						  ,const char* separator, dataLineCreator_t);
-
-/* CSV (comma separated value) API */
-char*		csvLineCreator(const str_list_t);
-str_list_t	csvLineParser(const char* line);
-#define		csvParseList(list,col)			dataParseList(list,col,csvLineParser)
-#define		csvCreateList(rec,col)			dataCreateList(rec,col,csvLineCreator)
-#define		csvReadFile(fp,col)				dataReadFile(fp,col,csvLineParser)
-#define		csvWriteFile(fp,rec,sep,col)	dataWriteFile(fp,rec,col,sep,csvLineCreator)
-
-/* Tab-delimited API */
-char*		tabLineCreator(const str_list_t);
-str_list_t	tabLineParser(const char* line);
-#define		tabParseList(list,col)			dataParseList(list,col,tabLineParser)
-#define		tabCreateList(rec,col)			dataCreateList(rec,col,tabLineCreator)
-#define		tabReadFile(fp,col)				dataReadFile(fp,col,tabLineParser)
-#define		tabWriteFile(fp,rec,sep,col)	dataWriteFile(fp,rec,col,sep,tabLineCreator)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/datewrap.c b/xpdev/datewrap.c
deleted file mode 100644
index 5f3759e..0000000
--- a/xpdev/datewrap.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* datewrap.c */
-
-/* Wrappers for non-standard date and time functions */
-
-/* $Id: datewrap.c,v 1.34 2015/08/29 10:40:15 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "string.h"	/* memset */
-#include "genwrap.h"
-#include "datewrap.h"
-
-/* Return difference (in seconds) in time() result from standard */
-time_t checktime(void)
-{
-	time_t		t=0x2D24BD00L;	/* Correct time_t value on Jan-1-1994 */
-	struct tm	gmt;
-	struct tm	tm;
-
-	memset(&tm,0,sizeof(tm));
-	tm.tm_year=94;
-	tm.tm_mday=1;
-	return mktime(&tm) - mktime(gmtime_r(&t,&gmt));
-}
-
-/* Compensates for struct tm "weirdness" */
-time_t sane_mktime(struct tm* tm)
-{
-	if(tm->tm_year>=1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)		/* Month is zero-based */
-		tm->tm_mon--;
-	tm->tm_isdst=-1;	/* Auto-adjust for DST */
-
-	return mktime(tm);
-}
-
-/* Compensates for struct tm "weirdness" */
-time_t sane_timegm(struct tm* tm)
-{
-	if(tm->tm_year>=1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)		/* Month is zero-based */
-		tm->tm_mon--;
-	tm->tm_isdst=0;		/* Don't adjust for DST */
-
-	return timegm(tm);
-}
-
-time32_t time32(time32_t* tp)
-{
-	time_t t;
-
-	t=time(NULL);
-
-	if(tp!=NULL)
-		*tp=(time32_t)t;
-
-	return (time32_t)t;
-}
-
-time32_t mktime32(struct tm* tm)
-{
-	return (time32_t)mktime(tm);	/* don't use sane_mktime since tm->tm_mon is assumed to be already zero-based */
-}
-
-struct tm* localtime32(const time32_t* t32, struct tm* tm)
-{
-	time_t	t=*t32;
-	struct tm* tmp;
-
-	if((tmp=localtime(&t))==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-
-#if !defined(__BORLANDC__)
-
-/***********************************/
-/* Borland DOS date/time functions */
-/***********************************/
-
-#if defined(_WIN32)
-	#include <windows.h>	/* SYSTEMTIME and GetLocalTime() */
-	#include <time.h>	/* _mkgmtime */
-#else
-	#include <sys/time.h>	/* stuct timeval, gettimeofday() */
-#endif
-
-void xp_getdate(struct date* nyd)
-{
-	time_t tim;
-	struct tm dte;
-
-	tim=time(NULL);
-	localtime_r(&tim,&dte);
-	nyd->da_year=dte.tm_year+1900;
-	nyd->da_day=dte.tm_mday;
-	nyd->da_mon=dte.tm_mon+1;
-}
-
-void gettime(struct time* nyt)
-{
-#if defined(_WIN32)
-	SYSTEMTIME systime;
-
-	GetLocalTime(&systime);
-	nyt->ti_hour=(unsigned char)systime.wHour;
-	nyt->ti_min=(unsigned char)systime.wMinute;
-	nyt->ti_sec=(unsigned char)systime.wSecond;
-	nyt->ti_hund=systime.wMilliseconds/10;
-#else	/* !Win32 (e.g. Unix) */
-	struct tm dte;
-	time_t t;
-	struct timeval tim;
-
-	gettimeofday(&tim, NULL);
-	t=tim.tv_sec;
-	localtime_r(&t,&dte);
-	nyt->ti_min=dte.tm_min;
-	nyt->ti_hour=dte.tm_hour;
-	nyt->ti_sec=dte.tm_sec;
-	nyt->ti_hund=tim.tv_usec/10000;
-#endif
-}
-
-#endif	/* !Borland */
-
-#if !defined(__unix__)
-
-/****************************************************************************/
-/* Win32 implementations of the recursive (thread-safe) versions of std C	*/
-/* time functions (gmtime, localtime, ctime, and asctime) used in Unix.		*/
-/* The native Win32 versions of these functions are already thread-safe.	*/
-/****************************************************************************/
-
-struct tm* gmtime_r(const time_t* t, struct tm* tm)
-{
-	struct tm* tmp = gmtime(t);
-
-	if(tmp==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-struct tm* localtime_r(const time_t* t, struct tm* tm)
-{
-	struct tm* tmp = localtime(t);
-
-	if(tmp==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-char* ctime_r(const time_t *t, char *buf)
-{
-	char* p = ctime(t);
-
-	if(p==NULL)
-		return(NULL);
-
-	strcpy(buf,p);
-	return(buf);
-}
-
-char* asctime_r(const struct tm *tm, char *buf)
-{
-	char* p = asctime(tm);
-
-	if(p==NULL)
-		return(NULL);
-
-	strcpy(buf,p);
-	return(buf);
-}
-
-#endif	/* !defined(__unix__) */
diff --git a/xpdev/datewrap.h b/xpdev/datewrap.h
deleted file mode 100644
index c57cd94..0000000
--- a/xpdev/datewrap.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Wrappers for non-standard date and time functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DATEWRAP_H_
-#define _DATEWRAP_H_
-
-#include "genwrap.h"	/* time_t */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Return difference (in seconds) in time() result from standard (0 on success) */
-DLLEXPORT time_t		checktime(void);
-
-/* Implementation of mktime()/timegm() that handles common tm element conversions for you */
-DLLEXPORT time_t		sane_mktime(struct tm*);
-DLLEXPORT time_t		sane_timegm(struct tm*);
-
-/* Legacy (32-bit time_t) versions of time() and mktime() */
-DLLEXPORT time32_t		time32(time32_t* tp);
-DLLEXPORT time32_t		mktime32(struct tm*);
-DLLEXPORT struct tm*	localtime32(const time32_t* t, struct tm* tm);
-
-/*********************************************************************************/
-/* Win32 implementations of recursive (thread-safe) std C time functions on Unix */
-/*********************************************************************************/
-
-#if !defined(__unix__)	
-
-	#include <time.h>		/* time_t, etc. */
-
-	DLLEXPORT struct tm*    gmtime_r(const time_t* t, struct tm* tm);
-	DLLEXPORT struct tm*    localtime_r(const time_t* t, struct tm* tm);
-	DLLEXPORT char*	        ctime_r(const time_t *t, char *buf);
-	DLLEXPORT char*	        asctime_r(const struct tm *tm, char *buf);
-
-#endif
-
-/* Microsoft's equivalent of GLIBC/BSD timegm() */
-#if defined(_MSC_VER) || defined(__MINGW32__)
-	#define timegm _mkgmtime
-#endif
-
-/***********************************/
-/* Borland DOS date/time functions */
-/***********************************/
-
-#if defined(__BORLANDC__)
-
-/* Borland C++ doesn't come with a timegm() or mkgmtime() equivalent */
-#define timegm	mktime
-
-#include <dos.h>
-
-#else 
-
-struct date {
-	short da_year;
-	char  da_day;
-	char  da_mon;
-};
-
-struct time {
-	unsigned char ti_min;
-	unsigned char ti_hour;
-	unsigned char ti_hund;
-	unsigned char ti_sec;
-};
-
-#define getdate(x)	xp_getdate(x)
-DLLEXPORT void	xp_getdate(struct date*);
-DLLEXPORT void	gettime(struct time*);
-
-#endif	/* !Borland */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/dirwrap.c b/xpdev/dirwrap.c
deleted file mode 100644
index 1727adf..0000000
--- a/xpdev/dirwrap.c
+++ /dev/null
@@ -1,1231 +0,0 @@
-/* Directory-related system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strrchr */
-
-#if defined(_WIN32)
-
-	#include <windows.h>	/* WINAPI, etc */
-	#include <io.h>			/* _findfirst */
-
-#elif defined __unix__
-
-	#include <unistd.h>		/* usleep */
-	#include <fcntl.h>		/* O_NOCCTY */
-	#include <ctype.h>		/* toupper */
-	#include <sys/param.h>
-
-	#if defined(BSD)
-		#include <sys/mount.h>
-	#endif
-	#if defined(__FreeBSD__)
-		#include <sys/kbio.h>
-	#endif
-	#if defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 300000000 /* NetBSD 3.0 */)
-		#include <sys/statvfs.h>
-	#endif
-
-	#include <sys/ioctl.h>	/* ioctl */
-
-	#if defined(__GLIBC__)		/* actually, BSD, but will work for now */
-		#include <sys/vfs.h>    /* statfs() */
-	#endif
-
-	#if defined(__solaris__)
-		#include <sys/statvfs.h>
-	#endif
-
-#endif /* __unix__ */
-
-#if defined(__WATCOMC__)
-	#include <dos.h>
-#endif
-
-#include <sys/types.h>	/* _dev_t */
-
-#include <stdio.h>		/* sprintf */
-#include <stdlib.h>		/* rand */
-#include <errno.h>		/* ENOENT definitions */
-
-#include "genwrap.h"	/* strupr/strlwr */
-#include "dirwrap.h"
-#include "filewrap.h"	/* stat */
-
-#if !defined(S_ISDIR)
-	#define S_ISDIR(x)	((x)&S_IFDIR)
-#endif
-
-/****************************************************************************/
-/* Return the filename portion of a full pathname							*/
-/****************************************************************************/
-char* getfname(const char* path)
-{
-	const char* fname;
-	const char* bslash;
-
-	fname=strrchr(path,'/');
-	bslash=strrchr(path,'\\');
-	if(bslash>fname)
-		fname=bslash;
-	if(fname!=NULL)
-		fname++;
-	else
-		fname=(char*)path;
-	return((char*)fname);
-}
-
-/****************************************************************************/
-/* Return the filename or last directory portion of a full pathname			*/
-/* A directory pathname is expected to end in a '/'							*/
-/****************************************************************************/
-char* getdirname(const char* path)
-{
-	char* last = lastchar(path);
-	if(*last == '/') {
-		if(last == path)
-			return last;
-		for(last--; last >= path; last--) {
-			if(IS_PATH_DELIM(*last))
-				return last + 1;
-		}
-		return (char*)path;
-	}
-	return getfname(path);
-}
-
-/****************************************************************************/
-/* Return a pointer to a file's extension/suffix (beginning with '.')		*/
-/****************************************************************************/
-char* getfext(const char* path)
-{
-	char *fname;
-	char *fext;
-
-	fname=getfname(path);
-	fext=strrchr(fname,'.');
-	if(fext==NULL || fext==fname)
-		return(NULL);
-	return(fext);
-}
-
-/****************************************************************************/
-/* Break a path name into components.										*/
-/****************************************************************************/
-#if defined(__unix__)
-void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext)
-{
-	char*	p;
-
-	ext[0]=0;
-	drive[0]=0;			/* no drive letters on Unix */
-
-	snprintf(dir, MAX_PATH+1, "%s", path);	/* Optional directory path, including trailing slash. */
-	p=getfname(dir);
-	snprintf(fname, MAX_PATH+1, "%s", p);	/* Base filename (no extension) */
-	if(p==dir)
-		dir[0]=0;		/* no directory specified in path */
-	else
-		*p=0;			/* truncate dir at filename */
-	p=getfext(fname);
-	if(p!=NULL) {
-		snprintf(ext, MAX_PATH+1, "%s", p);	/* Optional filename extension, including leading period (.) */
-		*p=0;
-	}
-}
-#endif
-
-/****************************************************************************/
-/* Win32 (minimal) implementation of POSIX.2 glob() function				*/
-/* This code _may_ work on other DOS-based platforms (e.g. OS/2)			*/
-/****************************************************************************/
-#if !defined(__unix__)
-static int __cdecl glob_compare( const void *arg1, const void *arg2 )
-{
-   /* Compare all of both strings: */
-   return strcmp( * ( char** ) arg1, * ( char** ) arg2 );
-}
-
-#if defined(__BORLANDC__)
-	#pragma argsused
-#endif
-
-#if defined(__WATCOMC__)
-
-int	glob(const char *pattern, int flags, void* unused, glob_t* glob)
-{
-    struct	find_t ff;
-	size_t	found=0;
-	char	path[MAX_PATH+1];
-	char*	p;
-	char**	new_pathv;
-
-	if(!(flags&GLOB_APPEND)) {
-		glob->gl_pathc=0;
-		glob->gl_pathv=NULL;
-	}
-
-	if(_dos_findfirst((char*)pattern,(flags&GLOB_PERIOD) ? _A_HIDDEN : _A_NORMAL,&ff)!=0)
-		return(GLOB_NOMATCH);
-
-	do {
-		if((flags&GLOB_PERIOD || ff.name[0]!='.') &&
-			(!(flags&GLOB_ONLYDIR) || ff.attrib&_A_SUBDIR)) {
-			if((new_pathv=realloc(glob->gl_pathv
-				,(glob->gl_pathc+1)*sizeof(char*)))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			glob->gl_pathv=new_pathv;
-
-			/* build the full pathname */
-			SAFECOPY(path,pattern);
-			p=getfname(path);
-			*p=0;
-			strcat(path,ff.name);
-
-			if((glob->gl_pathv[glob->gl_pathc]=malloc(strlen(path)+2))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			strcpy(glob->gl_pathv[glob->gl_pathc],path);
-			if(flags&GLOB_MARK && ff.attrib&_A_SUBDIR)
-				strcat(glob->gl_pathv[glob->gl_pathc],"/");
-
-			glob->gl_pathc++;
-			found++;
-		}
-	} while(_dos_findnext(&ff)==0);
-	_dos_findclose(&ff);
-
-	if(found==0)
-		return(GLOB_NOMATCH);
-
-	if(!(flags&GLOB_NOSORT)) {
-		qsort(glob->gl_pathv,found,sizeof(char*),glob_compare);
-	}
-
-	return(0);	/* success */
-}
-
-#else
-
-int	glob(const char *pattern, int flags, void* unused, glob_t* glob)
-{
-    struct	_finddata_t ff;
-	long	ff_handle;
-	size_t	found=0;
-	char	path[MAX_PATH+1];
-	char*	p;
-	char**	new_pathv;
-
-	if(!(flags&GLOB_APPEND)) {
-		glob->gl_pathc=0;
-		glob->gl_pathv=NULL;
-	}
-
-	ff_handle=_findfirst((char*)pattern,&ff);
-	while(ff_handle!=-1) {
-		if((flags&GLOB_PERIOD || (ff.name[0]!='.' && !(ff.attrib&_A_HIDDEN))) &&
-			(!(flags&GLOB_ONLYDIR) || ff.attrib&_A_SUBDIR)) {
-			if((new_pathv=(char**)realloc(glob->gl_pathv
-				,(glob->gl_pathc+1)*sizeof(char*)))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			glob->gl_pathv=new_pathv;
-
-			/* build the full pathname */
-			SAFECOPY(path,pattern);
-			p=getfname(path);
-			*p=0;
-			SAFECAT(path,ff.name);
-
-			if((glob->gl_pathv[glob->gl_pathc]=(char*)malloc(strlen(path)+2))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			strcpy(glob->gl_pathv[glob->gl_pathc],path);
-			if(flags&GLOB_MARK && ff.attrib&_A_SUBDIR)
-				strcat(glob->gl_pathv[glob->gl_pathc],"/");
-
-			glob->gl_pathc++;
-			found++;
-		}
-		if(_findnext(ff_handle, &ff)!=0) {
-			_findclose(ff_handle);
-			ff_handle=-1;
-		}
-	}
-
-	if(found==0)
-		return(GLOB_NOMATCH);
-
-	if(!(flags&GLOB_NOSORT)) {
-		qsort(glob->gl_pathv,found,sizeof(char*),glob_compare);
-	}
-
-	return(0);	/* success */
-}
-
-#endif
-
-void globfree(glob_t* glob)
-{
-	size_t i;
-
-	if(glob==NULL)
-		return;
-
-	if(glob->gl_pathv!=NULL) {
-		for(i=0;i<glob->gl_pathc;i++)
-			if(glob->gl_pathv[i]!=NULL)
-				free(glob->gl_pathv[i]);
-
-		free(glob->gl_pathv);
-		glob->gl_pathv=NULL;
-	}
-	glob->gl_pathc=0;
-}
-
-#endif /* !defined(__unix__) */
-
-/****************************************************************************/
-/* Returns number of files and/or sub-directories in directory (path)		*/
-/* Similar, but not identical, to getfilecount()							*/
-/****************************************************************************/
-long getdirsize(const char* path, BOOL include_subdirs, BOOL subdir_only)
-{
-	char		match[MAX_PATH+1];
-	glob_t		g;
-	unsigned	gi;
-	long		count=0;
-
-	if(!isdir(path))
-		return -1;
-
-	SAFECOPY(match,path);
-	backslash(match);
-	SAFECAT(match,ALLFILES);
-	if (glob(match,GLOB_MARK,NULL,&g) != 0)
-		return 0;
-	if(include_subdirs && !subdir_only)
-		count=g.gl_pathc;
-	else
-		for(gi=0;gi<g.gl_pathc;gi++) {
-			if(*lastchar(g.gl_pathv[gi])=='/') {
-				if(!include_subdirs)
-					continue;
-			} else
-				if(subdir_only)
-					continue;
-			count++;
-		}
-	globfree(&g);
-	return(count);
-}
-
-/****************************************************************************/
-/* POSIX directory operations using Microsoft _findfirst/next API.			*/
-/****************************************************************************/
-#if defined(_MSC_VER) || defined(__DMC__)
-DIR* opendir(const char* dirname)
-{
-	DIR*	dir;
-
-	if((dir=(DIR*)calloc(1,sizeof(DIR)))==NULL) {
-		errno=ENOMEM;
-		return(NULL);
-	}
-	sprintf(dir->filespec,"%.*s",sizeof(dir->filespec)-5,dirname);
-	if(*dir->filespec && dir->filespec[strlen(dir->filespec)-1]!='\\')
-		strcat(dir->filespec,"\\");
-	strcat(dir->filespec,"*.*");
-	dir->handle=_findfirst(dir->filespec,&dir->finddata);
-	if(dir->handle==-1) {
-		errno=ENOENT;
-		free(dir);
-		return(NULL);
-	}
-	return(dir);
-}
-struct dirent* readdir(DIR* dir)
-{
-	if(dir==NULL)
-		return(NULL);
-	if(dir->end==TRUE)
-		return(NULL);
-	if(dir->handle==-1)
-		return(NULL);
-	sprintf(dir->dirent.d_name,"%.*s",sizeof(struct dirent)-1,dir->finddata.name);
-	if(_findnext(dir->handle,&dir->finddata)!=0)
-		dir->end=TRUE;
-	return(&dir->dirent);
-}
-int closedir (DIR* dir)
-{
-	if(dir==NULL)
-		return(-1);
-	_findclose(dir->handle);
-	free(dir);
-	return(0);
-}
-void rewinddir(DIR* dir)
-{
-	if(dir==NULL)
-		return;
-	_findclose(dir->handle);
-	dir->end=FALSE;
-	dir->handle=_findfirst(dir->filespec,&dir->finddata);
-}
-#endif /* defined(_MSC_VER) */
-
-/****************************************************************************/
-/* Returns the creation time of the file 'filename' in time_t format		*/
-/****************************************************************************/
-time_t fcdate(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return -1;
-
-	return st.st_ctime;
-}
-
-/****************************************************************************/
-/* Returns the time/date of the file in 'filename' in time_t (unix) format  */
-/****************************************************************************/
-time_t fdate(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st)!=0)
-		return(-1);
-
-	return(st.st_mtime);
-}
-
-/****************************************************************************/
-/* Change the access and modification times for specified filename			*/
-/****************************************************************************/
-int setfdate(const char* filename, time_t t)
-{
-	struct utimbuf ut;
-
-	memset(&ut,0,sizeof(ut));
-
-	ut.actime=t;
-	ut.modtime=t;
-
-	return(utime(filename,&ut));
-}
-
-/****************************************************************************/
-/* Returns the length of the file in 'filename'                             */
-/* or -1 if the file doesn't exist											*/
-/****************************************************************************/
-off_t flength(const char *filename)
-{
-#if defined(__BORLANDC__) && !defined(__unix__)	/* stat() doesn't work right */
-
-	long	handle;
-	struct _finddata_t f;
-
-	if((handle=_findfirst((char*)filename,&f))==-1)
-		return(-1);
-
- 	_findclose(handle);
-
-	return(f.size);
-
-#else
-
-	struct stat st;
-
-	if(stat(filename, &st)!=0)
-		return(-1);
-
-	return(st.st_size);
-
-#endif
-}
-
-
-/****************************************************************************/
-/* Checks the file system for the existence of a file.						*/
-/* Returns TRUE if it exists, FALSE if it doesn't.                          */
-/* 'filename' may *NOT* contain wildcards!									*/
-/****************************************************************************/
-static BOOL fnameexist(const char *filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return FALSE;
-
-	if(S_ISDIR(st.st_mode))
-		return FALSE;
-
-	return TRUE;
-}
-
-/****************************************************************************/
-/* Checks the file system for the existence of one or more files.			*/
-/* Returns TRUE if it exists, FALSE if it doesn't.                          */
-/* 'filespec' may contain wildcards!										*/
-/****************************************************************************/
-BOOL fexist(const char *filespec)
-{
-#if defined(_WIN32)
-
-	long	handle;
-	struct _finddata_t f;
-	BOOL	found;
-
-	if(!strchr(filespec,'*') && !strchr(filespec,'?'))
-		return(fnameexist(filespec));
-
-	if((handle=_findfirst((char*)filespec,&f))==-1)
-		return(FALSE);
-	found=TRUE;
-	while(f.attrib&_A_SUBDIR)
-		if(_findnext(handle,&f)!=0) {
-			found=FALSE;
-			break;
-		}
-
- 	_findclose(handle);
-
-	return(found);
-
-#else /* Unix or OS/2 */
-
-	/* portion by cmartin */
-
-	glob_t g;
-    int c;
-
-	if(!strchr(filespec,'*') && !strchr(filespec,'?'))
-		return(fnameexist(filespec));
-
-    /* start the search */
-    glob(filespec, GLOB_MARK | GLOB_NOSORT, NULL, &g);
-
-    if (!g.gl_pathc) {
-	    /* no results */
-    	globfree(&g);
-    	return FALSE;
-    }
-
-    /* make sure it's not a directory */
-	c = g.gl_pathc;
-    while (c--) {
-    	if (*lastchar(g.gl_pathv[c]) != '/') {
-        	globfree(&g);
-            return TRUE;
-        }
-    }
-
-    globfree(&g);
-    return FALSE;
-
-#endif
-}
-
-/****************************************************************************/
-/* Fixes upper/lowercase filename for Unix file systems						*/
-/****************************************************************************/
-BOOL fexistcase(char *path)
-{
-#if defined(_WIN32)
-
-	char*	fname;
-	long	handle;
-	struct _finddata_t f;
-
-	if(access(path, F_OK)==-1 && !strchr(path,'*') && !strchr(path,'?'))
-		return(FALSE);
-
-	if((handle=_findfirst((char*)path,&f))==-1)
-		return(FALSE);
-
- 	_findclose(handle);
-
- 	if(f.attrib&_A_SUBDIR)
-		return(FALSE);
-
-	fname=getfname(path);	/* Find filename in path */
-	strcpy(fname,f.name);	/* Correct filename */
-
-	return(TRUE);
-
-#else /* Unix or OS/2 */
-
-	char globme[MAX_PATH*4+1];
-	char fname[MAX_PATH+1];
-	char tmp[5];
-	char *p;
-	int  i;
-	glob_t	glb;
-
-	if(path[0]==0)		/* work around glibc bug 574274 */
-		return FALSE;
-
-	if(!strchr(path,'*') && !strchr(path,'?') && fnameexist(path))
-		return(TRUE);
-
-	SAFECOPY(globme,path);
-	p=getfname(globme);
-	SAFECOPY(fname,p);
-	*p=0;
-	for(i=0;fname[i];i++)  {
-		if(IS_ALPHA(fname[i]))
-			sprintf(tmp,"[%c%c]",toupper(fname[i]),tolower(fname[i]));
-		else
-			sprintf(tmp,"%c",fname[i]);
-		strncat(globme,tmp,MAX_PATH*4);
-	}
-#if 0
-	if(strcspn(path,"?*")!=strlen(path))  {
-		sprintf(path,"%.*s",MAX_PATH,globme);
-		return(fexist(path));
-	}
-#endif
-
-	if(glob(globme,GLOB_MARK,NULL,&glb) != 0)
-		return(FALSE);
-
-	if(glb.gl_pathc>0)  {
-		for(i=0;i<glb.gl_pathc;i++)  {
-			if(*lastchar(glb.gl_pathv[i]) != '/')
-				break;
-		}
-		if(i<glb.gl_pathc)  {
-			sprintf(path,"%.*s",MAX_PATH,glb.gl_pathv[i]);
-			globfree(&glb);
-			return TRUE;
-		}
-	}
-
-	globfree(&glb);
-	return FALSE;
-
-#endif
-}
-
-/****************************************************************************/
-/* Returns TRUE if the filename specified is a directory					*/
-/****************************************************************************/
-BOOL isdir(const char *filename)
-{
-	char	path[MAX_PATH+1];
-	char*	p;
-	struct stat st;
-
-	SAFECOPY(path,filename);
-
-	p=lastchar(path);
-	if(p!=path && IS_PATH_DELIM(*p)) {	/* chop off trailing slash */
-#if !defined(__unix__)
-		if(*(p-1)!=':')		/* Don't change C:\ to C: */
-#endif
-			*p=0;
-	}
-
-#if defined(__BORLANDC__) && !defined(__unix__)	/* stat() doesn't work right */
-	if(stat(path, &st)!=0 || strchr(path,'*')!=NULL || strchr(path,'?')!=NULL)
-#else
-	if(stat(path, &st)!=0)
-#endif
-		return(FALSE);
-
-	return(S_ISDIR(st.st_mode) ? TRUE : FALSE);
-}
-
-/****************************************************************************/
-/* Returns the attributes (mode) for specified 'filename' or -1 on failure.	*/
-/* The return value on Windows is *not* compatible with chmod().			*/
-/****************************************************************************/
-int getfattr(const char* filename)
-{
-#if defined(_WIN32)
-	long handle;
-	struct _finddata_t	finddata;
-
-	if((handle=_findfirst((char*)filename,&finddata))==-1) {
-		errno=ENOENT;
-		return(-1);
-	}
-	_findclose(handle);
-	return(finddata.attrib);
-#else
-	struct stat st;
-
-	if(stat(filename, &st)!=0) {
-		errno=ENOENT;
-		return(-1L);
-	}
-
-	return(st.st_mode);
-#endif
-}
-
-/****************************************************************************/
-/* Returns the mode / type flags for specified 'filename'					*/
-/* The return value *is* compatible with chmod(), or -1 upon failure.		*/
-/****************************************************************************/
-int getfmode(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return -1;
-
-	return st.st_mode;
-}
-
-
-#ifdef __unix__
-int removecase(const char *path)
-{
-	char inpath[MAX_PATH+1];
-	char fname[MAX_PATH*4+1];
-	char tmp[5];
-	char *p;
-	int  i;
-
-	if(strchr(path,'?') || strchr(path,'*'))
-		return(-1);
-	SAFECOPY(inpath,path);
-	p=getfname(inpath);
-	fname[0]=0;
-	for(i=0;p[i];i++)  {
-		if(IS_ALPHA(p[i]))
-			sprintf(tmp,"[%c%c]",toupper(p[i]),tolower(p[i]));
-		else
-			sprintf(tmp,"%c",p[i]);
-		strncat(fname,tmp,MAX_PATH*4);
-	}
-	*p=0;
-
-	return(delfiles(inpath,fname,0) >=1 ? 0 : -1);
-}
-#endif
-
-/****************************************************************************/
-/* Deletes all files in dir 'path' that match file spec 'spec'              */
-/* Optionally, keep the last so many files (sorted by name)                 */
-/* Returns number of files deleted or negative on error						*/
-/****************************************************************************/
-long delfiles(const char *inpath, const char *spec, size_t keep)
-{
-	char	*path;
-	char	lastch;
-	size_t	i;
-    ulong	files = 0;
-	long	errors = 0;
-	glob_t	g;
-	size_t	inpath_len=strlen(inpath);
-
-	if(inpath_len==0)
-		lastch=0;
-	else
-		lastch=inpath[inpath_len-1];
-	path=(char *)malloc(inpath_len+1/*Delim*/+strlen(spec)+1/*Terminator*/);
-	if(path==NULL)
-		return -1;
-	if(!IS_PATH_DELIM(lastch) && lastch)
-		sprintf(path,"%s%c",inpath,PATH_DELIM);
-	else
-		strcpy(path,inpath);
-	strcat(path,spec);
-	glob(path,0,NULL,&g);
-	free(path);
-	if(keep >= g.gl_pathc)
-		return 0;
-	for(i = 0; i < g.gl_pathc && files < g.gl_pathc - keep; i++) {
-		if(isdir(g.gl_pathv[i]))
-			continue;
-		(void)CHMOD(g.gl_pathv[i],S_IWRITE);	/* In case it's been marked RDONLY */
-		if(remove(g.gl_pathv[i])==0)
-			files++;
-		else
-			errors++;
-	}
-	globfree(&g);
-	if(errors)
-		return -errors;
-	return files;
-}
-
-/****************************************************************************/
-/* Returns number of files matching 'inpath'								*/
-/* Similar, but not identical, to getdirsize(), e.g. subdirs never counted	*/
-/****************************************************************************/
-ulong getfilecount(const char *inpath)
-{
-	char path[MAX_PATH+1];
-	glob_t	g;
-	uint	gi;
-	ulong	count = 0;
-
-	SAFECOPY(path, inpath);
-	if(isdir(path))
-		backslash(path);
-	if(IS_PATH_DELIM(*lastchar(path)))
-		SAFECAT(path, ALLFILES);
-	if(glob(path, GLOB_MARK, NULL, &g))
-		return 0;
-	for(gi = 0; gi < g.gl_pathc; ++gi) {
-		if(*lastchar(g.gl_pathv[gi]) == '/')
-			continue;
-		count++;
-	}
-	globfree(&g);
-	return count;
-}
-
-/****************************************************************************/
-/* Returns number of bytes used by file(s) matching 'inpath'				*/
-/****************************************************************************/
-uint64_t getfilesizetotal(const char *inpath)
-{
-	char path[MAX_PATH+1];
-	glob_t	g;
-	uint	gi;
-	off_t	size;
-	uint64_t total = 0;
-
-	SAFECOPY(path, inpath);
-	if(isdir(path))
-		backslash(path);
-	if(IS_PATH_DELIM(*lastchar(path)))
-		SAFECAT(path, ALLFILES);
-	if(glob(path, GLOB_MARK, NULL, &g))
-		return 0;
-	for(gi = 0; gi < g.gl_pathc; ++gi) {
-		if(*lastchar(g.gl_pathv[gi]) == '/')
-			continue;
-		size = flength(g.gl_pathv[gi]);
-		if(size >= 1)
-			total += size;
-	}
-	globfree(&g);
-	return total;
-}
-
-/****************************************************************************/
-/* Return free disk space in bytes (up to a maximum of 4GB)					*/
-/****************************************************************************/
-#if defined(_WIN32)
-typedef BOOL(WINAPI * GetDiskFreeSpaceEx_t)
-	(LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
-
-static int bit_num(ulong val)
-{
-	int i;
-
-	for(i=31;i>=0;i--)
-		if(val&(1<<i))
-			return(i);
-
-	return(-1);
-}
-#endif
-
-/* Unit should be a power-of-2 (e.g. 1024 to report kilobytes) or 1 (to report bytes) */
-static ulong getdiskspace(const char* path, ulong unit, BOOL freespace)
-{
-#if defined(_WIN32)
-	char			root[16];
-	DWORD			TotalNumberOfClusters;
-	DWORD			NumberOfFreeClusters;
-	DWORD			BytesPerSector;
-	DWORD			SectorsPerCluster;
-	ULARGE_INTEGER	avail;
-	ULARGE_INTEGER	size;
-	static HINSTANCE hK32;
-	GetDiskFreeSpaceEx_t GetDiskFreeSpaceEx;
-
-	if(hK32 == NULL)
-		hK32 = LoadLibrary("KERNEL32");
-	GetDiskFreeSpaceEx
-		= (GetDiskFreeSpaceEx_t)GetProcAddress(hK32,"GetDiskFreeSpaceExA");
-
-	if (GetDiskFreeSpaceEx!=NULL) {	/* Windows 95-OSR2 or later */
-		if(!GetDiskFreeSpaceEx(
-			path,		/* pointer to the directory name */
-			&avail,		/* receives the number of bytes on disk avail to the caller */
-			&size,		/* receives the number of bytes on disk */
-			NULL))		/* receives the free bytes on disk */
-			return(0);
-
-		if(freespace)
-			size=avail;
-
-		if(unit>1)
-			size.QuadPart=Int64ShrlMod32(size.QuadPart,bit_num(unit));
-
-#if defined(_ANONYMOUS_STRUCT)
-		if(size.HighPart)
-#else
-		if(size.u.HighPart)
-#endif
-			return(0xffffffff);	/* 4GB max */
-
-#if defined(_ANONYMOUS_STRUCT)
-		return(size.LowPart);
-#else
-		return(size.u.LowPart);
-#endif
-	}
-
-	/* Windows 95 (old way), limited to 2GB */
-	sprintf(root,"%.3s",path);
-	if(!GetDiskFreeSpace(
-		root,					/* pointer to root path */
-		(PDWORD)&SectorsPerCluster,		/* pointer to sectors per cluster */
-		(PDWORD)&BytesPerSector,		/* pointer to bytes per sector */
-		(PDWORD)&NumberOfFreeClusters,	/* pointer to number of free clusters */
-		(PDWORD)&TotalNumberOfClusters  /* pointer to total number of clusters */
-		))
-		return(0);
-
-	if(freespace)
-		TotalNumberOfClusters = NumberOfFreeClusters;
-	if(unit>1)
-		TotalNumberOfClusters/=unit;
-	return(TotalNumberOfClusters*SectorsPerCluster*BytesPerSector);
-
-
-#elif defined(__solaris__) || (defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 300000000 /* NetBSD 3.0 */))
-
-	struct statvfs fs;
-	unsigned long blocks;
-
-    if (statvfs(path, &fs) < 0)
-    	return 0;
-
-	if(freespace)
-		blocks=fs.f_bavail;
-	else
-		blocks=fs.f_blocks;
-
-	if(unit>1)
-		blocks/=unit;
-    return fs.f_bsize * blocks;
-
-/* statfs is also used under FreeBSD (Though it *supports* statvfs() now too) */
-#elif defined(__GLIBC__) || defined(BSD)
-
-	struct statfs fs;
-	unsigned long blocks;
-
-	if(statfs(path, &fs) < 0)
-    	return 0;
-
-	if(freespace)
-		blocks=fs.f_bavail;
-	else
-		blocks=fs.f_blocks;
-
-	if(unit>1)
-		blocks/=unit;
-    return fs.f_bsize * blocks;
-
-#else
-
-	fprintf(stderr,"\n*** !Missing getfreediskspace implementation ***\n");
-	return(0);
-
-#endif
-}
-
-ulong getfreediskspace(const char* path, ulong unit)
-{
-	return getdiskspace(path, unit, /* freespace? */TRUE);
-}
-
-ulong getdisksize(const char* path, ulong unit)
-{
-	return getdiskspace(path, unit, /* freespace? */FALSE);
-}
-
-/****************************************************************************/
-/* Resolves //, /./, and /../ in a path. Should work identically to Windows */
-/****************************************************************************/
-#if defined(__unix__)
-char * _fullpath(char *target, const char *path, size_t size)  {
-	char	*out;
-	char	*p;
-	BOOL	target_alloced=FALSE;
-
-	if(target==NULL)  {
-		if((target=malloc(MAX_PATH+1))==NULL) {
-			return(NULL);
-		}
-		target_alloced=TRUE;
-	}
-	out=target;
-	*out=0;
-
-	if(*path != '/')  {
-		if(*path == '~') {
-			p=getenv("HOME");
-			if(p==NULL || strlen(p)+strlen(path)>=size) {
-				if(target_alloced)
-					free(target);
-				return(NULL);
-			}
-			strcpy(target,p);
-			out=strrchr(target,'\0');
-			path++;
-		}
-		else {
-			p=getcwd(NULL,size);
-			if(p==NULL || strlen(p)+strlen(path)>=size) {
-				if(target_alloced)
-					free(target);
-				return(NULL);
-			}
-			strcpy(target,p);
-			free(p);
-			out=strrchr(target,'\0');
-			*(out++)='/';
-			*out=0;
-			out--;
-		}
-	}
-	strncat(target,path,size-1);
-
-/*	if(stat(target,&sb))
-		return(NULL);
-	if(sb.st_mode&S_IFDIR)
-		strcat(target,"/"); */
-
-	for(;*out;out++) {
-		while(*out=='/') {
-			if(*(out+1)=='/')
-				memmove(out,out+1,strlen(out));
-			else if(*(out+1)=='.' && (*(out+2)=='/' || *(out+2)==0))
-				memmove(out,out+2,strlen(out)-1);
-			else if(*(out+1)=='.' && *(out+2)=='.' && (*(out+3)=='/' || *(out+3)==0))  {
-				*out=0;
-				p=strrchr(target,'/');
-				if(p==NULL)
-					p=target;
-				memmove(p,out+3,strlen(out+3)+1);
-				out=p;
-			}
-			else  {
-				out++;
-			}
-		}
-		if (!*out)
-			break;
-	}
-	return(target);
-}
-#endif
-
-/****************************************************************************/
-/* Adds a trailing slash/backslash (path delimiter) on path strings 		*/
-/****************************************************************************/
-char* backslash(char* path)
-{
-	char* p;
-
-	p=lastchar(path);
-
-	if(*p && !IS_PATH_DELIM(*p)) {
-#if defined(__unix__)
-		/* Convert trailing backslash to forwardslash on *nix */
-		if(*p!='\\')
-#endif
-			p++;
-		*p=PATH_DELIM;
-		*(++p)=0;
-	}
-	return(path);
-}
-
-/****************************************************************************/
-/* Returns true if the specified filename an absolute pathname				*/
-/****************************************************************************/
-BOOL isabspath(const char *filename)
-{
-	char path[MAX_PATH+1];
-
-	return(stricmp(filename,FULLPATH(path,filename,sizeof(path)))==0);
-}
-
-/****************************************************************************/
-/* Returns true if the specified filename is a full ("rooted") path			*/
-/****************************************************************************/
-BOOL isfullpath(const char* filename)
-{
-	return(filename[0]=='/'
-#ifdef WIN32
-		|| filename[0]=='\\' || (IS_ALPHA(filename[0]) && filename[1]==':')
-#endif
-		);
-}
-
-/****************************************************************************/
-/* Matches file name against filespec										*/
-/* Optionally not allowing * to match PATH_DELIM (for paths)				*/
-/****************************************************************************/
-
-BOOL wildmatch(const char *fname, const char *spec, BOOL path, BOOL case_sensitive)
-{
-	char *specp;
-	char *fnamep;
-	char *wildend;
-
-	specp=(char *)spec;
-	fnamep=(char *)fname;
-	for(;;specp++, fnamep++) {
-		switch(*specp) {
-			case '?':
-				if(!(*fnamep))
-					return(FALSE);
-				break;
-			case 0:
-				if(!*fnamep)
-					return(TRUE);
-				break;
-			case '*':
-				while(*specp=='*')
-					specp++;
-				if(path) {
-					for(wildend=fnamep; *wildend; wildend++) {
-						if(IS_PATH_DELIM(*wildend)) {
-							wildend--;
-							break;
-						}
-					}
-				}
-				else
-					wildend=strchr(fnamep, 0);
-				for(;wildend >= fnamep;wildend--) {
-					if(wildmatch(wildend, specp, path, case_sensitive))
-						return(TRUE);
-				}
-				return(FALSE);
-			default:
-				if(case_sensitive && *specp != *fnamep)
-					return(FALSE);
-				if((!case_sensitive) && toupper(*specp) != toupper(*fnamep))
-					return(FALSE);
-		}
-		if(!(*specp && *fnamep))
-			break;
-	}
-	while(*specp=='*')
-		specp++;
-	if(*specp==*fnamep)
-		return(TRUE);
-	if((!case_sensitive) && toupper(*specp) == toupper(*fnamep))
-		return(TRUE);
-	return(FALSE);
-}
-
-/****************************************************************************/
-/* Matches file name against filespec, ignoring case						*/
-/****************************************************************************/
-BOOL wildmatchi(const char *fname, const char *spec, BOOL path)
-{
-	return wildmatch(fname, spec, path, /* case_sensitive: */FALSE);
-}
-
-/****************************************************************************/
-/* Creates all the necessary directories in the specified path				*/
-/****************************************************************************/
-int mkpath(const char* path)
-{
-	const char*	p=path;
-	const char*	tp;
-	const char*	sep=
-#ifdef _WIN32
-		"\\"
-#endif
-		"/";
-	char	dir[MAX_PATH+1];
-	int		result=0;
-
-#ifdef _WIN32
-	if(p[1]==':')	/* Skip drive letter, if specified */
-		p+=2;
-#endif
-
-	while(*p) {
-		SKIP_CHARSET(p,sep);
-		if(*p==0)
-			break;
-		tp=p;
-		FIND_CHARSET(tp,sep);
-		safe_snprintf(dir,sizeof(dir),"%.*s", (int)(tp-path), path);
-		if(!isdir(dir)) {
-			if((result=MKDIR(dir))!=0)
-				break;
-		}
-		p=tp;
-	}
-
-	return(result);
-}
-
-#if !defined _WIN32
-BOOL CopyFile(const char* src, const char* dest, BOOL failIfExists)
-{
-	uint8_t	buf[256 * 1024];
-	FILE*	in;
-	FILE*	out;
-	BOOL	success=TRUE;
-
-	if(failIfExists && fexist(dest))
-		return FALSE;
-	if((in=fopen(src,"rb"))==NULL)
-		return FALSE;
-	if((out=fopen(dest,"wb"))==NULL) {
-		fclose(in);
-		return FALSE;
-	}
-
-	time_t	ftime = filetime(fileno(in));
-	while(!feof(in)) {
-		size_t rd = fread(buf, sizeof(uint8_t), sizeof(buf), in);
-		if(rd < 1)
-			break;
-		if(fwrite(buf, sizeof(uint8_t), rd, out) != rd) {
-			success = FALSE;
-			break;
-		}
-		MAYBE_YIELD();
-	}
-
-	fclose(in);
-	fclose(out);
-	setfdate(dest,ftime);
-
-	return success;
-}
-#endif
diff --git a/xpdev/dirwrap.h b/xpdev/dirwrap.h
deleted file mode 100644
index dce4345..0000000
--- a/xpdev/dirwrap.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* Directory system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DIRWRAP_H
-#define _DIRWRAP_H
-
-#include <stdlib.h>		/* _fullpath() on Win32 */
-
-#if defined(__unix__)
-	#include <sys/param.h>	/* PATH_MAX */
-#endif
-
-#if defined(INCLUDE_PATHS_H)
-	#include <paths.h>		/* _PATHS_* macros */
-#endif
-
-#include "gen_defs.h"	/* ulong */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define ALLFILES "*"	/* matches all files in a directory */
-
-/****************/
-/* RTL-specific */
-/****************/
-
-#if defined(__unix__)
-
-	#include <sys/types.h>
-	#include <sys/stat.h>
-	#include <glob.h>		/* POSIX.2 directory pattern matching function */
-	#define MKDIR(dir)		mkdir(dir,0777)
-
-	#if defined(__CYGWIN__)
-		#define DLLEXPORT	/* CygWin's glob.h #undef's DLLEXPORT */
-	#endif
-
-#else
-
-	/* Values for the second argument to access.
-	   These may be OR'd together.  */
-	#define R_OK    4               /* Test for read permission.  */
-	#define W_OK    2               /* Test for write permission.  */
-	#define X_OK    1               /* Test for execute permission.  */
-	#define F_OK    0               /* Test for existence.  */
-
-	#include <direct.h>		/* mkdir() */
-
-	#ifdef __WATCOMC__
-		#define MKDIR(dir)		mkdir(dir)
-	#else
-		#define MKDIR(dir)		_mkdir(dir)
-	#endif
-
-	/* glob-compatible findfirst/findnext wrapper */
-
-	typedef struct 
-	{
-			size_t gl_pathc;			/* Count of paths matched so far */
-			char **gl_pathv;			/* List of matched pathnames. */
-			size_t gl_offs;				/* Slots to reserve in 'gl_pathv'. */
-	} glob_t;
-
-	/* Bits set in the FLAGS argument to `glob'.  */
-	#define GLOB_ERR        (1 << 0)	/* Return on read errors.  */
-	#define GLOB_MARK       (1 << 1)	/* Append a slash to each name.  */
-	#define GLOB_NOSORT     (1 << 2)	/* Don't sort the names.  */
-	#define GLOB_DOOFFS     (1 << 3)	/* Insert PGLOB->gl_offs NULLs.  */
-	#define GLOB_NOCHECK    (1 << 4)	/* If nothing matches, return the pattern.  */
-	#define GLOB_APPEND     (1 << 5)	/* Append to results of a previous call.  */
-	#define GLOB_NOESCAPE   (1 << 6)	/* Backslashes don't quote metacharacters.  */
-	#define GLOB_PERIOD     (1 << 7)	/* Leading `.' can be matched by metachars.  */
-	#define GLOB_MAGCHAR    (1 << 8)	/* Set in gl_flags if any metachars seen.  */
-	#define GLOB_ALTDIRFUNC (1 << 9)	/* Use gl_opendir et al functions.  */
-	#define GLOB_BRACE      (1 << 10)	/* Expand "{a,b}" to "a" "b".  */
-	#define GLOB_NOMAGIC    (1 << 11)	/* If no magic chars, return the pattern.  */
-	#define GLOB_TILDE      (1 << 12)	/* Expand ~user and ~ to home directories. */
-	#define GLOB_ONLYDIR    (1 << 13)	/* Match only directories.  */
-	#define GLOB_TILDE_CHECK (1 << 14)	/* Like GLOB_TILDE but return an error
-										  if the user name is not available.  */
-	/* Error returns from `glob'.  */
-	#define GLOB_NOSPACE    1       /* Ran out of memory.  */
-	#define GLOB_ABORTED    2       /* Read error.  */
-	#define GLOB_NOMATCH    3       /* No matches found.  */
-	#define GLOB_NOSYS      4       /* Not implemented.  */
-
-	DLLEXPORT int	glob(const char *pattern, int flags, void* unused, glob_t*);
-	DLLEXPORT void	globfree(glob_t*);
-
-#endif
-
-#define FULLPATH(a,r,l)		_fullpath(a,r,l)
-
-/*****************************/
-/* POSIX Directory Functions */
-/*****************************/
-#if defined(_MSC_VER) || defined(__DMC__)
-	#include <io.h>		/* _finddata_t */
-
-	/* dirent structure returned by readdir().
-	 */
-	struct dirent
-	{	
-		char        d_name[260];	/* filename */
-	};
-
-	/* DIR type returned by opendir().  The members of this structure
-	 * must not be accessed by application programs.
-	 */
-	typedef struct
-	{
-		char				filespec[260];
-		struct dirent		dirent;
-		long				handle;
-		struct _finddata_t	finddata;
-		BOOL				end;		/* End of directory flag */
-	} DIR;
-
-
-	/* Prototypes.
-	 */
-	DLLEXPORT DIR* opendir  (const char *__dirname);
-	DLLEXPORT struct dirent* readdir  (DIR *__dir);
-	DLLEXPORT int closedir (DIR *__dir);
-	DLLEXPORT void rewinddir(DIR *__dir);
-#elif !defined(__WATCOMC__)
-	#include <dirent.h>	/* POSIX directory functions */
-#endif
-
-
-/**********/
-/* Macros */
-/**********/
-
-/* POSIX readdir convenience macro */
-#ifndef DIRENT
-#define DIRENT struct dirent	
-#endif
-
-#if defined(__unix__)
-	#define PATH_DELIM			'/'
-	#define IS_PATH_DELIM(x)	(x=='/')
-
-	/* These may be pre-defined in paths.h (BSD) */
-	#ifndef _PATH_TMP
-	#define _PATH_TMP			"/tmp/"
-	#endif
-	#ifndef _PATH_DEVNULL
-	#define _PATH_DEVNULL		"/dev/null"
-	#endif
-
-#else /* MS-DOS based OS */
-
-	#define PATH_DELIM			'\\'
-	#define IS_PATH_DELIM(x)	((x)=='/' || (x)=='\\')
-	#define _PATH_TMP			getenv("TEMP")
-	#define _PATH_DEVNULL		"NUL"
-
-#endif
-
-#if !defined(MAX_PATH)	/* maximum path length */
-	#if defined MAXPATHLEN
-		#define MAX_PATH MAXPATHLEN	/* clib.h */
-	#elif defined PATH_MAX
-		#define MAX_PATH PATH_MAX
-	#elif defined _MAX_PATH
-		#define MAX_PATH _MAX_PATH
-	#else
-		#define MAX_PATH 260		
-	#endif
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-	#define CHMOD(s,m)		_chmod(s,m)
-#elif defined(__BORLANDC__) && !defined(__unix__)
-	#define CHMOD(p,a)		_rtl_chmod(p,1,a) 	/* _chmod obsolete in 4.x */
-#else	
-	#define CHMOD(s,m)		chmod(s,m)
-#endif
-
-/* General file system wrappers for all platforms and compilers */
-DLLEXPORT BOOL		fexist(const char *filespec);
-DLLEXPORT BOOL		fexistcase(char *filespec);	/* fixes upr/lwr case fname */
-DLLEXPORT off_t		flength(const char *filename);
-DLLEXPORT time_t	fdate(const char *filename);
-DLLEXPORT time_t	fcdate(const char* filename);
-DLLEXPORT int		setfdate(const char* filename, time_t t);
-DLLEXPORT BOOL		isdir(const char *filename);
-DLLEXPORT BOOL		isabspath(const char *filename);
-DLLEXPORT BOOL		isfullpath(const char* filename);
-DLLEXPORT char*		getfname(const char* path);
-DLLEXPORT char*		getfext(const char* path);
-DLLEXPORT int		getfattr(const char* filename);
-DLLEXPORT int		getfmode(const char* filename);
-DLLEXPORT ulong		getfilecount(const char *path);
-DLLEXPORT char*		getdirname(const char* path);
-DLLEXPORT long		getdirsize(const char* path, BOOL include_subdirs, BOOL subdir_only);
-DLLEXPORT ulong		getdisksize(const char* path, ulong unit);
-DLLEXPORT ulong		getfreediskspace(const char* path, ulong unit);
-DLLEXPORT uint64_t	getfilesizetotal(const char *path);
-DLLEXPORT long		delfiles(const char *inpath, const char *spec, size_t keep);
-DLLEXPORT char*		backslash(char* path);
-DLLEXPORT BOOL 		wildmatch(const char *fname, const char *spec, BOOL path, BOOL case_sensitive);
-DLLEXPORT BOOL 		wildmatchi(const char *fname, const char *spec, BOOL path);
-DLLEXPORT int		mkpath(const char* path);
-
-
-#if defined(__unix__)
-DLLEXPORT void _splitpath(const char *path, char *drive, char *dir, 
-								  char *fname, char *ext);
-DLLEXPORT char * _fullpath(char *target, const char *path, size_t size);
-DLLEXPORT int removecase(const char *path);
-#else
-	#define	removecase(x)	remove(x)
-#endif
-
-#if !defined _WIN32
-DLLEXPORT BOOL		CopyFile(const char* src, const char* dest, BOOL failIfExists);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/eventwrap.h b/xpdev/eventwrap.h
deleted file mode 100644
index e98b666..0000000
--- a/xpdev/eventwrap.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Event-related cross-platform development wrappers (Win32 API emulation) */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _EVENTWRAP_H
-#define _EVENTWRAP_H
-
-#include "gen_defs.h"
-
-#if defined(__unix__)
-
-	#include "xpevent.h"
-
-#elif defined(_WIN32)	
-
-	typedef HANDLE xpevent_t;
-	#define WaitForEvent(event,ms)		WaitForSingleObject(event,ms)
-	#define CloseEvent(event)			CloseHandle(event)
-
-#else
-
-	#error "Need event wrappers."
-
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/filewrap.c b/xpdev/filewrap.c
deleted file mode 100644
index 62c1670..0000000
--- a/xpdev/filewrap.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/* File-related system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* OS-specific */
-#if defined(__unix__)
-
-#include <stdarg.h>		/* va_list */
-#include <string.h>     /* strlen() */
-#include <unistd.h>     /* getpid() */
-#include <fcntl.h>      /* fcntl() file/record locking */
-#include <sys/file.h>	/* L_SET for Solaris */
-#include <errno.h>
-#include <sys/param.h>	/* BSD */
-
-#endif
-
-/* ANSI */
-#include <sys/types.h>	/* _dev_t */
-#include <sys/stat.h>	/* struct stat */
-#include <limits.h>	/* struct stat */
-#include <stdlib.h>		/* realloc() */
-
-#include "filewrap.h"	/* Verify prototypes */
-
-/****************************************************************************/
-/* Returns the modification time of the file in 'fd'						*/
-/* or -1 if file doesn't exist.												*/
-/****************************************************************************/
-time_t filetime(int fd)
-{
-	struct stat st;
-
-	if(fstat(fd, &st)!=0)
-		return(-1);
-
-	return(st.st_mtime);
-}
-
-#if defined(__unix__) && !defined(__BORLANDC__)
-
-/****************************************************************************/
-/* Returns the length of the file in 'fd'									*/
-/* or -1 if file doesn't exist.												*/
-/****************************************************************************/
-off_t filelength(int fd)
-{
-	struct stat st;
-
-	if(fstat(fd, &st)!=0)
-		return(-1L);
-
-	return(st.st_size);
-}
-
-// See https://patchwork.kernel.org/patch/9289177/
-#if defined(F_OFD_SETLK) && _FILE_OFFSET_BITS != 64
-	#undef F_OFD_SETLK
-#endif
-
-/* Sets a lock on a portion of a file */
-int lock(int fd, off_t pos, off_t len)
-{
-	#if defined(F_SANERDLCKNO) || !defined(BSD)
- 		struct flock alock = {0};
-		int cmd = F_SETLK;
-	#ifdef F_OFD_SETLK
-		cmd = F_OFD_SETLK;
-	#endif
-
-	#ifndef F_SANEWRLCKNO
-		int	flags;
-		if((flags=fcntl(fd,F_GETFL))==-1)
-			return -1;
-		if((flags & (O_RDONLY|O_RDWR|O_WRONLY))==O_RDONLY)
-			alock.l_type = F_RDLCK; /* set read lock to prevent writes */
-		else
-			alock.l_type = F_WRLCK; /* set write lock to prevent all access */
-	#else
-		alock.l_type = F_SANEWRLCKNO;
-	#endif
-		alock.l_whence = L_SET;		/* SEEK_SET */
-		alock.l_start = pos;
-		alock.l_len = (int)len;
-
-		int result = fcntl(fd, cmd, &alock);
-		if(result == -1 && errno != EINVAL)
-			return -1;
-	#ifdef F_OFD_SETLK
-		if(result == 0)
-			return 0;
-	#endif
-	#endif
-
-	#if !defined(F_SANEWRLCKNO) && !defined(__QNX__) && !defined(__solaris__)
-		/* use flock (doesn't work over NFS) */
-		if(flock(fd,LOCK_EX|LOCK_NB)!=0 && errno != EOPNOTSUPP)
-			return(-1);
-	#endif
-
-		return(0);
-}
-
-/* Removes a lock from a file record */
-int unlock(int fd, off_t pos, off_t len)
-{
-
-#if defined(F_SANEUNLCK) || !defined(BSD)
-	struct flock alock = {0};
-	int cmd = F_SETLK;
-#ifdef F_OFD_SETLK
-	cmd = F_OFD_SETLK;
-#endif
-#ifdef F_SANEUNLCK
-	alock.l_type = F_SANEUNLCK;   /* remove the lock */
-#else
-	alock.l_type = F_UNLCK;   /* remove the lock */
-#endif
-	alock.l_whence = L_SET;
-	alock.l_start = pos;
-	alock.l_len = (int)len;
-	int result = fcntl(fd, cmd, &alock);
-	if(result == -1 && errno != EINVAL)
-		return -1;
-#ifdef F_OFD_SETLK
-	if(result == 0)
-		return 0;
-#endif
-#endif
-
-#if !defined(F_SANEUNLCK) && !defined(__QNX__) && !defined(__solaris__)
-	/* use flock (doesn't work over NFS) */
-	if(flock(fd,LOCK_UN|LOCK_NB)!=0 && errno != EOPNOTSUPP)
-		return(-1);
-#endif
-
-	return(0);
-}
-
-/* Opens a file in specified sharing (file-locking) mode */
-/*
- * This is how it *SHOULD* work:
- * Values of DOS 2-6.22 file sharing behavior: 
- *          | Second and subsequent Opens 
- * First    |Compat Deny   Deny   Deny   Deny 
- * Open     |       All    Write  Read   None 
- *          |R W RW R W RW R W RW R W RW R W RW
- * - - - - -| - - - - - - - - - - - - - - - - -
- * Compat R |Y Y Y  N N N  1 N N  N N N  1 N N
- *        W |Y Y Y  N N N  N N N  N N N  N N N
- *        RW|Y Y Y  N N N  N N N  N N N  N N N
- * - - - - -|
- * Deny   R |C C C  N N N  N N N  N N N  N N N
- * All    W |C C C  N N N  N N N  N N N  N N N
- *        RW|C C C  N N N  N N N  N N N  N N N
- * - - - - -|
- * Deny   R |2 C C  N N N  Y N N  N N N  Y N N
- * Write  W |C C C  N N N  N N N  Y N N  Y N N
- *        RW|C C C  N N N  N N N  N N N  Y N N
- * - - - - -| 
- * Deny   R |C C C  N N N  N Y N  N N N  N Y N
- * Read   W |C C C  N N N  N N N  N Y N  N Y N
- *        RW|C C C  N N N  N N N  N N N  N Y N
- * - - - - -| 
- * Deny   R |2 C C  N N N  Y Y Y  N N N  Y Y Y
- * None   W |C C C  N N N  N N N  Y Y Y  Y Y Y
- *        RW|C C C  N N N  N N N  N N N  Y Y Y
- * 
- * Legend:
- * Y = open succeeds, 
- * N = open fails with error code 05h. 
- * C = open fails, INT 24 generated. 
- * 1 = open succeeds if file read-only, else fails with error code. 
- * 2 = open succeeds if file read-only, else fails with INT 24 
- */
-#if !defined(__QNX__)
-int sopen(const char *fn, int sh_access, int share, ...)
-{
-	int fd;
-	int pmode=S_IREAD;
-#ifndef F_SANEWRLCKNO
-	int	flock_op=LOCK_NB;	/* non-blocking */
-#endif
-#if defined(F_SANEWRLCKNO) || !defined(BSD)
-	struct flock alock = {0};
-#endif
-    va_list ap;
-
-    if(sh_access&O_CREAT) {
-        va_start(ap,share);
-        pmode = va_arg(ap,unsigned int);
-        va_end(ap);
-    }
-
-	if ((fd = open(fn, sh_access, pmode)) < 0)
-		return -1;
-
-	if (share == SH_DENYNO || share == SH_COMPAT) /* no lock needed */
-		return fd;
-#if defined(F_SANEWRLCKNO) || !defined(BSD)
-	int cmd = F_SETLK;
-#ifdef F_OFD_SETLK
-	cmd = F_OFD_SETLK;
-#endif
-	/* use fcntl (doesn't work correctly with threads) */
-	alock.l_type = share;
-	alock.l_whence = L_SET;
-	alock.l_start = 0;
-	alock.l_len = 0;       /* lock to EOF */
-
-	if(fcntl(fd, cmd, &alock)==-1 && errno != EINVAL) {	/* EINVAL means the file does not support locking */
-		close(fd);
-		return -1;
-	}
-#endif
-
-#if !defined(F_SANEWRLCKNO) && !defined(__QNX__) && !defined(__solaris__)
-	/* use flock (doesn't work over NFS) */
-	if(share==SH_DENYRW)
-		flock_op|=LOCK_EX;
-	else   /* SH_DENYWR */
-		flock_op|=LOCK_SH;
-	if(flock(fd,flock_op)!=0 && errno != EOPNOTSUPP) { /* That object doesn't do locks */
-		if(errno==EWOULDBLOCK) 
-			errno=EAGAIN;
-		close(fd);
-		return(-1);
-	}
-#endif
-
-	return fd;
-}
-#endif /* !QNX */
-
-#elif defined(_MSC_VER) || defined(__MINGW32__) || defined(__DMC__)
-
-#include <io.h>				/* tell */
-#include <stdio.h>			/* SEEK_SET */
-#include <sys/locking.h>	/* _locking */
-
-/* Fix MinGW locking.h typo */
-#if defined LK_UNLOCK && !defined LK_UNLCK
-	#define LK_UNLCK LK_UNLOCK
-#endif
-
-int lock(int file, off_t offset, off_t size) 
-{
-	int	i;
-	off_t pos;
-   
-	pos=tell(file);
-	if(offset!=pos)
-		(void)lseek(file, offset, SEEK_SET);
-	i=_locking(file,LK_NBLCK,(long)size);
-	if(offset!=pos)
-		(void)lseek(file, pos, SEEK_SET);
-	return(i);
-}
-
-int unlock(int file, off_t offset, off_t size)
-{
-	int	i;
-	off_t	pos;
-   
-	pos=tell(file);
-	if(offset!=pos)
-		(void)lseek(file, offset, SEEK_SET);
-	i=_locking(file,LK_UNLCK,(long)size);
-	if(offset!=pos)
-		(void)lseek(file, pos, SEEK_SET);
-	return(i);
-}
-
-#endif	/* !Unix && (MSVC || MinGW) */
-
-#if defined(_WIN32 )
-static size_t
-p2roundup(size_t n)
-{
-	if(n & (n-1)) {	// If n isn't a power of two already...
-		n--;
-		n |= n >> 1;
-		n |= n >> 2;
-		n |= n >> 4;
-		n |= n >> 8;
-		n |= n >> 16;
-#if SIZE_T_MAX > 0xffffffffU
-		n |= n >> 32;
-#endif
-		n++;
-	}
-	return (n);
-}
-
-static int expandtofit(char **linep, size_t len, size_t *linecapp)
-{
-	char	*newline;
-	size_t	newcap;
-
-	if(len+1 >= LONG_MAX)
-		return -1;
-	if(len > *linecapp) {
-		if(len == LONG_MAX)
-			newcap = LONG_MAX;
-		else
-			newcap = p2roundup(len);
-		newline = (char *)realloc(*linep, newcap);
-		if(newline == NULL)
-			return -1;
-		*linecapp = newcap;
-		*linep = newline;
-	}
-	return 0;
-}
-
-long getdelim(char **linep, size_t *linecapp, int delimiter, FILE *stream)
-{
-	size_t	linelen;
-	int		ch;
-
-	if(linep == NULL || linecapp == NULL)
-		return -1;
-	if(*linep == NULL)
-		*linecapp = 0;
-	if(feof(stream)) {
-		if(expandtofit(linep, 1, linecapp))
-			return -1;
-		(*linep)[0]=0;
-		return -1;
-	}
-
-	linelen = 0;
-	for(;;) {
-		ch = fgetc(stream);
-		if(ch == EOF)
-			break;
-		if(expandtofit(linep, linelen+2, linecapp))
-			return -1;
-		(*linep)[linelen++]=ch;
-		if(ch == delimiter)
-			break;
-	}
-	(*linep)[linelen]=0;
-	if(linelen==0)
-		return -1;
-	return linelen;
-}
-#endif
-
-#ifdef __unix__
-FILE *_fsopen(const char *pszFilename, const char *pszMode, int shmode)
-{
-	int file;
-	int Mode=0;
-	const char *p;
-	
-	for(p=pszMode;*p;p++)  {
-		switch (*p)  {
-			case 'r':
-				Mode |= 1;
-				break;
-			case 'w':
-				Mode |= 2;
-				break;
-			case 'a':
-				Mode |= 4;
-				break;
-			case '+':
-				Mode |= 8;
-				break;
-			case 'b':
-			case 't':
-				break;
-			default:
-				errno=EINVAL;
-			return(NULL);
-		}
-	}
-	switch(Mode)  {
-		case 1:
-			Mode =O_RDONLY;
-			break;
-		case 2:
-			Mode=O_WRONLY|O_CREAT|O_TRUNC;
-			break;
-		case 4:
-			Mode=O_APPEND|O_WRONLY|O_CREAT;
-			break;
-		case 9:
-			Mode=O_RDWR|O_CREAT;
-			break;
-		case 10:
-			Mode=O_RDWR|O_CREAT|O_TRUNC;
-			break;
-		case 12:
-			Mode=O_RDWR|O_APPEND|O_CREAT;
-			break;
-		default:
-			errno=EINVAL;
-			return(NULL);
-	}
-	if(Mode&O_CREAT)
-		file=sopen(pszFilename,Mode,shmode,S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
-	else
-		file=sopen(pszFilename,Mode,shmode);
-	if(file==-1)
-		return(NULL);
-	return(fdopen(file,pszMode));
-}
-#endif
diff --git a/xpdev/filewrap.h b/xpdev/filewrap.h
deleted file mode 100644
index 706993d..0000000
--- a/xpdev/filewrap.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* File system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _FILEWRAP_H
-#define _FILEWRAP_H
-
-#include "wrapdll.h"	/* DLLEXPORT */
-#include "gen_defs.h"	/* int32_t, int64_t */
-
-#include <sys/stat.h>	/* S_IREAD and S_IWRITE (for use with sopen) */
-#include <stdio.h>
-
-#if defined(__unix__)
-	#include <unistd.h>	/* read, write, close, ftruncate, lseek, etc. */
-#endif
-
-#if defined(_WIN32) || defined(__BORLANDC__)
-	#include <io.h>
-#endif
-
-#include <fcntl.h>		/* O_RDONLY, O_CREAT, etc. */
-
-/**********/
-/* Macros */
-/**********/
-
-#if defined(_WIN32)
-
-	
-	#include <windows.h>		/* OF_SHARE_ */
-	#include <share.h>			/* SH_DENY */
-
-	#ifndef SH_DENYNO
-	#define SH_DENYNO			OF_SHARE_DENY_NONE
-	#define SH_DENYWR			OF_SHARE_DENY_WRITE
-	#define SH_DENYRW			OF_SHARE_EXCLUSIVE
-	#endif
-
-	#ifndef SH_COMPAT
-	#define SH_COMPAT			0
-	#endif
-
-	#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
-		#define	lseek			_lseeki64
-		#define	tell			_telli64
-		#define filelength		_filelengthi64
-		#define	stat			_stati64
-		#define	fstat			_fstati64
-		#define fseeko			_fseeki64
-		#define ftello			_ftelli64
-	#else
-		#define fseeko			fseek
-		#define ftello			ftell
-	#endif
-
-	#define mkstemp(t)	_open(_mktemp(t), O_RDWR | O_CREAT | O_EXCL)
-
-#elif defined(__unix__)
-
-	#ifdef __solaris__
-		#define LOCK_NB	1
-		#define LOCK_SH 2
-		#define LOCK_EX 4
-	#endif
-
-	#ifdef __QNX__
-		#include <share.h>
-		#define L_SET	SEEK_SET
-	#else
-		#ifndef O_TEXT
-		#define O_TEXT		0		/* all files in binary mode on Unix */
-		#define O_BINARY	0		/* all files in binary mode on Unix */
-		#endif
-		#undef	O_DENYNONE
-		#define O_DENYNONE  (1<<31)	/* req'd for Baja/nopen compatibility */
-
-		#define SH_DENYNO	2          /* no locks */
-		#ifdef F_SANEWRLCKNO
-			#define SH_DENYRW	F_SANEWRLCKNO	   /* exclusive lock */
-		#else
-			#define SH_DENYRW	F_WRLCK	   /* exclusive lock */
-		#endif
-	
-		#ifdef F_SANERDLCKNO
-			#define SH_DENYWR   F_SANERDLCKNO    /* shareable lock */
-		#else
-			#define SH_DENYWR   F_RDLCK    /* shareable lock */
-		#endif
-
-		#ifndef SH_COMPAT
-			#define SH_COMPAT			0
-		#endif
-	#endif
-
-	#ifndef DEFFILEMODE
-	#define DELFILEMODE			(S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
-	#endif
-
-	#define chsize(fd,size)		ftruncate(fd,size)
-	#define tell(fd)			lseek(fd,0,SEEK_CUR)
-	#define eof(fd)				(tell(fd)==filelength(fd))
-
-#elif defined(__OS2__)
-
-	#include <share.h>			/* SH_DENY */
-
-#endif
-
-#ifndef DEFFILEMODE
-#define DEFFILEMODE			(S_IREAD|S_IWRITE)
-#endif
-
-/* Standard file descriptors.  */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO    0       /* Standard input */
-#define STDOUT_FILENO   1       /* Standard output */
-#define STDERR_FILENO   2       /* Standard error output */
-#endif
-
-#ifndef O_DENYNONE
-#define O_DENYNONE		SH_DENYNO
-#endif
-
-#define CLOSE_OPEN_FILE(x)	while((x) >= 0) { close(x); (x)=-1; break; }
-
-/**************/
-/* Prototypes */
-/**************/
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if !defined(__BORLANDC__) && !defined(__WATCOMC__)
-	DLLEXPORT int	lock(int fd, off_t pos, off_t len);
-	DLLEXPORT int	unlock(int fd, off_t pos, off_t len);
-#endif
-
-#if defined(_WIN32 )
-	DLLEXPORT long	getdelim(char **linep, size_t *linecapp, int delimiter, FILE *stream);
-#endif
-
-#if !defined(__BORLANDC__) && defined(__unix__)
-	DLLEXPORT int		sopen(const char* fn, int sh_access, int share, ...);
-	DLLEXPORT off_t		filelength(int fd);
-#endif
-
-#if defined(__unix__)
-	DLLEXPORT FILE * _fsopen(const char *pszFilename, const char *pszMode, int shmode);
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER < 1300)	/* missing prototypes */
-	DLLEXPORT int		_fseeki64(FILE*, int64_t, int origin);
-	DLLEXPORT int64_t	_ftelli64(FILE*);
-#endif
-
-DLLEXPORT time_t	filetime(int fd);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/gen_defs.h b/xpdev/gen_defs.h
deleted file mode 100644
index 405504c..0000000
--- a/xpdev/gen_defs.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/* General(ly useful) constant, macro, and type definitions */
-
-/* $Id: gen_defs.h,v 1.85 2020/08/15 19:57:51 rswindell Exp $ */
-// vi: tabstop=4
-																			
-/****************************************************************************
- * @format.tab-size 4           (Plain Text/Source Code File Header)        *
- * @format.use-tabs true        (see http://www.synchro.net/ptsc_hdr.html)  *
- *                                                                          *
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *                                                                          *
- * This library is free software; you can redistribute it and/or            *
- * modify it under the terms of the GNU Lesser General Public License       *
- * as published by the Free Software Foundation; either version 2           *
- * of the License, or (at your option) any later version.                   *
- * See the GNU Lesser General Public License for more details: lgpl.txt or  *
- * http://www.fsf.org/copyleft/lesser.html                                  *
- *                                                                          *
- * Anonymous FTP access to the most recent released source is available at  *
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net  *
- *                                                                          *
- * Anonymous CVS access to the development source and modification history  *
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:                  *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login            *
- *     (just hit return, no password is necessary)                          *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src     *
- *                                                                          *
- * For Synchronet coding style and modification guidelines, see             *
- * http://www.synchro.net/source.html                                       *
- *                                                                          *
- * You are encouraged to submit any modifications (preferably in Unix diff  *
- * format) via e-mail to mods@synchro.net                                   *
- *                                                                          *
- * Note: If this box doesn't appear square, then you need to fix your tabs. *
- ****************************************************************************/
-
-#ifndef _GEN_DEFS_H
-#define _GEN_DEFS_H
-
-#include <xpdevplus.h>
-#include "cp437defs.h"
-#include <errno.h>
-
-/* Resolve multi-named errno constants */
-#if defined(EDEADLK) && !defined(EDEADLOCK)
-        #define EDEADLOCK EDEADLK
-#endif
-
-#if defined(_WIN32)
-        #define WIN32_LEAN_AND_MEAN     /* Don't bring in excess baggage */
-        #include <windows.h>
-#elif defined(__OS2__)
-        #define INCL_BASE       /* need this for DosSleep prototype */
-        #include <os2.h>
-#else
-        #if (defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__)) || defined (__NetBSD__)
-                #ifndef __unix__
-                        #define __unix__
-                #endif
-        #endif
-#endif
-
-#include <ctype.h>
-#include <sys/types.h>
-#ifdef HAS_INTTYPES_H
-#if defined __cplusplus
-#define __STDC_FORMAT_MACROS
-#endif
-#include <inttypes.h>
-#else
-#ifdef HAS_STDINT_H
-#include <stdint.h>
-#endif
-#endif
-
-                                               /* Control characters */
-#ifndef STX
-#define STX     0x02                           /* Start of text                 ^B      */
-#endif
-#ifndef ETX
-#define ETX     0x03                           /* End of text                   ^C      */
-#endif
-#ifndef BEL
-#define BEL     0x07                            /* Bell/beep                    ^G      */
-#endif
-#ifndef FF
-#define FF      0x0c                            /* Form feed                    ^L      */
-#endif
-#ifndef ESC
-#define ESC     0x1b                            /* Escape                       ^[      */
-#endif
-#ifndef DEL
-#define DEL     0x7f                            /* Delete                       ^BS     */
-#endif
-#ifndef BS
-#define BS      '\b'                            /* Back space                   ^H      */
-#endif
-#ifndef TAB
-#define TAB     '\t'                            /* Horizontal tabulation        ^I      */
-#endif
-#ifndef LF
-#define LF      '\n'                            /* Line feed                    ^J      */
-#endif
-#ifndef CR
-#define CR      '\r'                            /* Carriage return              ^M      */
-#endif
-
-#ifndef CTRL_A
-enum {
-	 CTRL_AT						// NUL
-	,CTRL_A							// SOH
-	,CTRL_B							// STX
-	,CTRL_C							// ETX
-	,CTRL_D							// EOT
-	,CTRL_E							// ENQ
-	,CTRL_F							// ACK
-	,CTRL_G							// BEL
-	,CTRL_H							// BS
-	,CTRL_I							// HT
-	,CTRL_J							// LF
-	,CTRL_K							// VT
-	,CTRL_L							// FF
-	,CTRL_M							// CR
-	,CTRL_N							// SO
-	,CTRL_O							// SI
-	,CTRL_P							// DLE
-	,CTRL_Q							// DC1
-	,CTRL_R							// DC2
-	,CTRL_S							// DC3
-	,CTRL_T							// DC4
-	,CTRL_U							// NAK
-	,CTRL_V							// SYN
-	,CTRL_W							// ETB
-	,CTRL_X							// CAN
-	,CTRL_Y							// EM
-	,CTRL_Z							// SUB
-	,CTRL_OPEN_BRACKET				// ESC
-	,CTRL_BACKSLASH					// FS
-	,CTRL_CLOSE_BRACKET				// GS
-	,CTRL_CARET						// RS
-	,CTRL_UNDERSCORE				// US
-	,CTRL_QUESTION_MARK	= 0x7f		// DEL
-};
-#endif
-
-/* Unsigned type short-hands    */
-#ifndef uchar
-    #define uchar   unsigned char
-#endif
-#ifndef ushort
-	#define ushort  unsigned short
-	typedef unsigned int uint;			/* Incompatible with Spidermonkey header files when #define'd */
-	#define ulong   unsigned long
-#endif
-
-/* Printf format specifiers... */
-#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)
-#define XP_PRIsize_t					"I"
-#else
-#define XP_PRIsize_t					"z"
-#endif
-
-#if !defined(HAS_INTTYPES_H) && !defined(XPDEV_DONT_DEFINE_INTTYPES)
-
-#if !defined(HAS_STDINT_H)
-
-typedef char    int8_t;
-#ifndef INT8_MAX
-#define INT8_MAX 0x7f
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX (-0x7f-1)
-#endif
-typedef short   int16_t;
-#ifndef INT16_MAX
-#define INT16_MAX 0x7fff
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN (-0x7fff-1)
-#endif
-typedef long    int32_t;
-#ifndef INT32_MAX
-#define INT32_MAX 0x7fffffff
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN (-0x7fffffff-1)
-#endif
-typedef uchar   uint8_t;
-#ifndef UINT8_MAX
-#define UINT8_MAX 0xff
-#endif
-typedef ushort  uint16_t;
-#ifndef UINT16_MAX
-#define UINT16_MAX 0xffff
-#endif
-typedef ulong   uint32_t;
-#ifndef UINT32_MAX
-#define UINT32_MAX 0xffffffff
-#endif
-
-#endif
-
-#if !defined(__MSDOS__)
-#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)
-typedef SSIZE_T ssize_t;
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-#define INTTYPES_H_64BIT_PREFIX         "I64"
-#else
-typedef signed long long int int64_t;
-typedef unsigned long long int uint64_t;
-#define INTTYPES_H_64BIT_PREFIX         "ll"
-#endif
-
-typedef uint64_t	uintmax_t;
-#define _UINTMAX_T_DECLARED
-typedef int64_t		intmax_t;
-#define _INTMAX_T_DECLARED
-
-#if !defined(HAS_STDINT_H) && !defined(_UINTPTR_T_DEFINED)
-typedef uintmax_t	uintptr_t;
-typedef intmax_t	intptr_t;
-#endif
-#endif // !MSDOS
-
-/* printf integer formatters: */
-
-#define PRId32	"d"
-#define PRIu32	"u"
-#define PRIi32	"i"
-#define PRIx32	"x"
-#define PRIX32	"X"
-#define PRIo32	"o"
-
-#define PRIi64  INTTYPES_H_64BIT_PREFIX"i"
-#define PRIu64  INTTYPES_H_64BIT_PREFIX"u"
-#define PRId64  INTTYPES_H_64BIT_PREFIX"d"
-#define PRIx64  INTTYPES_H_64BIT_PREFIX"x"
-#define PRIX64  INTTYPES_H_64BIT_PREFIX"X"
-#define PRIo64  INTTYPES_H_64BIT_PREFIX"o"
-
-#define PRIdMAX	PRId64
-#define PRIiMAX	PRIi64
-#define PRIuMAX	PRIu64
-#define PRIxMAX	PRIx64
-#define PRIXMAX	PRIX64
-#define PRIoMAX	PRIo64
-
-/* scanf integer formatters: */
-
-#define SCNd32 	PRId32
-#define SCNi32 	PRIi32
-#define SCNu32 	PRIu32
-#define SCNx32 	PRIx32
-#define SCNX32 	PRIX32
-#define SCNo32 	PRIo32
-
-#define SCNd64 	PRId64
-#define SCNi64 	PRIi64
-#define SCNu64 	PRIu64
-#define SCNx64 	PRIx64
-#define SCNX64 	PRIX64
-#define SCNo64 	PRIo64
-
-#define SCNdMAX	PRId64
-#define SCNiMAX	PRIi64
-#define SCNuMAX	PRIu64
-#define SCNxMAX	PRIx64
-#define SCNXMAX	PRIX64
-#define SCNoMAX	PRIo64
-
-#endif
-
-/* Legacy 32-bit time_t */
-typedef int32_t         time32_t;
-
-#if defined(_WIN32)
-#  if defined _MSC_VER && !defined _FILE_OFFSET_BITS
-#    define _FILE_OFFSET_BITS 64
-#  endif
-#  if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
-#    define off_t       int64_t
-#    define PRIdOFF     PRId64
-#    define PRIuOFF     PRIu64
-#  else
-#    define PRIdOFF     "ld"
-#    define PRIuOFF     "lu"
-#  endif
-#elif defined(__linux__) || defined(__sun__)
-#  if (defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)) || defined(__LP64__)
-#    define PRIdOFF     PRId64
-#    define PRIuOFF     PRIu64
-#  else
-#    define PRIdOFF     "ld"
-#    define PRIuOFF     "lu"
-#  endif
-#else
-#  define PRIdOFF       PRId64
-#  define PRIuOFF       PRIu64
-#endif
-
-/* Windows Types */
-
-#ifndef _WIN32
-#ifndef BYTE
-#define BYTE    uint8_t
-#endif
-#ifndef WORD
-#define WORD    uint16_t
-#endif
-#ifndef DWORD
-#define DWORD   uint32_t
-#endif
-#ifndef BOOL
-#define BOOL    int
-#endif
-
-#ifndef TRUE
-#define TRUE    1
-#define FALSE   0
-#endif
-#ifndef HANDLE
-#define HANDLE  void*
-#endif
-#endif
-
-#ifndef INT_TO_BOOL
-#define INT_TO_BOOL(x)  ((x)?TRUE:FALSE)
-#endif
-
-/* Custom Types */
-typedef struct {
-        char*   name;
-        char*   value;
-} named_string_t;
-
-typedef struct {
-        char*   name;
-        int     value;
-} named_int_t;
-
-typedef struct {
-        char*   name;
-        uint    value;
-} named_uint_t;
-
-typedef struct {
-        char*   name;
-        long    value;
-} named_long_t;
-
-typedef struct {
-        char*   name;
-        ulong   value;
-} named_ulong_t;
-
-typedef struct {
-        char*   name;
-        short   value;
-} named_short_t;
-
-typedef struct {
-        char*   name;
-        ushort  value;
-} named_ushort_t;
-
-typedef struct {
-        char*   name;
-        float   value;
-} named_float_t;
-
-typedef struct {
-        char*   name;
-        double  value;
-} named_double_t;
-
-typedef struct {
-        char*   name;
-        BOOL    value;
-} named_bool_t;
-
-typedef struct {
-        int     key;
-        char*   value;
-} keyed_string_t;
-
-typedef struct {
-        int     key;
-        int     value;
-} keyed_int_t;
-
-
-/************************/
-/* Handy Integer Macros */
-/************************/
-
-/* Data Block Length Alignment Macro (returns required padding length for proper alignment) */
-#define PAD_LENGTH_FOR_ALIGNMENT(len,blk)       (((len)%(blk))==0 ? 0 : (blk)-((len)%(blk)))
-
-#define HEX_DIGITS(n)   ( n > 0xfffffff  ? 8 \
-                        : n > 0x0ffffff  ? 7 \
-                        : n > 0x00fffff  ? 6 \
-                        : n > 0x000ffff  ? 5 \
-                        : n > 0x0000fff  ? 4 \
-                        : n > 0x00000ff  ? 3 \
-                        : n > 0x000000f  ? 2 : 1 )
-#define DEC_DIGITS(n)   ( n < 10         ? 1 \
-                        : n < 100        ? 2 \
-                        : n < 1000       ? 3 \
-                        : n < 10000      ? 4 \
-                        : n < 100000     ? 5 \
-                        : n < 1000000    ? 6 \
-                        : n < 10000000   ? 7 \
-                        : n < 100000000  ? 8 \
-                        : n < 1000000000 ? 9 : 10 )
-
-/***********************/
-/* Handy String Macros */
-/***********************/
-
-/* Null-Terminate an ASCIIZ char array */
-#define TERMINATE(str)                      str[sizeof(str)-1]=0
-
-/* This is a bound-safe version of strcpy basically - only works with fixed-length arrays */
-#ifdef SAFECOPY_USES_SPRINTF
-#define SAFECOPY(dst,src)                   sprintf(dst,"%.*s",(int)sizeof(dst)-1,src)
-#else   /* strncpy is faster */
-#define SAFECOPY(dst,src)                   (strncpy(dst,src,sizeof(dst)), TERMINATE(dst))
-#endif
-
-#define SAFECAT(dst, src) do { \
-	if(strlen((char*)(dst)) + strlen((char*)(src)) < sizeof(dst)) { \
-		strcat((char*)(dst), (char*)(src)); \
-	} \
-} while(0)
-
-/* Bound-safe version of sprintf() - only works with fixed-length arrays */
-#if (defined __FreeBSD__) || (defined __NetBSD__) || (defined __OpenBSD__) || (defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__))
-/* *BSD *nprintf() is already safe */
-#define SAFEPRINTF(dst,fmt,arg)             snprintf(dst,sizeof(dst),fmt,arg)
-#define SAFEPRINTF2(dst,fmt,a1,a2)          snprintf(dst,sizeof(dst),fmt,a1,a2)
-#define SAFEPRINTF3(dst,fmt,a1,a2,a3)		snprintf(dst,sizeof(dst),fmt,a1,a2,a3)
-#define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)	snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4)
-#else										
-#define SAFEPRINTF(dst,fmt,arg)				snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
-#define SAFEPRINTF2(dst,fmt,a1,a2)			snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
-#define SAFEPRINTF3(dst,fmt,a1,a2,a3)		snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
-#define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)	snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4), TERMINATE(dst)
-#endif
-
-/* Replace every occurrence of c1 in str with c2, using p as a temporary char pointer */
-#define REPLACE_CHARS(str,c1,c2,p)      for((p)=(str);*(p);(p)++) if(*(p)==(c1)) *(p)=(c2);
-
-/* ASCIIZ char* parsing helper macros */
-/* These (unsigned char) typecasts defeat MSVC debug assertion when passed a negative value */
-#define IS_WHITESPACE(c)				(isspace((unsigned char)(c)) || c == CP437_NO_BREAK_SPACE)
-#define IS_CONTROL(c)					iscntrl((unsigned char)(c))
-#define IS_ALPHA(c)						isalpha((unsigned char)(c))
-#define IS_ALPHANUMERIC(c)				isalnum((unsigned char)(c))
-#define IS_UPPERCASE(c)					isupper((unsigned char)(c))
-#define IS_LOWERCASE(c)					islower((unsigned char)(c))
-#define IS_PUNCTUATION(c)				ispunct((unsigned char)(c))
-#define IS_PRINTABLE(c)					isprint((unsigned char)(c))
-#define IS_DIGIT(c)						isdigit((unsigned char)(c))
-#define IS_HEXDIGIT(c)					isxdigit((unsigned char)(c))
-#define IS_OCTDIGIT(c)					((c) >= '0' && (c) <= '7')
-#define SKIP_WHITESPACE(p)              while((p) && *(p) && IS_WHITESPACE(*(p)))        (p)++;
-#define FIND_WHITESPACE(p)              while((p) && *(p) && !IS_WHITESPACE(*(p)))       (p)++;
-#define SKIP_CHAR(p,c)                  while((p) && *(p)==c)                            (p)++;
-#define FIND_CHAR(p,c)                  while((p) && *(p) && *(p)!=c)                    (p)++;
-#define SKIP_CHARSET(p,s)               while((p) && *(p) && strchr(s,*(p))!=NULL)       (p)++;
-#define FIND_CHARSET(p,s)               while((p) && *(p) && strchr(s,*(p))==NULL)       (p)++;
-#define SKIP_CRLF(p)					SKIP_CHARSET(p, "\r\n")
-#define FIND_CRLF(p)					FIND_CHARSET(p, "\r\n")
-#define SKIP_ALPHA(p)                   while((p) && *(p) && IS_ALPHA(*(p)))             (p)++;
-#define FIND_ALPHA(p)                   while((p) && *(p) && !IS_ALPHA(*(p)))            (p)++;
-#define SKIP_ALPHANUMERIC(p)            while((p) && *(p) && IS_ALPHANUMERIC(*(p)))      (p)++;
-#define FIND_ALPHANUMERIC(p)            while((p) && *(p) && !IS_ALPHANUMERIC(*(p)))     (p)++;
-#define SKIP_DIGIT(p)                   while((p) && *(p) && IS_DIGIT(*(p)))             (p)++;
-#define FIND_DIGIT(p)                   while((p) && *(p) && !IS_DIGIT(*(p)))            (p)++;
-#define SKIP_HEXDIGIT(p)                while((p) && *(p) && IS_HEXDIGIT(*(p)))          (p)++;
-#define FIND_HEXDIGIT(p)                while((p) && *(p) && !IS_HEXDIGIT(*(p)))         (p)++;
-
-#define HEX_CHAR_TO_INT(ch) 			(((ch)&0xf)+(((ch)>>6)&1)*9)
-#define DEC_CHAR_TO_INT(ch)				((ch)&0xf)
-#define OCT_CHAR_TO_INT(ch)				((ch)&0x7)
-
-/* Variable/buffer initialization (with zeros) */
-#define ZERO_VAR(var)                           memset(&(var),0,sizeof(var))
-#define ZERO_ARRAY(array)                       memset(array,0,sizeof(array))
-
-/****************************************************************************/
-/* MALLOC/FREE Macros for various compilers and environments                */
-/* MALLOC is used for allocations of 64k or less                            */
-/* FREE is used to free buffers allocated with MALLOC                       */
-/* LMALLOC is used for allocations of possibly larger than 64k              */
-/* LFREE is used to free buffers allocated with LMALLOC                     */
-/* REALLOC is used to re-size a previously MALLOCed or LMALLOCed buffer     */
-/* FAR16 is used to create a far (32-bit) pointer in 16-bit compilers       */
-/* HUGE16 is used to create a huge (32-bit) pointer in 16-bit compilers     */
-/****************************************************************************/
-#if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
-        #define HUGE16 huge
-        #define FAR16 far
-        #if defined(__TURBOC__)
-                #define REALLOC(x,y) farrealloc(x,y)
-                #define LMALLOC(x) farmalloc(x)
-                #define MALLOC(x) farmalloc(x)
-                #define LFREE(x) farfree(x)
-                #define FREE(x) farfree(x)
-        #elif defined(__WATCOMC__)
-                #define REALLOC realloc
-                #define LMALLOC(x) halloc(x,1)  /* far heap, but slow */
-                #define MALLOC malloc           /* far heap, but 64k max */
-                #define LFREE hfree
-                #define FREE free
-        #else   /* Other 16-bit Compiler */
-                #define REALLOC realloc
-                #define LMALLOC malloc
-                #define MALLOC malloc
-                #define LFREE free
-                #define FREE free
-        #endif
-#else           /* 32-bit Compiler or Small Memory Model */
-        #define HUGE16
-        #define FAR16
-        #define REALLOC realloc
-        #define LMALLOC malloc
-        #define MALLOC malloc
-        #define LFREE free
-        #define FREE free
-#endif
-
-/********************************/
-/* Handy Pointer-freeing Macros */
-/********************************/
-#define FREE_AND_NULL(x)	do {                  \
-								if((x)!=NULL) {   \
-									FREE(x);      \
-									(x)=NULL;     \
-								}		          \
-							} while(0)
-#define FREE_LIST_ITEMS(list,i)         if(list!=NULL) {                                \
-											for(i=0;list[i]!=NULL;i++)      \
-												FREE_AND_NULL(list[i]); \
-                                        }
-#define FREE_LIST(list,i)               FREE_LIST_ITEMS(list,i) FREE_AND_NULL(list)
-
-/********************************/
-/* Other Pointer-List Macros    */
-/********************************/
-#define COUNT_LIST_ITEMS(list,i)        { i=0; if(list!=NULL) while(list[i]!=NULL) i++; }
-
-#if defined(__unix__)
-        #include <syslog.h>
-#else
-        /*
-         * log priorities (copied from BSD syslog.h)
-         */
-        #define LOG_EMERG       0       /* system is unusable */
-        #define LOG_ALERT       1       /* action must be taken immediately */
-        #define LOG_CRIT        2       /* critical conditions */
-        #define LOG_ERR         3       /* error conditions */
-        #define LOG_WARNING     4       /* warning conditions */
-        #define LOG_NOTICE      5       /* normal but significant condition */
-        #define LOG_INFO        6       /* informational */
-        #define LOG_DEBUG       7       /* debug-level messages */
-#endif
-
-#ifdef WITH_SDL_AUDIO
-        #include <SDL.h>
-#endif
-
-#endif /* Don't add anything after this #endif statement */
diff --git a/xpdev/genpack.pl b/xpdev/genpack.pl
deleted file mode 100755
index 90d26f9..0000000
--- a/xpdev/genpack.pl
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/usr/bin/perl
-
-if($#ARGV != 2) {
-	print <<ENDOFUSAGE;
-Usage: $0 infile.h outhead.h outprog.c
-
-ENDOFUSAGE
-	exit(1);
-}
-
-my ($infile, $outhead, $outc) = @ARGV;
-open IN,'<',$infile;
-
-while (<IN>) {
-	$header .= $_;
-}
-close IN;
-
-my $defs='';
-my $protos='';
-my $functions='';
-
-my $count = 0;
-my @structs = ();
-while($header =~ m/struct\s+([^\s\r\n]*)[\s\r\n]+{([^}]*)}/gs) {
-	my($name, $def) = ($1,$2);
-	my ($packcode, $unpackcode, $size, @ints) = parse_defs($name, $def);
-	if(defined $size) {
-		$count++;
-		push @structs,"+ $name";
-		$defs .= $size;
-		$protos .= "int pack_$name\_struct(char *buf, struct $name *data);\n";
-		$protos .= "int unpack_$name\_struct(struct $name *data, char *buf);\n";
-		$functions .= "int pack_$name\_struct(char *buf, struct $name *data)\n";
-		$functions .= "{\n";
-		$functions .= "\tchar\t*p;\n";
-		if($#ints >= 0) {
-			$functions .= "\tint\t\t".join(', ',@ints).";\n";
-		}
-		$functions .="\n\tp = buf;\n";
-		$functions .= $packcode;
-		$functions .="\n\treturn((int)(p-buf));\n}\n\n";
-		$functions .= "int unpack_$name\_struct(struct $name *data, char *buf)\n";
-		$functions .= "{\n";
-		$functions .= "\tchar\t*p;\n";
-		if($#ints >= 0) {
-			$functions .= "\tint\t\t".join(', ',@ints).";\n";
-		}
-		$functions .="\n\tp = buf;\n";
-		$functions .= $unpackcode;
-		$functions .="\n\treturn((int)(p-buf));\n}\n\n";
-	}
-	else {
-		push @structs,"! $name";
-	}
-}
-
-if($count) {
-	open HEAD,'>',$outhead;
-	open C,'>',$outc;
-
-	print HEAD "/* Generated by genpack.pl from $infile on ".(scalar localtime(time))." */\n\n";
-	my $macro = uc($outhead);
-	$macro=~s/[^A-Z0-9]/_/g;
-	print HEAD '#ifndef _INCLUDED_',$macro,"\n";
-	print HEAD '#define _INCLUDED_',$macro,"\n\n";
-	print HEAD "#include \"$infile\"\n#include \"xpendian.h\"\n\n";
-	print HEAD "/* *_SIZE macros are the packed buffer size requred */\n";
-	print HEAD $defs;
-	print HEAD "\n/* Function prototypes */\n";
-	print HEAD "#if defined(__cplusplus)\nextern \"C\" {\n#endif\n";
-	print HEAD $protos;
-	print HEAD "#if defined(__cplusplus)\n}\n#endif";
-	print HEAD "\n\n";
-	print HEAD "#endif /* Do not add anything after this line! */\n";
-	close HEAD;
-
-	open C,'>',$outc;
-	print HEAD "/* Generated by genpack.pl from $infile on ".(scalar localtime(time))." */\n\n";
-	print C "#include \"$outhead\"\n\n";
-	print C $functions;
-	print C "\n";
-	close C;
-
-	print "$count structures read successfully\n+ indicates functions were created\n! indicates a failure\n\n";
-	print join("\n", @structs),"\n";
-}
-else {
-	print "No structures imported... files not created.\n";
-}
-
-sub parse_defs
-{
-	my ($sname, $defs)=@_;
-
-	my $packcode='';
-	my $unpackcode='';
-	my %vars=();
-	my %sizes=();
-
-	# Remove comments
-	$defs=~s|/\*.*?\*/||gs;
-	my @lines=split(/[\r\n]+/, $defs);
-	foreach my $line (@lines) {
-		my ($p, $u);
-		my @newvars;
-		my $this_size=0;
-		chomp $line;
-		next if($line =~ /^\s*$/);
-		if($line =~ m/^\s*((?:char)|(?:BYTE)|(?:INT16)|(?:WORD)|(?:INT32)|(?:DWORD)|(?:float))\s+([^\s]+)\s*;\s*$/) {
-			my ($type, $name) = ($1, $2);
-			($p, $u, @newvars) = parse_line(\%sizes, $type, $name, 0);
-		}
-		elsif($line =~ m/^\s*struct\s+([^\s]+)\s+([^\s]+)\s*;\s*$/) {
-			my ($struct, $name) = ($1, $2);
-			($p, $u, @newvars) = parse_line(\%sizes, $struct, $name, 1);
-		}
-		else {
-			print "Cannot parse: $line\n";
-			return();
-		}
-		if(!defined $u) {
-			return();
-		}
-		@vars{@newvars}=@newvars;
-		$packcode .= $p;
-		$unpackcode .= $u;
-	}
-	my $sizedef = '#define '.uc($sname)."_SIZE\t(";
-	foreach my $key (keys %sizes) {
-		if(defined $sizes{$key}{count} && !defined $sizes{$key}{multiplier}) {
-			if($sizes{$key}{count} == 1) {
-				$sizedef .= "$key + ";
-			}
-			else {
-				$sizedef .= "($key * $sizes{$key}{count}) + ";
-			}
-		}
-		elsif(!defined $sizes{$key}{count} && defined $sizes{$key}{multiplier}) {
-			$sizes{$key}{multiplier} = substr($sizes{$key}{multiplier}, 0, -3);
-			$sizedef .= "($key * ($sizes{$key}{multiplier})) + ";
-		}
-		elsif(defined $sizes{$key}{count} && defined $sizes{$key}{multiplier}) {
-			$sizes{$key}{multiplier} = substr($sizes{$key}{multiplier}, 0, -3);
-			$sizedef .= "($key * ($sizes{$key}{count} + $sizes{$key}{multiplier})) + ";
-		}
-	}
-	$sizedef = substr($sizedef, 0, -3) . ")\n";
-	return($packcode, $unpackcode, $sizedef, sort keys %vars);
-}
-
-sub parse_line
-{
-	my ($sizes, $type, $name, $struct) = @_;
-	my $tabs = "\t";
-	my $end = '';
-	my %vars=();
-	my $nextint='i';
-	my ($packcode, $unpackcode);
-	my $sizekey;
-
-	if($struct) {
-		$sizekey = uc($type).'_SIZE';
-	}
-	else {
-		$sizekey = "sizeof($type)";
-	}
-	if($name =~ /\[/) {		# Handle arrays!
-		while($name =~ s/\[([^\]]+)\]/;$nextint;/) {
-			my $size = $1;
-			$packcode .= $tabs."for($nextint = 0; $nextint < $size; $nextint++) {\n";
-			$unpackcode .= $tabs."for($nextint = 0; $nextint < $size; $nextint++) {\n";
-			$sizes->{$sizekey}{multiplier} .= "$size * ";
-			$end = "$tabs}\n$end";
-			$tabs .= "\t";
-			$vars{$nextint}=1;
-			$nextint=chr(ord($nextint)+1);
-		}
-		$sizes->{$sizekey}{multiplier} = substr($sizes->{$sizekey}{multiplier}, 0, -3);
-		$sizes->{$sizekey}{multiplier} .= ' + ';
-		$name =~ s/;(.);/[$1]/g;
-	}
-	else {
-		$sizes->{$sizekey}{count}++;
-	}
-	$name = "data->$name";
-	my ($p, $u) = pack_line($type, $name, $struct, $tabs);
-	$p = "$packcode$p$end";
-	$u = "$unpackcode$u$end";
-	return($p, $u, sort keys %vars);
-}
-
-sub pack_line
-{
-	my ($type, $name, $struct, $tabs)=@_;
-	my $packcode = '';
-	my $unpackcode = '';
-
-	# ie: *(INT32)p = LE_LONG($name);
-	if(!$struct) {
-		if($type eq 'char') {
-			$packcode .= $tabs."*p = $name;\n";
-			$packcode .= $tabs."p++;\n";
-			$unpackcode .= $tabs."$name = *p;\n";
-			$unpackcode .= $tabs."p++;\n";
-		}
-		elsif($type eq 'BYTE') {
-			$packcode .= $tabs."*(BYTE *)p = $name;\n";
-			$packcode .= $tabs."p++;\n";
-			$unpackcode .= $tabs."$name = *(BYTE *)p;\n";
-			$unpackcode .= $tabs."p++;\n";
-		}
-		elsif($type eq 'INT16') {
-			$packcode .= $tabs."*(INT16 *)p = LE_SHORT($name);\n";
-			$packcode .= $tabs."p += sizeof(INT16);\n";
-			$unpackcode .= $tabs."$name = LE_SHORT(*(INT16 *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(INT16);\n";
-		}
-		elsif($type eq 'WORD') {
-			$packcode .= $tabs."*(WORD *)p = LE_SHORT($name);\n";
-			$packcode .= $tabs."p += sizeof(WORD);\n";
-			$unpackcode .= $tabs."$name = LE_SHORT(*(WORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(WORD);\n";
-		}
-		elsif($type eq 'INT32') {
-			$packcode .= $tabs."*(INT32 *)p = LE_LONG($name);\n";
-			$packcode .= $tabs."p += sizeof(INT32);\n";
-			$unpackcode .= $tabs."$name = LE_LONG(*(INT32 *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(INT32);\n";
-		}
-		elsif($type eq 'DWORD') {
-			$packcode .= $tabs."*(DWORD *)p = LE_LONG($name);\n";
-			$packcode .= $tabs."p += sizeof(DWORD);\n";
-			$unpackcode .= $tabs."$name = LE_LONG(*(DWORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(DWORD);\n";
-		}
-		elsif($type eq 'float') {
-			$packcode .= $tabs."*(DWORD *)p = LE_LONG(*((DWORD *)&($name)));\n";
-			$packcode .= $tabs."p += sizeof(float);\n";
-			$unpackcode .= $tabs."*(((DWORD *)&($name))) = LE_LONG(*(DWORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(DWORD);\n";
-		}
-		else {
-			print "Unhandled type: $type\n";
-			return(undef, undef);
-		}
-	}
-	else {
-		$packcode .= $tabs."p += pack_$type\_struct(p, &($name));\n";
-		$unpackcode .= $tabs."p += unpack_$type\_struct(&($name), p);\n";
-	}
-
-	return($packcode, $unpackcode);
-}
diff --git a/xpdev/genwrap.c b/xpdev/genwrap.c
deleted file mode 100644
index 04e9e06..0000000
--- a/xpdev/genwrap.c
+++ /dev/null
@@ -1,886 +0,0 @@
-/* General cross-platform development wrappers */
-
-/* $Id: genwrap.c,v 1.118 2020/08/10 04:11:44 rswindell Exp $ */
-// vi: tabstop=4
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>     /* strlen() */
-#include <stdarg.h>	/* vsnprintf() */
-#include <stdlib.h>		/* RAND_MAX */
-#include <fcntl.h>		/* O_NOCTTY */
-#include <time.h>		/* clock() */
-#include <errno.h>		/* errno */
-#include <ctype.h>		/* toupper/tolower */
-#include <limits.h>		/* CHAR_BIT */
-#include <math.h>		/* fmod */
-
-#if defined(__unix__)
-	#include <sys/ioctl.h>		/* ioctl() */
-	#include <sys/utsname.h>	/* uname() */
-	#include <signal.h>
-#elif defined(_WIN32)
-	#include <windows.h>
-	#include <lm.h>		/* NetWkstaGetInfo() */
-#endif
-
-#include "genwrap.h"	/* Verify prototypes */
-#include "xpendian.h"	/* BYTE_SWAP */
-
-/****************************************************************************/
-/* Used to replace snprintf()  guarantees to terminate.			  			*/
-/****************************************************************************/
-int safe_snprintf(char *dst, size_t size, const char *fmt, ...)
-{
-	va_list argptr;
-	int     numchars;
-
-	va_start(argptr,fmt);
-	numchars= vsnprintf(dst,size,fmt,argptr);
-	va_end(argptr);
-	if (size > 0)
-		dst[size-1]=0;
-#ifdef _MSC_VER
-	if(numchars==-1)
-		numchars=strlen(dst);
-#endif
-	if(numchars>=(int)size && numchars>0)
-		numchars=size-1;
-	return(numchars);
-}
-
-#ifdef NEEDS_STRLCPY
-size_t strlcpy(char *dst, const char *src, size_t size)
-{
-	size_t i;
-
-	if(size < 1)
-		return 0;
-
-	for(i = 0; src[i] != '\0'; i++) {
-		if(i < (size - 1))
-			*(dst++) = src[i];
-	}
-	*dst = 0;
-	return i;
-}
-#endif
-
-#ifdef _WIN32
-/****************************************************************************/
-/* Case insensitive version of strstr()	- currently heavy-handed			*/
-/****************************************************************************/
-char* strcasestr(const char* haystack, const char* needle)
-{
-	const char* p;
-	size_t len = strlen(needle);
-
-	for(p = haystack; *p != '\0'; p++) {
-		if(strnicmp(p, needle, len) == 0)
-			return (char*)p;
-	}
-	return NULL;
-}
-#endif
-
-/****************************************************************************/
-/* Return last character of string											*/
-/****************************************************************************/
-char* lastchar(const char* str)
-{
-	size_t	len;
-
-	len = strlen(str);
-
-	if(len)
-		return((char*)&str[len-1]);
-
-	return((char*)str);
-}
-
-/****************************************************************************/
-/* Return character value of C-escaped (\) character						*/
-/****************************************************************************/
-char c_unescape_char(const char ch)
-{
-	switch(ch) {
-		case 'e':	return(ESC);	/* non-standard */
-		case 'a':	return('\a');
-		case 'b':	return('\b');
-		case 'f':	return('\f');
-		case 'n':	return('\n');
-		case 'r':	return('\r');
-		case 't':	return('\t');
-		case 'v':	return('\v');
-	}
-	return(ch);
-}
-
-/****************************************************************************/
-/* Return character value of C-escaped (\) character literal sequence		*/
-/* supports \x## (hex) and \### sequences (for octal or decimal)			*/
-/****************************************************************************/
-char c_unescape_char_ptr(const char* str, char** endptr)
-{
-	char	ch;
-
-	if(*str == 'x') {
-		int digits = 0;		// \x## for hexadecimal character literals (only 2 digits supported)
-		++str;
-		ch = 0;
-		while(digits < 2 && IS_HEXDIGIT(*str)) {
-			ch *= 0x10;	
-			ch += HEX_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#ifdef C_UNESCAPE_OCTAL_SUPPORT
-	} else if(IS_OCTDIGIT(*str)) {
-		int digits = 0;		// \### for octal character literals (only 3 digits supported)
-		ch = 0;
-		while(digits < 3 && IS_OCTDIGIT(*str)) {
-			ch *= 8;
-			ch += OCT_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#else
-	} else if(IS_DIGIT(*str)) {
-		int digits = 0;		// \### for decimal character literals (only 3 digits supported)
-		ch = 0;
-		while(digits < 3 && IS_DIGIT(*str)) {
-			ch *= 10;
-			ch += DEC_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#endif
-	 } else
-		ch=c_unescape_char(*(str++));
-
-	if(endptr!=NULL)
-		*endptr=(char*)str;
-
-	return ch;
-}
-
-/****************************************************************************/
-/* Unescape a C string, in place											*/
-/****************************************************************************/
-char* c_unescape_str(char* str)
-{
-	char	ch;
-	char*	buf;
-	char*	src;
-	char*	dst;
-
-	if(str==NULL || (buf=strdup(str))==NULL)
-		return(NULL);
-
-	src=buf;
-	dst=str;
-	while((ch=*(src++))!=0) {
-		if(ch=='\\')	/* escape */
-			ch=c_unescape_char_ptr(src,&src);
-		*(dst++)=ch;
-	}
-	*dst=0;
-	free(buf);
-	return(str);
-}
-
-char* c_escape_char(char ch)
-{
-	switch(ch) {
-		case 0:		return("\\x00");
-		case 1:		return("\\x01");
-		case ESC:	return("\\e");		/* non-standard */
-		case '\a':	return("\\a");
-		case '\b':	return("\\b");
-		case '\f':	return("\\f");
-		case '\n':	return("\\n");
-		case '\r':	return("\\r");
-		case '\t':	return("\\t");
-		case '\v':	return("\\v");
-		case '\\':	return("\\\\");
-		case '\"':	return("\\\"");
-		case '\'':	return("\\'");
-	}
-	return(NULL);
-}
-
-char* c_escape_str(const char* src, char* dst, size_t maxlen, BOOL ctrl_only)
-{
-	const char*	s;
-	char*		d;
-	const char*	e;
-
-	for(s=src,d=dst;*s && (size_t)(d-dst)<maxlen;s++) {
-		if((!ctrl_only || (uchar)*s < ' ') && (e=c_escape_char(*s))!=NULL) {
-			strncpy(d,e,maxlen-(d-dst));
-			d+=strlen(d);
-		} else if((uchar)*s < ' ') {
-			d += safe_snprintf(d, maxlen-(d-dst), "\\x%02X", *s);
-		} else *d++=*s;
-	}
-	*d=0;
-
-	return(dst);
-}
-
-/* Returns a byte count parsed from the 'str' argument, supporting power-of-2
- * short-hands (e.g. 'K' for kibibytes).
- * If 'unit' is specified (greater than 1), result is divided by this amount.
- * 
- * Moved from ini_file.c/parseBytes()
- */
-int64_t parse_byte_count(const char* str, ulong unit)
-{
-	char*	p=NULL;
-	double	bytes;
-
-	bytes=strtod(str,&p);
-	if(p!=NULL) {
-		SKIP_WHITESPACE(p);
-		switch(toupper(*p)) {
-			case 'E':
-				bytes*=1024;
-				/* fall-through */
-			case 'P':
-				bytes*=1024;
-				/* fall-through */
-			case 'T':
-				bytes*=1024;
-				/* fall-through */
-			case 'G':
-				bytes*=1024;
-				/* fall-through */
-			case 'M':
-				bytes*=1024;
-				/* fall-through */
-			case 'K':
-				bytes*=1024;
-				break;
-		}
-	}
-	return((int64_t)(unit>1 ? (bytes/unit):bytes));
-}
-
-static const double one_tebibyte = 1024.0*1024.0*1024.0*1024.0;
-static const double one_gibibyte = 1024.0*1024.0*1024.0;
-static const double one_mebibyte = 1024.0*1024.0;
-static const double one_kibibyte = 1024.0;
-
-/* Convert an exact byte count to a string with a floating point value
-   and a single letter multiplier/suffix.
-   For values evenly divisible by 1024, no suffix otherwise.
-*/
-char* byte_count_to_str(int64_t bytes, char* str, size_t size)
-{
-	if(bytes && fmod((double)bytes,one_tebibyte)==0)
-		safe_snprintf(str, size, "%gT",bytes/one_tebibyte);
-	else if(bytes && fmod((double)bytes,one_gibibyte)==0)
-		safe_snprintf(str, size, "%gG",bytes/one_gibibyte);
-	else if(bytes && fmod((double)bytes,one_mebibyte)==0)
-		safe_snprintf(str, size, "%gM",bytes/one_mebibyte);
-	else if(bytes && fmod((double)bytes,one_kibibyte)==0)
-		safe_snprintf(str, size, "%gK",bytes/one_kibibyte);
-	else
-		safe_snprintf(str, size, "%"PRIi64, bytes);
-
-	return str;
-}
-
-/* Convert a rounded byte count to a string with a floating point value
-   with a single decimal place and a single letter multiplier/suffix.
-   This function also appends 'B' for exact byte counts (< 1024).
-   'unit' is the smallest divisor used.
-*/
-char* byte_estimate_to_str(int64_t bytes, char* str, size_t size, ulong unit, int precision)
-{
-	if(bytes >= one_tebibyte)
-		safe_snprintf(str, size, "%1.*fT", precision, bytes/one_tebibyte);
-	else if(bytes >= one_gibibyte || unit == one_gibibyte)
-		safe_snprintf(str, size, "%1.*fG", precision, bytes/one_gibibyte);
-	else if(bytes >= one_mebibyte || unit == one_mebibyte)
-		safe_snprintf(str, size, "%1.*fM", precision, bytes/one_mebibyte);
-	else if(bytes >= one_kibibyte || unit == one_kibibyte)
-		safe_snprintf(str, size, "%1.*fK", precision, bytes/one_kibibyte);
-	else
-		safe_snprintf(str, size, "%"PRIi64"B", bytes);
-
-	return str;
-}
-
-
-/* Parse a duration string, default unit is in seconds */
-/* (Y)ears, (W)eeks, (D)ays, (H)ours, and (M)inutes */
-/* suffixes/multipliers are supported. */
-/* Return value is in seconds */
-double parse_duration(const char* str)
-{
-	char*	p=NULL;
-	double	t;
-
-	t=strtod(str,&p);
-	if(p!=NULL) {
-		SKIP_WHITESPACE(p);
-		switch(toupper(*p)) {
-			case 'Y':	t*=365.0*24.0*60.0*60.0; break;
-			case 'W':	t*=  7.0*24.0*60.0*60.0; break;
-			case 'D':	t*=		 24.0*60.0*60.0; break;
-			case 'H':	t*=			  60.0*60.0; break;
-			case 'M':	t*=				   60.0; break;
-		}
-	}
-	return t;
-}
-
-/* Convert a duration (in seconds) to a string
- * with a single letter multiplier/suffix: 
- * (Y)ears, (W)eeks, (D)ays, (H)ours, (M)inutes, or (S)econds
- */
-char* duration_to_str(double value, char* str, size_t size)
-{
-	if(value && fmod(value,365.0*24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gY",value/(365.0*24.0*60.0*60.0));
-	else if(value && fmod(value,7.0*24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gW",value/(7.0*24.0*60.0*60.0));
-	else if(value && fmod(value,24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gD",value/(24.0*60.0*60.0));
-	else if(value && fmod(value,60.0*60.0)==0)
-		safe_snprintf(str, size, "%gH",value/(60.0*60.0));
-	else if(value && fmod(value,60.0)==0)
-		safe_snprintf(str, size, "%gM",value/60.0);
-	else
-		safe_snprintf(str, size, "%gS",value);
-
-	return str;
-}
-
-/* Convert a duration (in seconds) to a verbose string
- * with a word clarifier / modifier: 
- * year[s], week[s], day[s], hour[s], minute[s] or second[s]
- */
-char* duration_to_vstr(double value, char* str, size_t size)
-{
-	if(value && fmod(value,365.0*24.0*60.0*60.0)==0) {
-		value /= (365.0*24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g year%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,7.0*24.0*60.0*60.0)==0) {
-		value /= (7.0*24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g week%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,24.0*60.0*60.0)==0) {
-		value /= (24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g day%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,60.0*60.0)==0) {
-		value /= (60.0*60.0);
-		safe_snprintf(str, size, "%g hour%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,60.0)==0) {
-		value /= 60.0;
-		safe_snprintf(str, size, "%g minute%s", value, value == 1 ? "":"s");
-	}
-	else
-		safe_snprintf(str, size, "%g second%s", value, value == 1 ? "":"s");
-
-	return str;
-}
-
-
-/****************************************************************************/
-/* Convert ASCIIZ string to upper case										*/
-/****************************************************************************/
-#if defined(__unix__)
-char* strupr(char* str)
-{
-	char*	p=str;
-
-	while(*p) {
-		*p=toupper(*p);
-		p++;
-	}
-	return(str);
-}
-/****************************************************************************/
-/* Convert ASCIIZ string to lower case										*/
-/****************************************************************************/
-char* strlwr(char* str)
-{
-	char*	p=str;
-
-	while(*p) {
-		*p=tolower(*p);
-		p++;
-	}
-	return(str);
-}
-/****************************************************************************/
-/* Reverse characters of a string (provided by amcleod)						*/
-/****************************************************************************/
-char* strrev(char* str)
-{
-    char t, *i=str, *j=str+strlen(str);
-
-    while (i<j) {
-        t=*i; *(i++)=*(--j); *j=t;
-    }
-    return str;
-}
-#endif
-
-#if !defined(__unix__)
-
-/****************************************************************************/
-/* Implementations of the recursive (thread-safe) version of strtok			*/
-/* Thanks to Apache Portable Runtime (APR)									*/
-/****************************************************************************/
-char* strtok_r(char *str, const char *delim, char **last)
-{
-    char* token;
-
-    if (str==NULL)      /* subsequent call */
-        str = *last;    /* start where we left off */
-
-    /* skip characters in delimiter (will terminate at '\0') */
-    while(*str && strchr(delim, *str))
-        ++str;
-
-    if(!*str) {         /* no more tokens */
-		*last = str;
-        return NULL;
-	}
-
-    token = str;
-
-    /* skip valid token characters to terminate token and
-     * prepare for the next call (will terminate at '\0)
-     */
-    *last = token + 1;
-    while(**last && !strchr(delim, **last))
-        ++*last;
-
-    if (**last) {
-        **last = '\0';
-        ++*last;
-    }
-
-    return token;
-}
-
-#endif
-
-/****************************************************************************/
-/* Initialize (seed) the random number generator							*/
-/****************************************************************************/
-void xp_randomize(void)
-{
-#if !(defined(HAS_SRANDOMDEV_FUNC) && defined(HAS_RANDOM_FUNC))
-	unsigned seed=~0;
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	int		rf;
-#endif
-#endif
-
-#if defined(HAS_SRANDOMDEV_FUNC) && defined(HAS_RANDOM_FUNC)
-	srandomdev();
-	return;
-#else
-
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	if((rf=open(URANDOM_DEV, O_RDONLY))!=-1) {
-		read(rf, &seed, sizeof(seed));
-		close(rf);
-	}
-	else {
-#endif
-		unsigned curtime	= (unsigned)time(NULL);
-		unsigned process_id = (unsigned)GetCurrentProcessId();
-
-		seed = curtime ^ BYTE_SWAP_INT(process_id);
-
-		#if defined(_WIN32) || defined(GetCurrentThreadId)
-			seed ^= (unsigned)GetCurrentThreadId();
-		#endif
-
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	}
-#endif
-
-#ifdef HAS_RANDOM_FUNC
- 	srandom(seed);
-#else
- 	srand(seed);
-#endif
-#endif
-}
-
-/****************************************************************************/
-/* Return random number between 0 and n-1									*/
-/****************************************************************************/
-long xp_random(int n)
-{
-#ifdef HAS_RANDOM_FUNC
-	long			curr;
-	unsigned long	limit;
-
-	if(n<2)
-		return(0);
-
-	limit = ((1UL<<((sizeof(long)*CHAR_BIT)-1)) / n) * n - 1;
-
-	while(1) {
-		curr=random();
-		if(curr <= limit)
-			return(curr % n);
-	}
-#else
-	double f=0;
-	int ret;
-
-	if(n<2)
-		return(0);
-	do {
-		f=(double)rand()/(double)(RAND_MAX+1);
-		ret=(int)(n*f);
-	} while(ret==n);
-
-	return(ret);
-#endif
-}
-
-/****************************************************************************/
-/* Return ASCII string representation of ulong								*/
-/* There may be a native GNU C Library function to this...					*/
-/****************************************************************************/
-#if !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
-char* ultoa(ulong val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%lo",val);
-			break;
-		case 10:
-			sprintf(str,"%lu",val);
-			break;
-		case 16:
-			sprintf(str,"%lx",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-#endif
-
-/****************************************************************************/
-/* Write the version details of the current operating system into str		*/
-/****************************************************************************/
-char* os_version(char *str)
-{
-#if defined(__OS2__) && defined(__BORLANDC__)
-
-	sprintf(str,"OS/2 %u.%u (%u.%u)",_osmajor/10,_osminor/10,_osmajor,_osminor);
-
-#elif defined(_WIN32)
-
-	/* Windows Version */
-	char*			winflavor="";
-	OSVERSIONINFO	winver;
-
-	winver.dwOSVersionInfoSize=sizeof(winver);
-	GetVersionEx(&winver);
-
-	switch(winver.dwPlatformId) {
-		case VER_PLATFORM_WIN32_NT:
-			winflavor="NT ";
-			break;
-		case VER_PLATFORM_WIN32s:
-			winflavor="Win32s ";
-			break;
-		case VER_PLATFORM_WIN32_WINDOWS:
-			winver.dwBuildNumber&=0xffff;
-			break;
-	}
-
-	/* Work-around Microsoft Windows 8.1 stupidity where GetVersionEx() lies about the current OS version */
-	if(winver.dwMajorVersion == 6 && winver.dwMinorVersion == 2) {
-		WKSTA_INFO_100* wksta_info;
-		if(NetWkstaGetInfo(NULL, 100, (LPBYTE*)&wksta_info) == NERR_Success) {
-			winver.dwMajorVersion = wksta_info->wki100_ver_major;
-			winver.dwMinorVersion = wksta_info->wki100_ver_minor;
-			winver.dwBuildNumber = 0;
-		}
-	}
-
-	sprintf(str,"Windows %sVersion %lu.%lu"
-			,winflavor
-			,winver.dwMajorVersion, winver.dwMinorVersion);
-	if(winver.dwBuildNumber)
-		sprintf(str+strlen(str), " (Build %lu)", winver.dwBuildNumber);
-	if(winver.szCSDVersion[0])
-		sprintf(str+strlen(str), " %s", winver.szCSDVersion);
-
-#elif defined(__unix__)
-
-	struct utsname unixver;
-
-	if(uname(&unixver)<0)
-		sprintf(str,"Unix (uname errno: %d)",errno);
-	else
-		sprintf(str,"%s %s %s"
-			,unixver.sysname	/* e.g. "Linux" */
-			,unixver.release	/* e.g. "2.2.14-5.0" */
-			,unixver.machine	/* e.g. "i586" */
-			);
-
-#else	/* DOS */
-
-	sprintf(str,"DOS %u.%02u",_osmajor,_osminor);
-
-#endif
-
-	return(str);
-}
-
-char* os_cmdshell(void)
-{
-	char*	shell=getenv(OS_CMD_SHELL_ENV_VAR);
-
-#if defined(__unix__)
-	if(shell==NULL)
-#ifdef _PATH_BSHELL
-		shell=_PATH_BSHELL;
-#else
-		shell="/bin/sh";
-#endif
-#endif
-
-	return(shell);
-}
-
-/****************************************************************/
-/* Microsoft (DOS/Win32) real-time system clock implementation.	*/
-/****************************************************************/
-#ifdef __unix__
-clock_t msclock(void)
-{
-	return (clock_t)(llroundl(xp_timer() * 1000.0));
-}
-#endif
-
-/****************************************************************************/
-/* Skips all white-space chars at beginning of 'str'						*/
-/****************************************************************************/
-char* skipsp(char* str)
-{
-	SKIP_WHITESPACE(str);
-	return(str);
-}
-
-/****************************************************************************/
-/* Truncates all white-space chars off end of 'str'	(needed by STRERRROR)	*/
-/****************************************************************************/
-char* truncsp(char* str)
-{
-	size_t i,len;
-
-	if(str!=NULL) {
-		i=len=strlen(str);
-		while(i && IS_WHITESPACE(str[i-1]))
-			i--;
-		if(i!=len)
-			str[i]=0;	/* truncate */
-	}
-	return(str);
-}
-
-/****************************************************************************/
-/* Truncates common white-space chars off end of \n-terminated lines in		*/
-/* 'dst' and retains original line break format	(e.g. \r\n or \n)			*/
-/****************************************************************************/
-char* truncsp_lines(char* dst)
-{
-	char* sp;
-	char* dp;
-	char* src;
-
-	if((src=strdup(dst))==NULL)
-		return(dst);
-
-	for(sp=src, dp=dst; *sp!=0; sp++) {
-		if(*sp=='\n') {
-			while(dp!=dst
-				&& (*(dp-1)==' ' || *(dp-1)=='\t' || *(dp-1)=='\r'))
-					dp--;
-			if(sp!=src && *(sp-1)=='\r')
-				*(dp++)='\r';
-		}
-		*(dp++)=*sp;
-	}
-	*dp=0;
-
-	free(src);
-	return(dst);
-}
-
-/****************************************************************************/
-/* Truncates carriage-return and line-feed chars off end of 'str'			*/
-/****************************************************************************/
-char* truncnl(char* str)
-{
-	size_t i,len;
-
-	if(str!=NULL) {
-		i=len=strlen(str);
-		while(i && (str[i-1]=='\r' || str[i-1]=='\n'))
-			i--;
-		if(i!=len)
-			str[i]=0;	/* truncate */
-	}
-	return(str);
-}
-
-/****************************************************************************/
-/* Return errno from the proper C Library implementation					*/
-/* (single/multi-threaded)													*/
-/****************************************************************************/
-int get_errno(void)
-{
-	return(errno);
-}
-
-/****************************************************************************/
-/* Returns the current value of the systems best timer (in SECONDS)			*/
-/* Any value < 0 indicates an error											*/
-/****************************************************************************/
-long double	xp_timer(void)
-{
-	long double ret;
-#if defined(__unix__)
-	struct timespec ts;
-
-	if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
-		ret = ts.tv_sec;
-		ret += ((long double)ts.tv_nsec) / 1000000000;
-	}
-	else
-		ret = -1;
-#elif defined(_WIN32)
-	LARGE_INTEGER	freq;
-	LARGE_INTEGER	tick;
-	if(QueryPerformanceFrequency(&freq) && QueryPerformanceCounter(&tick)) {
-#if 0
-		ret=((long double)tick.HighPart*4294967296)+((long double)tick.LowPart);
-		ret /= ((long double)freq.HighPart*4294967296)+((long double)freq.LowPart);
-#else
-		/* In MSVC, a long double does NOT have 19 decimals of precision */
-		ret=(((long double)(tick.QuadPart%freq.QuadPart))/freq.QuadPart);
-		ret+=tick.QuadPart/freq.QuadPart;
-#endif
-	}
-	else {
-		ret=GetTickCount();
-		ret /= 1000;
-	}
-#else
-#error no high-resolution time for this platform
-#endif
-	return(ret);
-}
-
-/* Returns TRUE if specified process is running */
-BOOL check_pid(pid_t pid)
-{
-#if defined(__unix__)
-	return(kill(pid,0)==0);
-#elif defined(_WIN32)
-	HANDLE	h;
-	BOOL	result=FALSE;
-
-	if((h=OpenProcess(PROCESS_QUERY_INFORMATION,/* inheritable: */FALSE, pid)) != NULL) {
-		DWORD	code;
-		if(GetExitCodeProcess(h,(PDWORD)&code)==TRUE && code==STILL_ACTIVE)
-			result=TRUE;
-		CloseHandle(h);
-	}
-	return result;
-#else
-	return FALSE;	/* Need check_pid() definition! */
-#endif
-}
-
-/* Terminate (unconditionally) the specified process */
-BOOL terminate_pid(pid_t pid)
-{
-#if defined(__unix__)
-	return(kill(pid,SIGKILL)==0);
-#elif defined(_WIN32)
-	HANDLE	h;
-	BOOL	result=FALSE;
-
-	if((h=OpenProcess(PROCESS_TERMINATE,/* inheritable: */FALSE, pid)) != NULL) {
-		if(TerminateProcess(h,255))
-			result=TRUE;
-		CloseHandle(h);
-	}
-	return result;
-#else
-	return FALSE;	/* Need check_pid() definition! */
-#endif
-}
-
-/****************************************************************************/
-/* Re-entrant (thread-safe) version of strerror()							*/
-/* GNU (not POSIX) inspired API											*/
-/****************************************************************************/
-char* safe_strerror(int errnum, char *buf, size_t buflen)
-{
-	strncpy(buf, "Unknown error", buflen);
-	buf[buflen - 1] = 0;
-
-#if defined(_MSC_VER)
-	strerror_s(buf, buflen, errnum);
-#elif defined(_WIN32)
-	strncpy(buf, strerror(errnum), buflen);
-	buf[buflen - 1] = 0;
-#elif defined(_GNU_SOURCE)
-	buf = strerror_r(errnum, buf, buflen);
-#else
-	strerror_r(errnum, buf, buflen);
-#endif
-	return buf;
-}
diff --git a/xpdev/genwrap.h b/xpdev/genwrap.h
deleted file mode 100644
index e888aa0..0000000
--- a/xpdev/genwrap.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/* General cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _GENWRAP_H
-#define _GENWRAP_H
-
-#include <stdio.h>		/* sprintf */
-#include <string.h>		/* strerror() */
-#include <time.h>		/* clock_t */
-#include "gen_defs.h"	/* ulong */
-#include "wrapdll.h"	/* DLLEXPORT and */
-
-#if defined(__unix__)
-	#include <sched.h>		/* sched_yield */
-	#include <time.h>	/* clock_t */
-	#include <sys/time.h>	/* struct timeval */
-	#include <strings.h>	/* strcasecmp() */
-	#include <unistd.h>		/* usleep */
-
-	#ifdef XPDEV_THREAD_SAFE
-		#include <pthread.h>/* Check for GNU PTH libs */
-		#ifdef _PTH_PTHREAD_H_
-			#include <pth.h>
-		#endif
-		#define GetCurrentThreadId()	pthread_self()
-	#endif
-#elif defined(_WIN32)
-	#include <process.h>	/* getpid() */
-	#ifndef __MINGW32__
-        typedef DWORD pid_t;
-	#endif
-#endif
-
-#if !defined(_WIN32)
-	/* Simple Win32 function equivalents */
-	#define GetCurrentProcessId()		getpid()
-#endif
-
-/* utime() support */
-#if defined(_MSC_VER) || defined(__WATCOMC__)
-	#include <sys/utime.h>
-#else
-	#include <utime.h>
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/*
- * The alloca() function can't be implemented in C, and on some
- * platforms it can't be implemented at all as a callable function.
- * The GNU C compiler provides a built-in alloca() which we can use;
- * On platforms where alloca() is not in libc, programs which use
- * it will fail to link when compiled with non-GNU compilers.
- */
-#if __GNUC__ >= 2 || defined(__INTEL_COMPILER)
-#undef  alloca  /* some GNU bits try to get cute and define this on their own */
-#define alloca(sz) __builtin_alloca(sz)
-#elif defined(_WIN32)
-#include <malloc.h>
-#endif
-
-/*********************/
-/* Compiler-specific */
-/*********************/
-
-/* Compiler Description */
-#if defined(__BORLANDC__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"BCC %X.%02X" \
-		,__BORLANDC__>>8,__BORLANDC__&0xff);
-
-#elif defined(_MSC_VER)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"MSC %u", _MSC_VER);
-
-#elif defined(__clang__) && defined(__clang_patchlevel__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF3(str,"Clang %u.%u.%u" \
-		,__clang_major__,__clang_minor__,__clang_patchlevel__);
-
-#elif defined(__clang__) && defined(__clang_minor__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"Clang %u.%u" \
-		,__clang_major__,__clang_minor__);
-
-#elif defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF3(str,"GCC %u.%u.%u" \
-		,__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__);
-
-#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"GCC %u.%u" \
-		,__GNUC__,__GNUC_MINOR__);
-
-#elif defined(__WATCOMC__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"WATC %d" \
-		,__WATCOMC__);
-
-#elif defined(__DMC__)	/* Digital Mars C/C++ */
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"DMC %X.%02X" \
-		,__DMC__>>8,__DMC__&0xff);
-
-#else /* Unknown compiler */
-
-	#define DESCRIBE_COMPILER(str) SAFECOPY(str,"UNKNOWN COMPILER");
-
-#endif
-
-/**********/
-/* Macros */
-/**********/
-
-/* Target Platform Description */
-#if defined(_WIN64)
-	#define PLATFORM_DESC	"Win64"
-#elif defined(_WIN32)
-	#define PLATFORM_DESC	"Win32"
-#elif defined(__OS2__)
-	#define PLATFORM_DESC	"OS/2"
-#elif defined(__MSDOS__)
-	#define PLATFORM_DESC	"DOS"
-#elif defined(__linux__)
-	#define PLATFORM_DESC	"Linux"
-#elif defined(__FreeBSD__)
-	#define PLATFORM_DESC	"FreeBSD"
-#elif defined(__OpenBSD__)
-	#define PLATFORM_DESC	"OpenBSD"
-#elif defined(__NetBSD__)
-	#define PLATFORM_DESC	"NetBSD"
-#elif defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__)
-	#define PLATFORM_DESC	"MacOSX"
-#elif defined(BSD)
-	#define PLATFORM_DESC	"BSD"
-#elif defined(__solaris__)
-	#define PLATFORM_DESC	"Solaris"
-#elif defined(__sun__)
-	#define PLATFORM_DESC	"SunOS"
-#elif defined(__gnu__)
-	#define PLATFORM_DESC	"GNU/Hurd"
-#elif defined(__QNX__)
-	#define PLATFORM_DESC	"QNX"
-#elif defined(__unix__)
-	#define PLATFORM_DESC	"Unix"
-#elif defined(__HAIKU__)
-	#define PLATFORM_DESC	"Haiku"
-#else
-	#error "Need to describe target platform"
-#endif
-
-#if defined(_M_X64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__amd64__)
-	#define ARCHITECTURE_DESC "x64"
-#elif defined(__i386__) || _M_IX86 == 300
-	#define ARCHITECTURE_DESC "i386"
-#elif defined(__i486__) || _M_IX86 == 400
-	#define ARCHITECTURE_DESC "i486"
-#elif defined(__i586__) || _M_IX86 == 500
-	#define ARCHITECTURE_DESC "i586"
-#elif defined(__i686__) || _M_IX86 == 600
-	#define ARCHITECTURE_DESC "i686"
-#elif defined(__i786__) || _M_IX86 == 700
-	#define ARCHITECTURE_DESC "i786"
-#elif defined(_X86_) || defined(__x86__) || defined(_M_IX86)
-	#define ARCHITECTURE_DESC "x86"
-#elif defined(__mips__)
-	#define ARCHITECTURE_DESC "mips"
-#elif __ARM_ARCH == 5 || _M_ARM == 5
-	#define ARCHITECTURE_DESC "armv5"
-#elif __ARM_ARCH == 6 || _M_ARM == 6
-	#define ARCHITECTURE_DESC "armv6"
-#elif __ARM_ARCH == 7 || _M_ARM == 7
-	#define ARCHITECTURE_DESC "armv7"
-#elif __ARM_ARCH == 8 || _M_ARM == 8 
-	#define ARCHITECTURE_DESC "armv8"
-#elif defined(__aarch64__)
-	#define ARCHITECTURE_DESC "arm64"
-#elif defined(__arm__)
-	#define ARCHITECTURE_DESC "arm"
-#elif defined(_M_PPC) || defined(__ppc__)
-	#define ARCHITECTURE_DESC "ppc"
-#elif defined(_M_IA64) || defined(__ia64__)
-	#define ARCHITECTURE_DESC "ia64"
-#else
-	#error "Need to describe target architecture"
-#endif
-
-/*********************/
-/* String Functionss */
-/*********************/
-
-#ifndef USE_SNPRINTF
-	#define snprintf		safe_snprintf
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__DMC__)
-#if !defined(snprintf)
-	#define snprintf		_snprintf
-#endif
-	#define vsnprintf		_vsnprintf
-	#define NEEDS_STRLCPY
-#endif
-
-#if defined(__WATCOMC__)
-	#define vsnprintf(s,l,f,a)	vsprintf(s,f,a)
-#endif
-
-#if !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
-	DLLEXPORT char* ultoa(ulong, char*, int radix);
-#endif
-
-#if defined(__unix__)
-	DLLEXPORT char*	strupr(char* str);
-	DLLEXPORT char*	strlwr(char* str);
-	DLLEXPORT char* strrev(char* str);
-	#if !defined(stricmp)
-		#define stricmp			strcasecmp
-		#define strnicmp		strncasecmp
-	#endif
-#endif
-
-#if defined(NEEDS_STRLCPY)
-	size_t strlcpy(char *dst, const char *src, size_t size);
-#endif
-
-#if defined(_WIN32)
-	DLLEXPORT char* strcasestr(const char* haystack, const char* needle);
-#endif
-
-/* Skip white-space chars at beginning of string */
-DLLEXPORT char*		skipsp(char* str);
-/* Truncate white-space chars off end of string */
-DLLEXPORT char*		truncsp(char* str);
-/* Truncate white-space chars off end of every \n-terminated line in string */
-DLLEXPORT char*		truncsp_lines(char* str);
-/* Truncate new-line chars off end of string */
-DLLEXPORT char*		truncnl(char* str);
-
-#define STRERROR(x)		strerror(x)
-
-/* Re-entrant version of strerror() */
-DLLEXPORT char*		safe_strerror(int errnum, char* buf, size_t buflen);
-
-/*********************/
-/* Utility Functions */
-/*********************/
-/* Thunking for multi-threaded specific implementations of "errno" */
-DLLEXPORT int get_errno(void);
-
-/**********************************/
-/* Common Utility Macro Functions */
-/**********************************/
-
-#if defined(_WIN32)
-
-	#define YIELD()			Sleep(1) /* Must sleep at least 1ms to avoid 100% CPU utilization */
-	#define	MAYBE_YIELD()	Sleep(0)
-	#define SLEEP(x)		Sleep(x)
-	#define	popen			_popen
-	#define pclose			_pclose
-	#define tzname			_tzname
-
-#elif defined(__OS2__)
-
-	#define YIELD()			DosSleep(1)	/* Must sleep at least 1ms to avoid 100% CPU utilization */
-	#define	MAYBE_YIELD()	DosSleep(0)
-	#define SLEEP(x)		DosSleep(x)
-
-#elif defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
-
-	#if defined(_PTH_PTHREAD_H_)
-		#define SLEEP(x)		({ int sleep_msecs=x; struct timeval tv; \
-								tv.tv_sec=(sleep_msecs/1000); tv.tv_usec=((sleep_msecs%1000)*1000); \
-								pth_nap(tv); })
-	#else
-		#define SLEEP(x)		({	int sleep_msecs=x; struct timespec ts={0}; \
-								ts.tv_sec=(sleep_msecs/1000); ts.tv_nsec=((sleep_msecs%1000)*1000000); \
-								while(nanosleep(&ts, &ts) != 0 && errno==EINTR && x > 1); })
-	#endif
-
-	#define YIELD()			SLEEP(1)
-
-	#if defined(XPDEV_THREAD_SAFE)
-		#if defined(__FreeBSD__)
-			#define MAYBE_YIELD()			pthread_yield()
-		#elif defined(_PTH_PTHREAD_H_)
-			#define MAYBE_YIELD()			pth_yield(NULL)
-		#elif defined(_POSIX_PRIORITY_SCHEDULING)
-			#define MAYBE_YIELD()			sched_yield()
-		#else
-			#define MAYBE_YIELD()			YIELD()
-		#endif
-	#else
-		#if defined(_POSIX_PRIORITY_SCHEDULING)
-			#define	MAYBE_YIELD()			sched_yield()
-		#else
-			#define MAYBE_YIELD()			YIELD()
-		#endif
-	#endif
-
-	/*
-	 * QNX doesn't support fork() in threaded apps (yet) using vfork() instead
-	 * works, but relies on undefined behaviours not being nasty.  On most OSs
-	 * vfork() will share the stack between the parent and child...
-	 */
-	#if defined(__QNX__)
-		#define FORK()	vfork()
-	#else
-		#define FORK()	fork()
-	#endif
-
-
-#else	/* Unsupported OS */
-
-	#error "Unsupported Target: Need some macros and/or function prototypes here."
-
-#endif
-
-/* Command processor/shell environment variable name */
-#ifdef __unix__
-	#define OS_CMD_SHELL_ENV_VAR	"SHELL"
-#else	/* DOS/Windows/OS2 */
-	#define OS_CMD_SHELL_ENV_VAR	"COMSPEC"
-#endif
-
-/* Win32 implementations of recursive (thread-safe) std C time functions on Unix */
-#if !defined(__unix__)
-
-	DLLEXPORT char*	strtok_r(char *str, const char *delim, char **last);
-#endif
-
-/* Mimic the Borland randomize() and random() CRTL functions */
-DLLEXPORT void		xp_randomize(void);
-DLLEXPORT long		xp_random(int);
-
-DLLEXPORT long double xp_timer(void);
-DLLEXPORT char*		os_version(char *str);
-DLLEXPORT char*		os_cmdshell(void);
-DLLEXPORT char*		lastchar(const char* str);
-DLLEXPORT int		safe_snprintf(char *dst, size_t size, const char *fmt, ...)
-#if defined(__GNUC__)   // Catch printf-format errors
-    __attribute__ ((format (printf, 3 , 4)));            // 1 is 'this'
-#endif
-;
-
-/* C string/char escape-sequence processing */
-DLLEXPORT char*		c_escape_str(const char* src, char* dst, size_t maxlen, BOOL ctrl_only);
-DLLEXPORT char*		c_escape_char(char ch);
-DLLEXPORT char*		c_unescape_str(char* str);
-DLLEXPORT char		c_unescape_char_ptr(const char* str, char** endptr);
-DLLEXPORT char		c_unescape_char(char ch);
-
-/* Power-of-2 byte count string parser (e.g. "100K" returns 102400 if unit is 1) */
-DLLEXPORT int64_t	parse_byte_count(const char*, ulong unit);
-DLLEXPORT double	parse_duration(const char*);
-DLLEXPORT char*		duration_to_str(double value, char* str, size_t size);
-DLLEXPORT char*		duration_to_vstr(double value, char* str, size_t size);
-DLLEXPORT char*		byte_count_to_str(int64_t bytes, char* str, size_t size);
-DLLEXPORT char*		byte_estimate_to_str(int64_t bytes, char* str, size_t size, ulong unit, int precision);
-
-/* Microsoft (e.g. DOS/Win32) real-time system clock API (ticks since process started) */
-typedef		clock_t				msclock_t;
-#if defined(_WIN32) || defined(__OS2__)
-	#define		MSCLOCKS_PER_SEC	CLOCKS_PER_SEC	/* e.g. 18.2 on DOS, 1000.0 on Win32 */
-	#define		msclock()			clock()
-#else
-	#define		MSCLOCKS_PER_SEC	1000
-	msclock_t	msclock(void);
-#endif
-
-DLLEXPORT BOOL		check_pid(pid_t);
-DLLEXPORT BOOL		terminate_pid(pid_t);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/haproxy.h b/xpdev/haproxy.h
deleted file mode 100644
index b80d382..0000000
--- a/xpdev/haproxy.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* haproxy.h */
-
-/* HAPROXY PROTOCOL constant definitions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* HAPROXY PROTO BINARY DEFINITIONS */
-#define HAPROXY_AFINET			0x1		/* IPv4 Connection */
-#define HAPROXY_AFINET6			0x2		/* IPv6 Connection */
-
-/* HAPROXY COMMANDS */
-#define HAPROXY_LOCAL			0x0		/* Connections instigated by the proxy, eg: health-check */
-#define HAPROXY_PROXY			0x1		/* Relay connections */
diff --git a/xpdev/ini_file.c b/xpdev/ini_file.c
deleted file mode 100644
index 5b09d38..0000000
--- a/xpdev/ini_file.c
+++ /dev/null
@@ -1,2476 +0,0 @@
-/* Functions to create and parse .ini files */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "ini_file.h"
-#include <stdlib.h>		/* strtol */
-#include <string.h>		/* strlen */
-#include <math.h>		/* fmod */
-#include "xpdatetime.h"	/* isoDateTime_t */
-#include "datewrap.h"	/* ctime_r */
-#include "dirwrap.h"	/* fexist */
-#include "filewrap.h"	/* chsize */
-
-/* Maximum length of entire line, includes '\0' */
-#define INI_MAX_LINE_LEN		(INI_MAX_VALUE_LEN*2)
-#define INI_COMMENT_CHAR		';'
-#define INI_OPEN_SECTION_CHAR	'['
-#define INI_CLOSE_SECTION_CHAR	']'
-#define INI_SECTION_NAME_SEP	"|"
-#define INI_BIT_SEP				'|'
-#define INI_NEW_SECTION			((char*)~0)
-#define INI_EOF_DIRECTIVE		"!eof"
-#define INI_INCLUDE_DIRECTIVE	"!include "
-#define INI_INCLUDE_MAX			10000
-
-static ini_style_t default_style;
-
-void iniSetDefaultStyle(ini_style_t style)
-{
-	default_style = style;
-}
-
-/* These correlate with the LOG_* definitions in syslog.h/gen_defs.h */
-static char* logLevelStringList[]
-	= {"Emergency", "Alert", "Critical", "Error", "Warning", "Notice", "Informational", "Debugging", NULL};
-
-str_list_t iniLogLevelStringList(void)
-{
-	return(logLevelStringList);
-}
-
-static BOOL is_eof(char* str)
-{
-	return(*str=='!' && stricmp(truncsp(str),INI_EOF_DIRECTIVE)==0);
-}
-
-static char* section_name(char* p)
-{
-	char*	tp;
-
-	SKIP_WHITESPACE(p);
-	if(*p!=INI_OPEN_SECTION_CHAR)
-		return(NULL);
-	p++;
-	SKIP_WHITESPACE(p);
-	tp=strrchr(p,INI_CLOSE_SECTION_CHAR);
-	if(tp==NULL)
-		return(NULL);
-	*tp=0;
-	truncsp(p);
-
-	return(p);
-}
-
-static BOOL section_match(const char* name, const char* compare, BOOL case_sensitive)
-{
-	BOOL found=FALSE;
-	str_list_t names=strListSplitCopy(NULL,name,INI_SECTION_NAME_SEP);
-	str_list_t comps=strListSplitCopy(NULL,compare,INI_SECTION_NAME_SEP);
-	size_t	i,j;
-	char*	n;
-	char*	c;
-
-	/* Ignore trailing whitespace */
-	for(i=0; names[i]!=NULL; i++)
-		truncsp(names[i]);
-	for(i=0; comps[i]!=NULL; i++)
-		truncsp(comps[i]);
-
-	/* Search for matches */
-	for(i=0; names[i]!=NULL && !found; i++)
-		for(j=0; comps[j]!=NULL && !found; j++) {
-			n=names[i];
-			SKIP_WHITESPACE(n);
-			c=comps[j];
-			SKIP_WHITESPACE(c);
-			if (case_sensitive)
-				found = strcmp(n, c) == 0;
-			else
-				found = stricmp(n, c) == 0;
-		}
-
-	strListFree(&names);
-	strListFree(&comps);
-
-	return(found);
-}
-
-static BOOL seek_section(FILE* fp, const char* section)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-
-	rewind(fp);
-
-	if(section==ROOT_SECTION)
-		return(TRUE);
-
-	/* Perform case-sensitive search first */
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(section_match(p, section, /* case-sensitive */TRUE))
-			return(TRUE);
-	}
-
-	/* Then perform case-insensitive search */
-	rewind(fp);
-	while (!feof(fp)) {
-		if (fgets(str, sizeof(str), fp) == NULL)
-			break;
-		if (is_eof(str))
-			break;
-		if ((p = section_name(str)) == NULL)
-			continue;
-		if (section_match(p, section, /* case-sensitive */FALSE))
-			return(TRUE);
-	}
-
-	return(FALSE);
-}
-
-static size_t find_section_index(str_list_t list, const char* section)
-{
-	char*	p;
-	char	str[INI_MAX_VALUE_LEN];
-	size_t	i;
-
-	/* Perform case-sensitive search first */
-	for (i = 0; list[i] != NULL; i++) {
-		SAFECOPY(str, list[i]);
-		if(is_eof(str))
-			return(strListCount(list));
-		if((p=section_name(str))!=NULL && section_match(p, section, /* case-sensitive */TRUE))
-			return(i);
-	}
-
-	/* Then perform case-insensitive search */
-	for (i = 0; list[i] != NULL; i++) {
-		SAFECOPY(str, list[i]);
-		if (is_eof(str))
-			return(strListCount(list));
-		if ((p = section_name(str)) != NULL && section_match(p, section, /* case-sensitive */FALSE))
-			return(i);
-	}
-
-	return(i);
-}
-
-static size_t section_start(str_list_t list, size_t index)
-{
-	char* p = list[index];
-	if(p != NULL) {
-		SKIP_WHITESPACE(p);
-		if(*p == INI_OPEN_SECTION_CHAR) // A new section starts immediately?
-			return strListCount(list);
-	}
-	return index;
-}
-
-static size_t find_section(str_list_t list, const char* section)
-{
-	size_t	i;
-
-	if(section==ROOT_SECTION)
-		return section_start(list, 0);
-
-	i=find_section_index(list,section);
-	if(list[i]!=NULL)
-		i++;
-	return section_start(list, i);
-}
-
-static char* key_name(char* p, char** vp, BOOL literals_supported)
-{
-	char* equal;
-	char* colon;
-	char* tp;
-
-    *vp=NULL;
-
-	if(p==NULL)
-		return(NULL);
-
-	/* Parse value name */
-	SKIP_WHITESPACE(p);
-	if(*p==INI_COMMENT_CHAR)
-		return(NULL);
-	if(*p==INI_OPEN_SECTION_CHAR)
-		return(INI_NEW_SECTION);
-	equal=strchr(p,'=');
-	colon=strchr(p,':');
-	if(colon==NULL || (equal!=NULL && equal<colon)) {
-		*vp=equal;
-		colon=NULL;
-	} else
-		*vp=colon;
-
-	if(*vp==NULL)
-		return(NULL);
-
-	*(*vp)=0;
-	truncsp(p);
-
-	/* Parse value */
-	(*vp)++;
-	SKIP_WHITESPACE(*vp);
-	if(literals_supported && colon!=NULL) {		/* string literal value */
-		truncnl(*vp);		/* "key : value" - truncate new-line chars only */
-		if(*(*vp) == '"') {	/* handled quoted-strings here */
-			(*vp)++;
-			tp = strrchr(*vp, '"');
-			if(tp != NULL) {
-				*tp = 0;
-			}
-		}
-		c_unescape_str(*vp);
-	} else
-		truncsp(*vp);		/* "key = value" - truncate all white-space chars */
-
-	return(p);
-}
-
-static char* read_value(FILE* fp, const char* section, const char* key, char* value, BOOL literals_supported)
-{
-	char*	p;
-	char*	vp=NULL;
-	char	str[INI_MAX_LINE_LEN];
-
-	if(fp==NULL)
-		return(NULL);
-
-	if(!seek_section(fp,section))
-		return(NULL);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, literals_supported))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(stricmp(p,key)!=0)
-			continue;
-		if(vp==NULL)
-			break;
-		/* key found */
-		sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,vp);
-		return(value);
-	}
-
-	return(NULL);
-}
-
-static size_t get_value(str_list_t list, const char* section, const char* key, char* value, char** vpp, BOOL literals_supported)
-{
-	char    str[INI_MAX_LINE_LEN];
-	char*	p;
-	char*	vp;
-	size_t	i;
-
-	if(value!=NULL)
-		value[0]=0;
-	if(vpp!=NULL)
-		*vpp=NULL;
-	if(list==NULL)
-		return 0;
-
-	for(i=find_section(list, section); list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, literals_supported))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(stricmp(p,key)!=0)
-			continue;
-		if(value!=NULL)
-			sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,vp);
-		if(vpp!=NULL)
-			*vpp=list[i] + (vp - str);
-		return(i);
-	}
-
-	return(i);
-}
-
-BOOL iniSectionExists(str_list_t list, const char* section)
-{
-	size_t	i;
-
-	if(list==NULL)
-		return(FALSE);
-
-	if(section==ROOT_SECTION)
-		return(TRUE);
-
-	i=find_section_index(list,section);
-	return(list[i]!=NULL);
-}
-
-str_list_t iniGetSection(str_list_t list, const char *section)
-{
-	size_t		i;
-	str_list_t	retval;
-	char		*p;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((retval=strListInit())==NULL)
-		return(NULL);
-
-	i=find_section(list,section);
-	if(list[i]!=NULL) {
-		strListPush(&retval, list[i]);
-		for(i++;list[i]!=NULL;i++) {
-			p=list[i];
-			SKIP_WHITESPACE(p);
-			if(*p==INI_OPEN_SECTION_CHAR)
-				break;
-			if(*p)
-				strListPush(&retval, list[i]);
-		}
-	}
-	return(retval);
-}
-
-BOOL iniKeyExists(str_list_t list, const char* section, const char* key)
-{
-	size_t	i;
-
-	if(list==NULL)
-		return(FALSE);
-
-	i=get_value(list, section, key, NULL, NULL, /* literals_supported: */FALSE);
-
-	if(list[i]==NULL || *(list[i])==INI_OPEN_SECTION_CHAR)
-		return(FALSE);
-
-	return(TRUE);
-}
-
-BOOL iniValueExists(str_list_t list, const char* section, const char* key)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	return(vp!=NULL && *vp!=0);
-}
-
-BOOL iniRemoveKey(str_list_t* list, const char* section, const char* key)
-{
-	size_t	i;
-	char*	vp=NULL;
-
-	i=get_value(*list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)
-		return(FALSE);
-
-	return(strListDelete(list,i));
-}
-
-BOOL iniRemoveValue(str_list_t* list, const char* section, const char* key)
-{
-	char*	vp=NULL;
-
-	get_value(*list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)
-		return(FALSE);
-
-	*vp=0;
-	return(TRUE);
-}
-
-BOOL iniRemoveSection(str_list_t* list, const char* section)
-{
-	size_t	i;
-
-	i=find_section_index(*list,section);
-	if((*list)[i]==NULL)	/* not found */
-		return(FALSE);
-	do {
-		strListDelete(list,i);
-	} while((*list)[i]!=NULL && *(*list)[i]!=INI_OPEN_SECTION_CHAR);
-
-	return(TRUE);
-}
-
-BOOL iniRemoveSections(str_list_t* list, const char* prefix)
-{
-	str_list_t sections;
-	const char* section;
-
-	if (list == NULL)
-		return FALSE;
-	sections = iniGetSectionList(*list, prefix);
-	while((section = strListPop(&sections)) != NULL)
-		if(!iniRemoveSection(list, section))
-			return(FALSE);
-
-	strListFree(&sections);
-
-	return(TRUE);
-}
-
-// This sorts comments too, so should not be used on human created/edited files
-BOOL iniSortSections(str_list_t* list, BOOL sort_keys)
-{
-	size_t i;
-	str_list_t root_keys;
-	str_list_t new_list;
-	str_list_t keys;
-	str_list_t section_list = iniGetSectionList(*list, /* prefix */NULL);
-
-	root_keys = iniGetSection(*list, ROOT_SECTION);
-	if(section_list == NULL && root_keys == NULL)
-		return TRUE;
-
-	if(sort_keys)
-		strListSortAlphaCase(root_keys);
-
-	if(section_list != NULL)
-		strListSortAlphaCase(section_list);
-	new_list = strListInit();
-	if(new_list == NULL) {
-		strListFree(&section_list);
-		strListFree(&root_keys);
-		return FALSE;
-	}
-	strListAppendList(&new_list, root_keys);
-	strListFree(&root_keys);
-	for(i = 0; section_list != NULL && section_list[i] != NULL; i++) {
-		keys = iniGetSection(*list, section_list[i]);
-		if(sort_keys)
-			strListSortAlphaCase(keys);
-		iniAppendSectionWithKeys(&new_list, section_list[i], keys, /* ini_style_t */NULL);
-		strListFree(&keys);
-	}
-	strListFree(&section_list);
-	strListFree(list);
-	*list = new_list;
-	return TRUE;
-}
-
-BOOL iniRenameSection(str_list_t* list, const char* section, const char* newname)
-{
-	char	str[INI_MAX_LINE_LEN];
-	size_t	i;
-
-	if(section==ROOT_SECTION)
-		return(FALSE);
-
-	if(stricmp(section, newname)!=0) {
-		i=find_section_index(*list,newname);
-		if((*list)[i]!=NULL)	/* duplicate */
-			return(FALSE);
-	}
-
-	i=find_section_index(*list,section);
-	if((*list)[i]==NULL)	/* not found */
-		return(FALSE);
-
-	SAFEPRINTF(str,"[%s]",newname);
-	return(strListReplace(*list, i, str)!=NULL);
-}
-
-static size_t ini_add_section(str_list_t* list, const char* section
-					,ini_style_t* style, size_t index)
-{
-	char	str[INI_MAX_LINE_LEN];
-
-	if(section==ROOT_SECTION)
-		return(0);
-
-	if((*list)[index]!=NULL)
-		return(index);
-
-	if(style==NULL)
-		style=&default_style;
-	if(index > 0 && style->section_separator!=NULL)
-		strListAppend(list, style->section_separator, index++);
-	SAFEPRINTF(str,"[%s]",section);
-	strListAppend(list, str, index);
-
-	return(index);
-}
-
-size_t iniAddSection(str_list_t* list, const char* section, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	return ini_add_section(list,section,style,find_section_index(*list, section));
-}
-
-size_t iniAppendSection(str_list_t* list, const char* section, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	return ini_add_section(list,section,style,strListCount(*list));
-}
-
-size_t iniAppendSectionWithKeys(str_list_t* list, const char* section, const str_list_t keys
-	, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	ini_add_section(list,section,style,strListCount(*list));
-
-	return strListAppendList(list, keys);
-}
-
-static BOOL str_contains_ctrl_char(const char* str)
-{
-	while(*str) {
-		if(*(unsigned char*)str < ' ')
-			return TRUE;
-		str++;
-	}
-	return FALSE;
-}
-
-static char* ini_set_string(str_list_t* list, const char* section, const char* key, const char* value, BOOL literal
-				 ,ini_style_t* style)
-{
-	char	str[INI_MAX_LINE_LEN];
-	char	litstr[INI_MAX_VALUE_LEN];
-	char	curval[INI_MAX_VALUE_LEN];
-	const char* key_prefix = "";
-	const char* value_separator = "=";
-	const char* literal_separator = ":";
-	size_t	i;
-
-	if(style==NULL)
-		style=&default_style;
-
-	iniAddSection(list, section, style);
-
-	if(key==NULL)
-		return(NULL);
-	if(style->key_prefix != NULL)
-		key_prefix = style->key_prefix;
-	if(style->value_separator != NULL)
-		value_separator = style->value_separator;
-	if(style->literal_separator != NULL)
-		literal_separator = style->literal_separator;
-	if(value==NULL)
-		value="";
-	if(literal) {
-		char cstr[INI_MAX_VALUE_LEN];
-		SAFEPRINTF(litstr, "\"%s\"", c_escape_str(value, cstr, sizeof(cstr)-1, /* ctrl_only: */FALSE));
-		value = litstr;
-		value_separator = literal_separator;
-	}
-	safe_snprintf(str, sizeof(str), "%s%-*s%s%s"
-		,key_prefix, style->key_len, key, value_separator, value);
-	i=get_value(*list, section, key, curval, NULL, /* literals_supported: */literal);
-	if((*list)[i]==NULL || *(*list)[i]==INI_OPEN_SECTION_CHAR) {
-        while(i && *(*list)[i-1]==0) i--;   /* Insert before blank lines, not after */
-		return strListInsert(list, str, i);
-    }
-
-	if(strcmp(curval,value)==0)
-		return((*list)[i]);	/* no change */
-
-	return strListReplace(*list, i, str);
-}
-char* iniSetString(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	BOOL literal = value != NULL && (str_contains_ctrl_char(value) || *value==' ' || *lastchar(value)==' ');
-
-	return ini_set_string(list, section, key, value, literal, style);
-}
-
-char* iniSetStringLiteral(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	return ini_set_string(list, section, key, value, /* literal: */TRUE, style);
-}
-
-char* iniSetValue(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	return ini_set_string(list, section, key, value, /* literal: */FALSE, style);
-}
-
-char* iniSetInteger(str_list_t* list, const char* section, const char* key, long value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%ld",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetShortInt(str_list_t* list, const char* section, const char* key, ushort value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%hu",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetLongInt(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%lu",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetHexInt(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"0x%lx",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetFloat(str_list_t* list, const char* section, const char* key, double value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%g",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetBytes(str_list_t* list, const char* section, const char* key, ulong unit
-					,int64_t value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	if(value==0)
-		SAFECOPY(str,"0");
-	else
-		switch(unit) {
-			case 1024*1024*1024:
-				SAFEPRINTF(str,"%"PRIi64"G",value);
-				break;
-			case 1024*1024:
-				SAFEPRINTF(str,"%"PRIi64"M",value);
-				break;
-			case 1024:
-				SAFEPRINTF(str,"%"PRIi64"K",value);
-				break;
-			default:
-				if(unit<1)
-					unit=1;
-				byte_count_to_str(value*unit, str, sizeof(str));
-		}
-
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetDuration(str_list_t* list, const char* section, const char* key
-					,double value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	return iniSetString(list, section, key, duration_to_str(value, str, sizeof(str)), style);
-}
-
-
-#if !defined(NO_SOCKET_SUPPORT)
-char* iniSetIpAddress(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	struct in_addr in_addr;
-	in_addr.s_addr=htonl(value);
-	return iniSetString(list, section, key, inet_ntoa(in_addr), style);
-}
-
-char* iniSetIp6Address(str_list_t* list, const char* section, const char* key, struct in6_addr value
-					,ini_style_t* style)
-{
-	char				addrstr[INET6_ADDRSTRLEN];
-	union xp_sockaddr	addr = {{0}};
-
-	addr.in6.sin6_addr = value;
-	addr.in6.sin6_family = AF_INET6;
-	inet_addrtop(&addr, addrstr, sizeof(addrstr));
-	return iniSetString(list, section, key, addrstr, style);
-}
-#endif
-
-char* iniSetBool(str_list_t* list, const char* section, const char* key, BOOL value
-					,ini_style_t* style)
-{
-	return iniSetString(list, section, key, value ? "true":"false", style);
-}
-
-char* iniSetDateTime(str_list_t* list, const char* section, const char* key
-					 ,BOOL include_time, time_t value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-	char	tstr[32];
-	char*	p;
-
-	if(value==0)
-		SAFECOPY(str,"Never");
-	else if((p=ctime_r(&value,tstr))==NULL)
-		SAFEPRINTF(str,"0x%lx",value);
-	else if(!include_time)	/* reformat into "Mon DD YYYY" */
-		safe_snprintf(str,sizeof(str),"%.3s %.2s %.4s"		,p+4,p+8,p+20);
-	else					/* reformat into "Mon DD YYYY HH:MM:SS" */
-		safe_snprintf(str,sizeof(str),"%.3s %.2s %.4s %.8s"	,p+4,p+8,p+20,p+11);
-
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetEnum(str_list_t* list, const char* section, const char* key, str_list_t names, unsigned value
-					,ini_style_t* style)
-{
-	if(value < strListCount(names))
-		return iniSetString(list, section, key, names[value], style);
-
-	return iniSetLongInt(list, section, key, value, style);
-}
-
-char* iniSetEnumList(str_list_t* list, const char* section, const char* key
-					,const char* sep, str_list_t names, unsigned* val_list, unsigned count, ini_style_t* style)
-{
-	char	value[INI_MAX_VALUE_LEN];
-	size_t	i;
-	size_t	name_count;
-
-	value[0]=0;
-
-	if(sep==NULL)
-		sep=",";
-
-	if(val_list!=NULL) {
-		name_count = strListCount(names);
-		for(i=0; i < count; i++) {
-			if(value[0])
-				SAFECAT(value,sep);
-			if(val_list[i] < name_count)
-				SAFECAT(value, names[val_list[i]]);
-			else
-				sprintf(value + strlen(value), "%u", val_list[i]);
-		}
-	}
-
-	return iniSetString(list, section, key, value, style);
-}
-
-char* iniSetNamedInt(str_list_t* list, const char* section, const char* key, named_long_t* names
-					 ,long value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetInteger(list, section, key, value, style);
-}
-
-char* iniSetNamedHexInt(str_list_t* list, const char* section, const char* key, named_ulong_t* names
-					 ,ulong value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetHexInt(list, section, key, value, style);
-}
-
-char* iniSetNamedLongInt(str_list_t* list, const char* section, const char* key, named_ulong_t* names
-					 ,ulong value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetLongInt(list, section, key, value, style);
-}
-
-char* iniSetNamedFloat(str_list_t* list, const char* section, const char* key, named_double_t* names
-					 ,double value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetFloat(list, section, key, value, style);
-}
-
-char* iniSetBitField(str_list_t* list, const char* section, const char* key
-					 ,ini_bitdesc_t* bitdesc, ulong value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-	int		i;
-	const char* bit_separator = "|";
-
-	if(style==NULL)
-		style=&default_style;
-	if(style->bit_separator!=NULL)
-		bit_separator = style->bit_separator;
-	str[0]=0;
-	for(i=0;bitdesc[i].name;i++) {
-		if((value&bitdesc[i].bit)==0)
-			continue;
-		if(str[0])
-			SAFECAT(str, bit_separator);
-		SAFECAT(str,bitdesc[i].name);
-		value&=~bitdesc[i].bit;
-	}
-	if(value) {	/* left over bits? */
-		if(str[0])
-			SAFECAT(str, bit_separator);
-		sprintf(str+strlen(str), "0x%lX", value);
-	}
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetStringList(str_list_t* list, const char* section, const char* key
-					,const char* sep, str_list_t val_list, ini_style_t* style)
-{
-	char	value[INI_MAX_VALUE_LEN];
-
-	if(sep==NULL)
-		sep=",";
-
-	return iniSetString(list, section, key, strListCombine(val_list, value, sizeof(value), sep), style);
-}
-
-char* iniSetIntList(str_list_t* list, const char* section, const char* key
-					,const char* sep, int* val_list, unsigned count, ini_style_t* style)
-{
-	unsigned i;
-	char	value[INI_MAX_VALUE_LEN];
-
-	if(sep == NULL)
-		sep = ",";
-	for(i = 0; i < count; i++) {
-		if(i) {
-			int len = strlen(value);
-			if(len > INI_MAX_VALUE_LEN - 20)
-				return NULL;
-			sprintf(value + len, "%s%d", sep, *(val_list + i));
-		} else
-			sprintf(value, "%d", *val_list);
-	}
-
-	return iniSetString(list, section, key, value, style);
-}
-
-static char* default_value(const char* deflt, char* value)
-{
-	if(deflt!=NULL && deflt!=value && value!=NULL)
-		sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,deflt);
-
-	return((char*)deflt);
-}
-
-/* Supports string literals: */
-char* iniReadString(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp, section, key, value, /* literals_supported: */TRUE)==NULL || *value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-/* Does NOT support string literals: */
-char* iniReadValue(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp, section, key, value, /* literals_supported: */FALSE)==NULL || *value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-/* Supports string literals: */
-char* iniGetString(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, value, &vp, /* literals_supported: */TRUE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */)
-		return default_value(deflt,value);
-
-	if(value != NULL)	/* return the modified (trimmed) value */
-		return value;
-
-	return(vp);
-}
-
-/* Does NOT support string literals: */
-char* iniGetValue(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, value, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */)
-		return default_value(deflt,value);
-
-	if(value != NULL)	/* return the modified (trimmed) value */
-		return value;
-
-	return(vp);
-}
-
-/* Does NOT support string literals: */
-char* iniPopKey(str_list_t* list, const char* section, const char* key, char* value)
-{
-	size_t i;
-
-	if(list==NULL || *list==NULL)
-		return NULL;
-
-	i=get_value(*list, section, key, value, NULL, /* literals_supported: */FALSE);
-
-	if((*list)[i]==NULL)
-		return NULL;
-
-	strListDelete(list,i);
-
-	return(value);
-}
-
-/* Supports string literals: */
-char* iniPopString(str_list_t* list, const char* section, const char* key, char* value)
-{
-	size_t i;
-
-	if(list==NULL || *list==NULL)
-		return NULL;
-
-	i=get_value(*list, section, key, value, NULL, /* literals_supported: */TRUE);
-
-	if((*list)[i]==NULL)
-		return NULL;
-
-	strListDelete(list,i);
-
-	return(value);
-}
-
-char* iniReadExistingString(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp,section,key,value, /* literals_supported: */TRUE)==NULL)
-		return(NULL);
-
-	if(*value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-char* iniGetExistingString(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(!iniKeyExists(list, section, key))
-		return(NULL);
-
-	return iniGetString(list, section, key, deflt, value);
-}
-
-char* iniReadExistingValue(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp,section,key,value, /* literals_supported: */FALSE)==NULL)
-		return(NULL);
-
-	if(*value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-char* iniGetExistingValue(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(!iniKeyExists(list, section, key))
-		return(NULL);
-
-	return iniGetValue(list, section, key, deflt, value);
-}
-
-
-static str_list_t splitList(char* list, const char* sep)
-{
-	char*		token;
-	char*		tmp;
-	ulong		items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(sep==NULL)
-		sep=",";
-
-	token=strtok_r(list,sep,&tmp);
-	while(token!=NULL) {
-		SKIP_WHITESPACE(token);
-		truncsp(token);
-		if(strListAppend(&lp,token,items++)==NULL)
-			break;
-		token=strtok_r(NULL,sep,&tmp);
-	}
-
-	return(lp);
-}
-
-str_list_t iniReadStringList(FILE* fp, const char* section, const char* key
-						 ,const char* sep, const char* deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-	char	list[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */TRUE))==NULL || *value==0 /* blank */)
-		value=(char*)deflt;
-
-	if(value==NULL)
-		return(NULL);
-
-	SAFECOPY(list,value);
-
-	return(splitList(list,sep));
-}
-
-str_list_t iniGetStringList(str_list_t list, const char* section, const char* key
-						 ,const char* sep, const char* deflt)
-{
-	char	value[INI_MAX_VALUE_LEN];
-
-	get_value(list, section, key, value, NULL, /* literals_supported: */TRUE);
-
-	if(*value==0 /* blank value or missing key */) {
-		if(deflt==NULL)
-			return(NULL);
-		SAFECOPY(value,deflt);
-	}
-
-	return(splitList(value,sep));
-}
-
-void* iniFreeStringList(str_list_t list)
-{
-	strListFree(&list);
-	return(list);
-}
-
-void* iniFreeNamedStringList(named_string_t** list)
-{
-	ulong	i;
-
-	if(list==NULL)
-		return(NULL);
-
-	for(i=0;list[i]!=NULL;i++) {
-		if(list[i]->name!=NULL)
-			free(list[i]->name);
-		if(list[i]->value!=NULL)
-			free(list[i]->value);
-		free(list[i]);
-	}
-
-	free(list);
-	return(NULL);
-}
-
-str_list_t iniReadSectionList(FILE* fp, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(fp==NULL)
-		return(lp);
-
-	rewind(fp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
-			continue;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-str_list_t iniGetSectionList(str_list_t list, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(list==NULL)
-		return(lp);
-
-	for(i=0; list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
-			continue;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-size_t iniGetSectionCount(str_list_t list, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	size_t	i,items=0;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		items++;
-	}
-
-	return(items);
-}
-
-size_t iniReadSectionCount(FILE* fp, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-
-	if(fp==NULL)
-		return(0);
-
-	rewind(fp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		items++;
-	}
-
-	return(items);
-}
-
-
-str_list_t iniReadKeyList(FILE* fp, const char* section)
-{
-	char*	p;
-	char*	vp;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(fp==NULL)
-		return(lp);
-
-	rewind(fp);
-
-	if(!seek_section(fp,section))
-		return(lp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, /* literals_supported: */FALSE))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-str_list_t iniGetKeyList(str_list_t list, const char* section)
-{
-	char*	p;
-	char*	vp;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(list==NULL)
-		return(lp);
-
-	for(i=find_section(list,section);list[i]!=NULL;i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, /* literals_supported: */FALSE))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-
-named_string_t**
-iniReadNamedStringList(FILE* fp, const char* section)
-{
-	char*	name;
-	char*	value;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	named_string_t** lp;
-	named_string_t** np;
-
-	if(fp==NULL)
-		return(NULL);
-
-	rewind(fp);
-
-	if(!seek_section(fp,section))
-		return(NULL);
-
-	/* New behavior, if section exists but is empty, return single element array (terminator only) */
-	if((lp=(named_string_t**)malloc(sizeof(named_string_t*)))==NULL)
-		return(NULL);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((name=key_name(str, &value, /* literals_supported: */TRUE))==NULL)
-			continue;
-		if(name==INI_NEW_SECTION)
-			break;
-		if((np=(named_string_t**)realloc(lp,sizeof(named_string_t*)*(items+2)))==NULL)
-			break;
-		lp=np;
-		if((lp[items]=(named_string_t*)malloc(sizeof(named_string_t)))==NULL)
-			break;
-		if((lp[items]->name=strdup(name))==NULL)
-			break;
-		if((lp[items]->value=strdup(value))==NULL)
-			break;
-		items++;
-	}
-
-	lp[items]=NULL;	/* terminate list */
-
-	return(lp);
-}
-
-named_string_t**
-iniGetNamedStringList(str_list_t list, const char* section)
-{
-	char*	name;
-	char*	value;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	named_string_t** lp;
-	named_string_t** np;
-
-	if(list==NULL)
-		return(NULL);
-
-	i=find_section(list,section);
-	if(section!=ROOT_SECTION && list[i]==NULL)
-		return(NULL);
-
-	/* New behavior, if section exists but is empty, return single element array (terminator only) */
-	if((lp=(named_string_t**)malloc(sizeof(named_string_t*)))==NULL)
-		return(NULL);
-
-	for(;list[i]!=NULL;i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((name=key_name(str, &value, /* literals_supported: */TRUE))==NULL)
-			continue;
-		if(name==INI_NEW_SECTION)
-			break;
-		if((np=(named_string_t**)realloc(lp,sizeof(named_string_t*)*(items+2)))==NULL)
-			break;
-		lp=np;
-		if((lp[items]=(named_string_t*)malloc(sizeof(named_string_t)))==NULL)
-			break;
-		if((lp[items]->name=strdup(name))==NULL)
-			break;
-		if((lp[items]->value=strdup(value))==NULL)
-			break;
-		items++;
-	}
-
-	lp[items]=NULL;	/* terminate list */
-
-	return(lp);
-}
-
-
-/* These functions read a single key of the specified type */
-
-static BOOL isTrue(const char* value)
-{
-	char*	str;
-	char*	p;
-	BOOL	is_true;
-
-	if(!IS_ALPHA(*value))
-		return FALSE;
-
-	if((str=strdup(value)) == NULL)
-		return FALSE;
-
-	/* Truncate value at first space, tab or semicolon for purposes of checking for special boolean words. */
-	/* This allows comments or white-space to immediately follow a special boolean word: "True", "Yes", or "On" */
-	p=str;
-	FIND_CHARSET(p, "; \t");
-	*p=0;
-
-	is_true = (stricmp(str,"TRUE")==0 || stricmp(str,"YES")==0 || stricmp(str,"ON")==0);
-	free(str);
-	return is_true;
-}
-
-static long parseInteger(const char* value)
-{
-	if(isTrue(value))
-		return(TRUE);
-
-	return(strtol(value,NULL,0));
-}
-
-static ulong parseLongInteger(const char* value)
-{
-	if(isTrue(value))
-		return(TRUE);
-
-	return(strtoul(value,NULL,0));
-}
-
-static BOOL parseBool(const char* value)
-{
-	return(INT_TO_BOOL(parseInteger(value)));
-}
-
-long iniReadInteger(FILE* fp, const char* section, const char* key, long deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseInteger(value));
-}
-
-long iniGetInteger(str_list_t list, const char* section, const char* key, long deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parseInteger(vp));
-}
-
-ushort iniReadShortInt(FILE* fp, const char* section, const char* key, ushort deflt)
-{
-	return((ushort)iniReadInteger(fp, section, key, deflt));
-}
-
-ushort iniGetShortInt(str_list_t list, const char* section, const char* key, ushort deflt)
-{
-	return((ushort)iniGetInteger(list, section, key, deflt));
-}
-
-ulong iniReadLongInt(FILE* fp, const char* section, const char* key, ulong deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseLongInteger(value));
-}
-
-ulong iniGetLongInt(str_list_t list, const char* section, const char* key, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parseLongInteger(vp));
-}
-
-int64_t iniReadBytes(FILE* fp, const char* section, const char* key, ulong unit, int64_t deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parse_byte_count(value,unit));
-}
-
-int64_t iniGetBytes(str_list_t list, const char* section, const char* key, ulong unit, int64_t deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parse_byte_count(vp,unit));
-}
-
-double iniReadDuration(FILE* fp, const char* section, const char* key, double deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parse_duration(value));
-}
-
-double iniGetDuration(str_list_t list, const char* section, const char* key, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parse_duration(vp));
-}
-
-#if !defined(NO_SOCKET_SUPPORT)
-
-int iniGetSocketOptions(str_list_t list, const char* section, SOCKET sock
-						 ,char* error, size_t errlen)
-{
-	int			i;
-	int			result;
-	char*		name;
-	char		err[128];
-	BYTE*		vp;
-	socklen_t	len;
-	int			option;
-	int			level;
-	int			value;
-	int			type=0;	// Assignment is to silence Valgrind.
-	LINGER		linger;
-	socket_option_t* socket_options=getSocketOptionList();
-#ifdef IPPROTO_IPV6
-	union xp_sockaddr	addr;
-#endif
-
-	len=sizeof(type);
-	if((result=getsockopt(sock, SOL_SOCKET, SO_TYPE, (char*)&type, &len)) != 0) {
-		safe_snprintf(error,errlen,"%d (%s) getting socket type", ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)));
-		return(result);
-	}
-#ifdef IPPROTO_IPV6
-	len=sizeof(addr);
-	if((result=getsockname(sock, &addr.addr, &len)) != 0) {
-		safe_snprintf(error,errlen,"%d (%s) getting socket name", ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)));
-		return(result);
-	}
-#endif
-	for(i=0;socket_options[i].name!=NULL;i++) {
-		if(socket_options[i].type != 0
-				&& socket_options[i].type != type)
-			continue;
-#ifdef IPPROTO_IPV6
-		if(addr.addr.sa_family != AF_INET6 && socket_options[i].level == IPPROTO_IPV6)
-			continue;
-#endif
-		name = socket_options[i].name;
-		if(!iniValueExists(list, section, name))
-			continue;
-		value=iniGetInteger(list, section, name, 0);
-
-		vp=(BYTE*)&value;
-		len=sizeof(value);
-
-		level	= socket_options[i].level;
-		option	= socket_options[i].value;
-
-		if(option == SO_LINGER) {
-			if(value) {
-				linger.l_onoff = TRUE;
-				linger.l_linger = value;
-			} else {
-				ZERO_VAR(linger);
-			}
-			vp=(BYTE*)&linger;
-			len=sizeof(linger);
-		}
-
-		if((result=setsockopt(sock,level,option,(const char *)vp,len)) != 0) {
-			safe_snprintf(error,errlen,"%d (%s) setting socket option (%s, %d) to %d"
-				,ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)), name, option, value);
-			return(result);
-		}
-	}
-
-	return(0);
-}
-
-static ulong parseIpAddress(const char* value)
-{
-	if(strchr(value,'.')==NULL)
-		return(strtol(value,NULL,0));
-
-	return(ntohl(inet_addr(value)));
-}
-
-static struct in6_addr parseIp6Address(const char* value)
-{
-	struct addrinfo hints = {0};
-	struct addrinfo *res, *cur;
-	struct in6_addr ret = {{{0}}};
-
-	hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-	if(getaddrinfo(value, NULL, &hints, &res))
-		return ret;
-
-	for(cur = res; cur; cur++) {
-		if(cur->ai_addr->sa_family == AF_INET6)
-			break;
-	}
-	if(!cur) {
-		freeaddrinfo(res);
-		return ret;
-	}
-	memcpy(&ret, &((struct sockaddr_in6 *)(cur->ai_addr))->sin6_addr, sizeof(ret));
-	freeaddrinfo(res);
-	return ret;
-}
-
-ulong iniReadIpAddress(FILE* fp, const char* section, const char* key, ulong deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseIpAddress(value));
-}
-
-struct in6_addr iniReadIp6Address(FILE* fp, const char* section, const char* key, struct in6_addr deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseIp6Address(value));
-}
-
-ulong iniGetIpAddress(str_list_t list, const char* section, const char* key, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseIpAddress(vp));
-}
-
-struct in6_addr iniGetIp6Address(str_list_t list, const char* section, const char* key, struct in6_addr deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseIp6Address(vp));
-}
-
-#endif	/* !NO_SOCKET_SUPPORT */
-
-char* iniFileName(char* dest, size_t maxlen, const char* indir, const char* infname)
-{
-	char	dir[MAX_PATH+1];
-	char	fname[MAX_PATH+1];
-	char	ext[MAX_PATH+1];
-	char*	p;
-
-	SAFECOPY(dir,indir);
-	backslash(dir);
-	SAFECOPY(fname,infname);
-	ext[0]=0;
-	if((p=getfext(fname))!=NULL) {
-		SAFECOPY(ext,p);
-		*p=0;
-	}
-
-#if !defined(NO_SOCKET_SUPPORT)
-	{
-		char hostname[128];
-
-		if(gethostname(hostname,sizeof(hostname))==0) {
-			safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,hostname,ext);
-			if(fexistcase(dest))		/* path/file.host.domain.ini */
-				return(dest);
-			if((p=strchr(hostname,'.'))!=NULL) {
-				*p=0;
-				safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,hostname,ext);
-				if(fexistcase(dest))	/* path/file.host.ini */
-					return(dest);
-			}
-		}
-	}
-#endif
-
-	safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,PLATFORM_DESC,ext);
-	if(fexistcase(dest))	/* path/file.platform.ini */
-		return(dest);
-
-	safe_snprintf(dest,maxlen,"%s%s%s",dir,fname,ext);
-	fexistcase(dest);	/* path/file.ini */
-	return(dest);
-}
-
-double iniReadFloat(FILE* fp, const char* section, const char* key, double deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(atof(value));
-}
-
-double iniGetFloat(str_list_t list, const char* section, const char* key, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(atof(vp));
-}
-
-BOOL iniReadBool(FILE* fp, const char* section, const char* key, BOOL deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseBool(value));
-}
-
-BOOL iniGetBool(str_list_t list, const char* section, const char* key, BOOL deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseBool(vp));
-}
-
-static BOOL validDate(struct tm* tm)
-{
-	return(tm->tm_mon && tm->tm_mon<=12
-		&& tm->tm_mday && tm->tm_mday<=31);
-}
-
-static time_t fixedDateTime(struct tm* tm, const char* tstr, char pm)
-{
-	if(tm->tm_year<70)
-		tm->tm_year+=100;	/* 05 == 2005 (not 1905) and 70 == 1970 (not 2070) */
-	else if(tm->tm_year>1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)
-		tm->tm_mon--;		/* zero-based month field */
-
-	/* hh:mm:ss [p] */
-	sscanf(tstr,"%u:%u:%u",&tm->tm_hour,&tm->tm_min,&tm->tm_sec);
-	if(tm->tm_hour < 12 && (toupper(pm)=='P' || strchr(tstr,'p') || strchr(tstr,'P')))
-		tm->tm_hour += 12;	/* pm, correct for 24 hour clock */
-
-	tm->tm_isdst=-1;	/* auto-detect */
-
-	return(mktime(tm));
-}
-
-static int getMonth(const char* month)
-{
-	char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
-            ,"Jul","Aug","Sep","Oct","Nov","Dec",NULL};
-	int i;
-
-	for(i=0;mon[i]!=NULL;i++)
-		if(strnicmp(month,mon[i],3)==0)
-			return(i+1);
-
-	return(atoi(month));
-}
-
-static time_t parseDateTime(const char* value)
-{
-	char	month[INI_MAX_VALUE_LEN];
-	char	tstr[INI_MAX_VALUE_LEN];
-	char	pm=0;
-	time_t	t;
-	struct tm tm;
-	struct tm curr_tm;
-	isoDate_t	isoDate;
-	isoTime_t	isoTime;
-
-	ZERO_VAR(tm);
-	tstr[0]=0;
-
-	/* Use current month and year as default */
-	t=time(NULL);
-	if(localtime_r(&t,&curr_tm)!=NULL) {
-		tm.tm_mon=curr_tm.tm_mon+1;	/* convert to one-based (reversed later) */
-		tm.tm_year=curr_tm.tm_year;
-	}
-
-	/* CCYYMMDDTHHMMSS <--- ISO-8601 date and time format */
-	if(sscanf(value,"%uT%u"
-		,&isoDate,&isoTime)>=2)
-		return(isoDateTime_to_time(isoDate,isoTime));
-
-	/* DD.MM.[CC]YY [time] [p] <-- Euro/Canadian numeric date format */
-	if(sscanf(value,"%u.%u.%u %s %c"
-		,&tm.tm_mday,&tm.tm_mon,&tm.tm_year,tstr,&pm)>=2
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* MM/DD/[CC]YY [time] [p] <-- American numeric date format */
-	if(sscanf(value,"%u%*c %u%*c %u %s %c"
-		,&tm.tm_mon,&tm.tm_mday,&tm.tm_year,tstr,&pm)>=2
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* DD[-]Mon [CC]YY [time] [p] <-- Perversion of RFC822 date format */
-	if(sscanf(value,"%u%*c %s %u %s %c"
-		,&tm.tm_mday,month,&tm.tm_year,tstr,&pm)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* Wday, DD Mon YYYY [time] <-- IETF standard (RFC2822) date format */
-	if(sscanf(value,"%*s %u %s %u %s"
-		,&tm.tm_mday,month,&tm.tm_year,tstr)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	/* Mon DD[,] [CC]YY [time] [p] <-- Preferred date format */
-	if(sscanf(value,"%s %u%*c %u %s %c"
-		,month,&tm.tm_mday,&tm.tm_year,tstr,&pm)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* Wday Mon DD YYYY [time] <-- JavaScript (SpiderMonkey) Date.toString() format */
-	if(sscanf(value,"%*s %s %u %u %s"
-		,month,&tm.tm_mday,&tm.tm_year,tstr)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	/* Wday Mon DD [time] YYYY <-- ctime() format */
-	if(sscanf(value,"%*s %s %u %s %u"
-		,month,&tm.tm_mday,tstr,&tm.tm_year)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	if((t=xpDateTime_to_time(isoDateTimeStr_parse(value))) != INVALID_TIME)
-		return t;
-
-	return(strtoul(value,NULL,0));
-}
-
-time_t iniReadDateTime(FILE* fp, const char* section, const char* key, time_t deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseDateTime(value));
-}
-
-time_t iniGetDateTime(str_list_t list, const char* section, const char* key, time_t deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseDateTime(vp));
-}
-
-static unsigned parseEnum(const char* value, str_list_t names, unsigned deflt)
-{
-	unsigned i,count;
-	char val[INI_MAX_VALUE_LEN];
-	char* p=val;
-	char* endptr;
-
-	/* Strip trailing words (enums must be a single word with no white-space) */
-	/* to support comments following enum values */
-	SAFECOPY(val,value);
-	FIND_WHITESPACE(p);
-	*p=0;
-
-	if((count=strListCount(names)) == 0)
-		return 0;
-
-	/* Look for exact matches first */
-	for(i=0; i<count; i++)
-		if(stricmp(names[i],val)==0)
-			return(i);
-
-	/* Look for partial matches second */
-	for(i=0; i<count; i++)
-		if(strnicmp(names[i],val,strlen(val))==0)
-			return(i);
-
-    i=strtoul(val, &endptr, 0);
-	if(*endptr != 0 && !IS_WHITESPACE(*endptr))
-		return deflt;
-	if(i>=count)
-		i=count-1;
-	return i;
-}
-
-unsigned* parseEnumList(const char* values, const char* sep, const char** names, unsigned* count)
-{
-	char*		vals;
-	str_list_t	list;
-	unsigned*	enum_list;
-	size_t		i;
-
-	*count=0;
-
-	if(values==NULL)
-		return NULL;
-
-	if((vals=strdup(values)) == NULL)
-		return NULL;
-
-	list=splitList(vals, sep);
-
-	free(vals);
-
-	if((*count=strListCount(list)) < 1) {
-		strListFree(&list);
-		return NULL;
-	}
-
-	if((enum_list=(unsigned *)malloc((*count)*sizeof(unsigned)))!=NULL) {
-		for(i=0;i<*count;i++)
-			enum_list[i]=parseEnum(list[i], names, /* default: */0);
-	}
-
-	strListFree(&list);
-
-	return enum_list;
-}
-
-unsigned iniReadEnum(FILE* fp, const char* section, const char* key, str_list_t names, unsigned deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseEnum(value,names,deflt));
-}
-
-unsigned* iniReadEnumList(FILE* fp, const char* section, const char* key
-						 ,str_list_t names, unsigned* cp
-						 ,const char* sep, const char* deflt)
-{
-	char*		value;
-	char		buf[INI_MAX_VALUE_LEN];
-	unsigned	count;
-
-	if(cp==NULL)
-		cp=&count;
-
-	*cp=0;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL || *value==0 /* blank */)
-		value=(char*)deflt;
-
-	return(parseEnumList(value, sep, names, cp));
-}
-
-unsigned iniGetEnum(str_list_t list, const char* section, const char* key, str_list_t names, unsigned deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseEnum(vp,names, deflt));
-}
-
-unsigned* iniGetEnumList(str_list_t list, const char* section, const char* key
-						 ,str_list_t names, unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		vp=NULL;
-	unsigned	count;
-
-	if(cp==NULL)
-		cp=&count;
-
-	*cp=0;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */) {
-		if(deflt==NULL)
-			return(NULL);
-		vp=(char*)deflt;
-	}
-	return(parseEnumList(vp, sep, names, cp));
-}
-
-static long parseNamedInt(const char* value, named_long_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(parseInteger(value));
-}
-
-long iniReadNamedInt(FILE* fp, const char* section, const char* key
-					 ,named_long_t* names, long deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedInt(value,names));
-}
-
-long iniGetNamedInt(str_list_t list, const char* section, const char* key
-					,named_long_t* names, long deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedInt(vp,names));
-}
-
-static ulong parseNamedLongInt(const char* value, named_ulong_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(parseLongInteger(value));
-}
-
-ulong iniReadNamedLongInt(FILE* fp, const char* section, const char* key
-					 ,named_ulong_t* names, ulong deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedLongInt(value,names));
-}
-
-ulong iniGetNamedLongInt(str_list_t list, const char* section, const char* key
-					,named_ulong_t* names, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedLongInt(vp,names));
-}
-
-static double parseNamedFloat(const char* value, named_double_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(atof(value));
-}
-
-double iniReadNamedFloat(FILE* fp, const char* section, const char* key
-					 ,named_double_t* names, double deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedFloat(value,names));
-}
-
-double iniGetNamedFloat(str_list_t list, const char* section, const char* key
-					,named_double_t* names, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedFloat(vp,names));
-}
-
-static ulong parseBitField(char* value, ini_bitdesc_t* bitdesc)
-{
-	int		i;
-	char*	p;
-	char*	tp;
-	ulong	v=0;
-
-	for(p=value;*p;) {
-		tp=strchr(p,INI_BIT_SEP);
-		if(tp!=NULL)
-			*tp=0;
-		truncsp(p);
-
-		for(i=0;bitdesc[i].name;i++)
-			if(!stricmp(bitdesc[i].name,p))
-				break;
-
-		if(bitdesc[i].name)
-			v|=bitdesc[i].bit;
-		else
-			v|=strtoul(p,NULL,0);
-
-		if(tp==NULL)
-			break;
-
-		p=tp+1;
-		SKIP_WHITESPACE(p);
-	}
-
-	return(v);
-}
-
-ulong iniReadBitField(FILE* fp, const char* section, const char* key,
-						ini_bitdesc_t* bitdesc, ulong deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)	/* missing key */
-		return(deflt);
-
-	return(parseBitField(value,bitdesc));
-}
-
-ulong iniGetBitField(str_list_t list, const char* section, const char* key,
-						ini_bitdesc_t* bitdesc, ulong deflt)
-{
-	char*	vp=NULL;;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)		/* missing key */
-		return(deflt);
-
-	return(parseBitField(vp,bitdesc));
-}
-
-int* parseIntList(const char* values, const char* sep, unsigned* count)
-{
-	char*		vals;
-	str_list_t	list;
-	int*		int_list;
-	size_t		i;
-
-	*count = 0;
-
-	if(values == NULL)
-		return NULL;
-
-	if((vals = strdup(values)) == NULL)
-		return NULL;
-
-	list = splitList(vals, sep);
-
-	free(vals);
-
-	if((*count = strListCount(list)) < 1) {
-		strListFree(&list);
-		return NULL;
-	}
-
-	if((int_list = malloc((*count)*sizeof(int))) != NULL) {
-		for(i = 0; i < *count; i++)
-			int_list[i] = atoi(list[i]);
-	}
-
-	strListFree(&list);
-
-	return int_list;
-}
-
-int* iniGetIntList(str_list_t list, const char* section, const char* key
-						 ,unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		vp=NULL;
-	unsigned	count;
-
-	if(cp == NULL)
-		cp = &count;
-
-	*cp=0;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp == NULL || *vp == 0 /* blank value or missing key */) {
-		if(deflt == NULL)
-			return NULL;
-		vp = (char*)deflt;
-	}
-	return parseIntList(vp, sep, cp);
-}
-
-int* iniReadIntList(FILE* fp, const char* section, const char* key
-						 ,unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		value;
-	char		buf[INI_MAX_VALUE_LEN];
-	unsigned	count;
-
-	if(cp == NULL)
-		cp = &count;
-
-	*cp = 0;
-
-	if((value = read_value(fp, section, key, buf, /* literals_supported: */FALSE)) == NULL || *value == 0 /* blank */)
-		value = (char*)deflt;
-
-	return parseIntList(value, sep, cp);
-}
-
-FILE* iniOpenFile(const char* fname, BOOL create)
-{
-	char* mode="r+";
-
-	if(create && !fexist(fname))
-		mode="w+";
-
-	return(fopen(fname,mode));
-}
-
-BOOL iniCloseFile(FILE* fp)
-{
-	return(fclose(fp)==0);
-}
-
-str_list_t iniReadFile(FILE* fp)
-{
-	char		str[INI_MAX_LINE_LEN];
-	char		err[512];
-	char*		p;
-	size_t		i;
-	size_t		inc_len;
-	size_t		inc_counter=0;
-	str_list_t	list;
-	FILE*		insert_fp=NULL;
-
-	if(fp!=NULL)
-		rewind(fp);
-
-	list = strListReadFile(fp, NULL, INI_MAX_LINE_LEN);
-	if(list==NULL)
-		return(NULL);
-
-	/* Look for !include directives */
-	inc_len=strlen(INI_INCLUDE_DIRECTIVE);
-	for(i=0; list[i]!=NULL; i++) {
-		if(strnicmp(list[i],INI_INCLUDE_DIRECTIVE,inc_len)==0) {
-			glob_t gl = {0};
-			size_t j;
-			p=list[i]+inc_len;
-			SKIP_WHITESPACE(p);
-			truncsp(p);
- 			(void)glob(p, GLOB_MARK, NULL, &gl);
-			safe_snprintf(str, sizeof(str), "; %s - %lu matches found", list[i], (ulong)gl.gl_pathc);
-			strListReplace(list, i, str);
-			for(j = 0; j < gl.gl_pathc; j++) {
-				char* fname = gl.gl_pathv[j];
-				if(*lastchar(fname) == '/')
-					continue;
-				if(inc_counter >= INI_INCLUDE_MAX)
-					SAFEPRINTF2(str, "; %s - MAXIMUM INCLUDES REACHED: %u", fname, INI_INCLUDE_MAX);
-				else if((insert_fp=fopen(fname,"r"))==NULL)
-					SAFEPRINTF2(str, "; %s - FAILURE: %s", fname, safe_strerror(errno, err, sizeof(err)));
-				else
-					SAFEPRINTF(str, "; %s", fname);
-				strListInsert(&list, str, i + 1);
-				if(insert_fp!=NULL) {
-					strListInsertFile(insert_fp, &list, i + 2, INI_MAX_LINE_LEN);
-					fclose(insert_fp);
-					insert_fp=NULL;
-					inc_counter++;
-				}
-			}
-			globfree(&gl);
-		}
-	}
-
-	/* truncate new-line chars off end of strings */
-	for(i=0; list[i]!=NULL; i++)
-		truncnl(list[i]);
-
-	return(list);
-}
-
-BOOL iniHasInclude(const str_list_t list)
-{
-	size_t		i;
-
-	/* Look for !include directives */
-	size_t inc_len=strlen(INI_INCLUDE_DIRECTIVE) + 1;
-	for(i=0; list[i]!=NULL; i++) {
-		if(strnicmp(list[i], ";" INI_INCLUDE_DIRECTIVE, inc_len)==0)
-			return TRUE;
-	}
-	return FALSE;
-}
-
-BOOL iniWriteFile(FILE* fp, const str_list_t list)
-{
-	size_t		count;
-	long pos;
-
-	rewind(fp);
-	count = strListWriteFile(fp,list,"\n");
-	fflush(fp);
-	pos = ftell(fp);
-	if (pos == -1)
-		return (FALSE);
-	if(chsize(fileno(fp), pos)!=0)	/* truncate */
-		return(FALSE);
-
-	return(count == strListCount(list));
-}
-
-#ifdef INI_FILE_TEST
-void main(int argc, char** argv)
-{
-	int			i;
-	size_t		l;
-	char		str[128];
-	FILE*		fp;
-	str_list_t	list;
-
-	for(i=1;i<argc;i++) {
-		if((fp=iniOpenFile(argv[i],FALSE)) == NULL) {
-			perror(argv[i]);
-			continue;
-		}
-		if((list=iniReadFile(fp)) != NULL) {
-			iniSortSections(&list, TRUE);
-			for(size_t j = 0; list[j] != NULL; j++)
-				printf("%s\n", list[j]);
-			strListFree(&list);
-		}
-		fclose(fp);
-	}
-}
-#endif
diff --git a/xpdev/ini_file.h b/xpdev/ini_file.h
deleted file mode 100644
index 5830995..0000000
--- a/xpdev/ini_file.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Functions to parse ini (initialization / configuration) files */
-
-/* $Id: ini_file.h,v 1.60 2020/04/03 18:41:45 rswindell Exp $ */
-// vi: tabstop=4
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _INI_FILE_H
-#define _INI_FILE_H
-
-#if !defined(NO_SOCKET_SUPPORT)
-	#include "sockwrap.h"	/* inet_addr, SOCKET */
-#endif
-#include "genwrap.h"
-#include "str_list.h"	/* strList_t */
-
-#define INI_MAX_VALUE_LEN	1024		/* Maximum value length, includes '\0' */
-#define ROOT_SECTION		NULL
-
-typedef struct {
-	ulong		bit;
-	const char*	name;
-} ini_bitdesc_t;
-
-typedef struct {
-	int		key_len;
-	char*	key_prefix;
-	char*	section_separator;
-	char*	value_separator;
-	char*	bit_separator;
-	char*	literal_separator;
-} ini_style_t;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Read all section names and return as an allocated string list */
-/* Optionally (if prefix!=NULL), returns a subset of section names */
-DLLEXPORT str_list_t 	iniReadSectionList(FILE*, const char* prefix);
-/* Returns number (count) of sections */
-DLLEXPORT size_t 		iniReadSectionCount(FILE*, const char* prefix);
-/* Read all key names and return as an allocated string list */
-DLLEXPORT str_list_t 	iniReadKeyList(FILE*, const char* section);
-/* Read all key and value pairs and return as a named string list */
-DLLEXPORT named_string_t** 
-						iniReadNamedStringList(FILE*, const char* section);
-
-/* Return the supported Log Levels in a string list - for *LogLevel macros */
-DLLEXPORT str_list_t 	iniLogLevelStringList(void);
-
-/* Return the unparsed/converted value */
-DLLEXPORT char* 		iniReadValue(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-DLLEXPORT char* 		iniReadExistingValue(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-
-/* These functions read a single key of the specified type */
-DLLEXPORT char* 		iniReadString(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-/* If the key doesn't exist, iniReadExistingString just returns NULL */
-DLLEXPORT char* 		iniReadExistingString(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-DLLEXPORT str_list_t 	iniReadStringList(FILE*, const char* section, const char* key
-							,const char* sep, const char* deflt);
-DLLEXPORT long 			iniReadInteger(FILE*, const char* section, const char* key
-							,long deflt);
-DLLEXPORT ushort 		iniReadShortInt(FILE*, const char* section, const char* key
-							,ushort deflt);
-DLLEXPORT ulong 		iniReadLongInt(FILE*, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT int64_t 		iniReadBytes(FILE*, const char* section, const char* key
-							,ulong unit, int64_t deflt);
-DLLEXPORT double 		iniReadDuration(FILE*, const char* section, const char* key
-							,double deflt);
-DLLEXPORT double 		iniReadFloat(FILE*, const char* section, const char* key
-							,double deflt);
-DLLEXPORT BOOL 			iniReadBool(FILE*, const char* section, const char* key
-							,BOOL deflt);
-DLLEXPORT time_t 		iniReadDateTime(FILE*, const char* section, const char* key
-							,time_t deflt);
-DLLEXPORT unsigned 		iniReadEnum(FILE*, const char* section, const char* key
-							,str_list_t names, unsigned deflt);
-DLLEXPORT unsigned* 	iniReadEnumList(FILE*, const char* section, const char* key
-							,str_list_t names, unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT int* 			iniReadIntList(FILE*, const char* section, const char* key
-							,unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT long 			iniReadNamedInt(FILE*, const char* section, const char* key
-							,named_long_t*, long deflt);
-DLLEXPORT ulong 		iniReadNamedLongInt(FILE*, const char* section, const char* key
-							,named_ulong_t*, ulong deflt);
-DLLEXPORT double 		iniReadNamedFloat(FILE*, const char* section, const char* key
-							,named_double_t*, double deflt);
-DLLEXPORT ulong 		iniReadBitField(FILE*, const char* section, const char* key
-							,ini_bitdesc_t* bitdesc, ulong deflt);
-#define		iniReadLogLevel(f,s,k,d) iniReadEnum(f,s,k,iniLogLevelStringList(),d)
-
-/* Free string list returned from iniRead*List functions */
-DLLEXPORT void* 		iniFreeStringList(str_list_t list);
-
-/* Free named string list returned from iniReadNamedStringList */
-DLLEXPORT void* 		iniFreeNamedStringList(named_string_t** list);
-
-
-/* File I/O Functions */
-DLLEXPORT char* 		iniFileName(char* dest, size_t maxlen, const char* dir, const char* fname);
-DLLEXPORT FILE* 		iniOpenFile(const char* fname, BOOL create);
-DLLEXPORT str_list_t 	iniReadFile(FILE*);
-DLLEXPORT BOOL 			iniWriteFile(FILE*, const str_list_t);
-DLLEXPORT BOOL 			iniCloseFile(FILE*);
-
-/* StringList functions */
-DLLEXPORT str_list_t 	iniGetSectionList(str_list_t list, const char* prefix);
-DLLEXPORT size_t 		iniGetSectionCount(str_list_t list, const char* prefix);
-DLLEXPORT str_list_t 	iniGetKeyList(str_list_t list, const char* section);
-DLLEXPORT named_string_t** 
-						iniGetNamedStringList(str_list_t list, const char* section);
-
-/* Return the unparsed value (string literals not supported): */
-DLLEXPORT char* 		iniGetValue(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-DLLEXPORT char* 		iniGetExistingValue(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-
-/* Return the string value (potentially string literals separated by colon rather than equal): */
-DLLEXPORT char* 		iniGetString(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-/* If the key doesn't exist, iniGetExistingString just returns NULL */
-DLLEXPORT char* 		iniGetExistingString(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-DLLEXPORT str_list_t 	iniGetStringList(str_list_t, const char* section, const char* key
-							,const char* sep, const char* deflt);
-DLLEXPORT long 			iniGetInteger(str_list_t, const char* section, const char* key
-							,long deflt);
-DLLEXPORT ushort 		iniGetShortInt(str_list_t, const char* section, const char* key
-							,ushort deflt);
-DLLEXPORT ulong 		iniGetLongInt(str_list_t, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT int64_t 		iniGetBytes(str_list_t, const char* section, const char* key
-							,ulong unit, int64_t deflt);
-DLLEXPORT double 		iniGetDuration(str_list_t, const char* section, const char* key
-							,double deflt);
-DLLEXPORT double 		iniGetFloat(str_list_t, const char* section, const char* key
-							,double deflt);
-DLLEXPORT BOOL 			iniGetBool(str_list_t, const char* section, const char* key
-							,BOOL deflt);
-DLLEXPORT time_t 		iniGetDateTime(str_list_t, const char* section, const char* key
-							,time_t deflt);
-DLLEXPORT unsigned 		iniGetEnum(str_list_t, const char* section, const char* key
-							,str_list_t names, unsigned deflt);
-DLLEXPORT unsigned* 	iniGetEnumList(str_list_t, const char* section, const char* key
-							,str_list_t names, unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT int* 			iniGetIntList(str_list_t, const char* section, const char* key
-							,unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT long 			iniGetNamedInt(str_list_t, const char* section, const char* key
-							,named_long_t*, long deflt);
-DLLEXPORT ulong 		iniGetNamedLongInt(str_list_t, const char* section, const char* key
-							,named_ulong_t*, ulong deflt);
-DLLEXPORT double 		iniGetNamedFloat(str_list_t, const char* section, const char* key
-							,named_double_t*, double deflt);
-DLLEXPORT ulong 		iniGetBitField(str_list_t, const char* section, const char* key
-							,ini_bitdesc_t* bitdesc, ulong deflt);
-DLLEXPORT str_list_t 	iniGetSection(str_list_t, const char *section);
-#define		iniGetLogLevel(l,s,k,d) iniGetEnum(l,s,k,iniLogLevelStringList(),d)
-
-#if !defined(NO_SOCKET_SUPPORT)
-DLLEXPORT ulong 		iniReadIpAddress(FILE*, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT ulong 		iniGetIpAddress(str_list_t, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT char* 		iniSetIpAddress(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT struct in6_addr
-						iniReadIp6Address(FILE*, const char* section, const char* key
-							,struct in6_addr deflt);
-DLLEXPORT struct in6_addr
-						iniGetIp6Address(str_list_t, const char* section, const char* key
-							,struct in6_addr deflt);
-DLLEXPORT char* 		iniSetIp6Address(str_list_t*, const char* section, const char* key, struct in6_addr value
-							,ini_style_t*);
-DLLEXPORT int 			iniGetSocketOptions(str_list_t, const char* section
-							,SOCKET sock, char* error, size_t errlen);
-#endif
-
-DLLEXPORT void 			iniSetDefaultStyle(ini_style_t);
-
-DLLEXPORT char* 		iniSetString(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetStringLiteral(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetValue(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetInteger(str_list_t*, const char* section, const char* key, long value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetShortInt(str_list_t*, const char* section, const char* key, ushort value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetLongInt(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetBytes(str_list_t*, const char* section, const char* key, ulong unit, int64_t value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetDuration(str_list_t*, const char* section, const char* key, double value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetHexInt(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetFloat(str_list_t*, const char* section, const char* key, double value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetBool(str_list_t*, const char* section, const char* key, BOOL value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetDateTime(str_list_t*, const char* section, const char* key, BOOL include_time, time_t
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetEnum(str_list_t*, const char* section, const char* key, str_list_t names
-							,unsigned value, ini_style_t*);
-DLLEXPORT char* 		iniSetEnumList(str_list_t*, const char* section, const char* key
-							,const char* sep, str_list_t names, unsigned* values, unsigned count, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedInt(str_list_t*, const char* section, const char* key, named_long_t*
-							,long value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedHexInt(str_list_t*, const char* section, const char* key, named_ulong_t*
-							,ulong value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedLongInt(str_list_t*, const char* section, const char* key, named_ulong_t*
-							,ulong value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedFloat(str_list_t*, const char* section, const char* key, named_double_t*
-							,double value, ini_style_t*);
-DLLEXPORT char* 		iniSetBitField(str_list_t*, const char* section, const char* key, ini_bitdesc_t*, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetStringList(str_list_t*, const char* section, const char* key
-							,const char* sep, str_list_t value, ini_style_t*);
-#define		iniSetLogLevel(l,s,k,v,style) iniSetEnum(l,s,k,iniLogLevelStringList(),v,style)
-DLLEXPORT char*			iniSetIntList(str_list_t*, const char* section, const char* key
-							,const char* sep, int* value, unsigned count, ini_style_t*);
-
-DLLEXPORT size_t 		iniAddSection(str_list_t*, const char* section
-							,ini_style_t*);
-
-DLLEXPORT size_t 		iniAppendSection(str_list_t*, const char* section
-							,ini_style_t*);
-
-DLLEXPORT size_t 		iniAppendSectionWithKeys(str_list_t*, const char* section, const str_list_t keys
-							,ini_style_t*);
-
-DLLEXPORT BOOL 			iniSectionExists(str_list_t, const char* section);
-DLLEXPORT BOOL 			iniKeyExists(str_list_t, const char* section, const char* key);
-DLLEXPORT BOOL 			iniValueExists(str_list_t, const char* section, const char* key);
-DLLEXPORT char* 		iniPopKey(str_list_t*, const char* section, const char* key, char* value);
-DLLEXPORT char* 		iniPopString(str_list_t*, const char* section, const char* key, char* value);
-DLLEXPORT BOOL 			iniRemoveKey(str_list_t*, const char* section, const char* key);
-DLLEXPORT BOOL 			iniRemoveValue(str_list_t*, const char* section, const char* key);
-DLLEXPORT BOOL 			iniRemoveSection(str_list_t*, const char* section);
-DLLEXPORT BOOL 			iniRemoveSections(str_list_t*, const char* prefix);
-DLLEXPORT BOOL 			iniRenameSection(str_list_t*, const char* section, const char* newname);
-DLLEXPORT BOOL 			iniSortSections(str_list_t*, BOOL sort_keys);
-
-DLLEXPORT BOOL 			iniHasInclude(const str_list_t);
-
-/*
- * Too handy to leave internal
- */
-DLLEXPORT unsigned*		parseEnumList(const char* values, const char* sep, const char** const names, unsigned* count);
-DLLEXPORT int*			parseIntList(const char* values, const char* sep, unsigned* count);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/ini_file.txt b/xpdev/ini_file.txt
deleted file mode 100644
index 92c65d2..0000000
--- a/xpdev/ini_file.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-$Id: ini_file.txt,v 1.2 2005/10/13 10:16:07 rswindell Exp $
-
-Synchronet/xpdev ini_file module
---------------------------------
-The basic format of the files supported by the xpdev ini_file module is that
-of the Windows .ini file, with some additional features.
-
-The basic Windows .ini file format is as follows:
-
-1. The file contains ASCII text only with LF or CR/LF-terminated lines.
-
-2. The file is separated into logical "sections". Each section may have its
-   own list of keys with associated values, one per line.
-
-3. A section begins with a line consisting only of "[" <section name> "]".
-
-4. White space before or after the section name is ignored.
-
-5. A section ends when the end of file is reached or a new section begins.
- 
-6. Keys and associated values within a section are specified, each on their
-   line, in the format: <key_name> "=" <value>
-
-7. White space before and after the key/value separator ("=") is ignored.
-
-8. Comments are lines with a semicolon (";") as the first non-whitespace
-   character.
-
-9. Blank lines between or within sections are ignored.
-
-Example basic Windows .ini file content:
-
-; for 16-bit app support
-[fonts]
-[extensions]
-[Mail]
-MAPI=1
-CMCDLLNAME32=mapi32.dll
-CMCDLLNAME=mapi.dll
-CMC=1
-MAPIX=1
-MAPIXVER=1.0.0.1
-OLEMessaging=1
-[SciCalc]
-layout=0
-[MSUCE]
-Advanced=1
-CodePage=Unicode
-Font=Terminal
-
-
-Synchronet/xpdev extended-ini_file format
-=========================================
-The Synchronet/xpdev ini_file module supports a somewhat "extended" .ini file
-format with the following additions:
-
-Filenames
----------
-INI filenames typically end in a ".ini" suffix, but that is not a requirement.
-
-If the application uses the ini_file module's iniFileName() function to
-determine the correct ini filename for the current system, different ini files
-may be used for different systems on the same network, reading from the same
-directory.
-
-The different ini filename permutations supported (assuming "file.ini" is the
-base filename) are:
-
-    path/file.<host>.<domain>.ini
-    path/file.<host>.ini
-    path/file.<platform>.ini
-    path/file.ini
-
-Root section
-------------
-Key/value pairs in the file *before* the first section definition are
-considered part of the "root" section. This section is often used to define
-key/value pairs that apply globally to all the following sections. The root
-section may have other uses as well.
-
-Section Prefixes
-----------------
-Section names may be include a section "prefix", a fixed portion of the
-section name that may be used be the application to logically group
-related sections. Section pre-fixes typically end in a colon, but that is
-not a requirement.   
-
-Literal string values
----------------------
-String values separated by the key name with a colon (':') instead of an
-equals sign ('='), are parsed as "literal" strings, which means the string
-will retain any trailing white-space on the line. This may be enhanced in
-the future to support C escape sequences, multiple/broken lines, etc.
-
-Section name list
------------------
-If one wishes to specify a list of sections for all values to be applied to
-they may specify a list of section names, separated by '|', where a single
-section name would normally be specified. Example:
-"[telnet|rlogin]"
-
-Boolean values
---------------
-Values with an either true or false (1 or 0) state can have their value
-specified as a number (0, or non-zero), or the following strings (yes,
-English only): "true", "yes", or "on" (interpretted as 1), or "false",
-"no", or "off" (interpretted as 0). Any otherwise unrecognized text strings
-will be interpretted as 0 (false).
-
-Integer values
---------------
-Integer values may be negative or positive whole numbers of up to 
-(at least) 32-bits in size.
-
-Integer values may be specified in octal (base 8), decimal (base 10),
-hexadecimal (base 16), or base 36 formats based on the following
-interpretation of the specified value text:
-
-If the first character is 0 and the second character is not 'x' or 'X', the
-string is interpreted as an octal integer; otherwise, it is interpreted as
-a decimal number. If the first character is '0' and the second character is
-'x' or 'X', the string is interpreted as a hexadecimal integer. If the
-first character is '1' through '9', the string is interpreted as a decimal
-integer. The letters 'a' through 'z' (or 'A' through 'Z') are assigned the
-values 10 through 35.
-
-The exception to this rule are the values of "true", "yes", or "on",
-always interpretted as the value of 1 (one).
-
-Long integer values
--------------------
-Long integer values may be positive whole numbers of up to (at least)
-32-bits in size. Otherwise, long integer values are interpretted the same as
-normal integer values.
-
-Log levels
-----------
-The ini_file module includes built-in support for the standard Unix syslog
-levels: Emergency (0), Alert (1), Critical (2), Error (3), Warning (4), 
-Notice (5), Informational (6), and Debugging (7).
-
-The higher the log level, the more log output will be generated.
-
-Partial or complete log level names may be specified for the log level
-value, or the numeric equivalent.
-
-Byte counts
------------
-Byte count values (e.g. file sizes) may be specified as positive numbers
-(fractional numbers are supported), optionally with a 'T', 'G', 'M', or 'K'
-suffix to specify terabytes, gigabytes, megabytes, or kilobytes, respectively.
-
-Date/Time stamps
-----------------
-Date and time values may be specified in any of the following formats:
-
-ISO-8601 date and time format:                  "CCYYMMDDThhmmss" 
-Euro/Canadian numeric date format:              "DD.MM.[CC]YY [time] [p]"
-American numeric date format:                   "MM/DD/[CC]YY [time] [p]"
-Perversion of RFC822 date format:               "DD[-]Mon [CC]YY [time] [p]"
-IETF standard (RFC2822) date format:            "Wday, DD Mon [CC]YY [time]"
-Preferred date format:                          "Mon DD[,] [CC]YY [time] [p]"
-JavaScript Date.toString() format:              "Wday Mon DD [CC]YY [time]"
-ctime() format:                                 "Wday Mon DD [time] [CC]YY"
-time_t format:                                  seconds since Jan 1, 1970 UTC
-
-where:
-            CC      = Century (i.e. "19" or "20")
-            YY      = Year number (e.g. "05")
-            MM      = Month number (1-12)
-            DD      = Day of month (1-31)
-            hh      = Hour of day (0-23)
-            mm      = Minute of hour (0-59)
-            ss      = Second of minute (0-59)
-            p       = AM/PM designation
-            time    = Time of day specified as "hh[:mm[:ss]]"
-            Mon     = Month name (e.g. "Jan", "Feb", etc.)
-            Wday    = Weekday name (e.g. "Mon", "Tue", etc.)
-            []      = Optional parameter
-
-Bit-fields
-----------
-Bit-field values may be specified as a positive number (same rules of
-interpretation as integer values), a bit-name, or a list of numbers or
-bit-names separated by the '|' character.
-
-Bit-fields are often used to specify multiple boolean-type values in
-a single key/value pair.
-
-Include directive
------------------
-An ini file may be include/imported/inserted into a another with the 
-"!include" directive. The line must begin with "!include", followed by 
-white space, and then a filename to include (optionally with a path). 
-Sections may span files.
-
-file1.ini:
-[section_one]
-    key1 = value1
-!include file2.ini
-
-file2.ini:
-    key2 = value2
-
-In the above example, both key1 and key2 are part of section_one.
-
-End-of-file directive
----------------------
-An ini file may be prematurely terminated with the "!eof" directive. This
-stops the ini_file module functions from processing any lines following this
-directive.
-
-
diff --git a/xpdev/link_list.c b/xpdev/link_list.c
deleted file mode 100644
index 2ecbfa3..0000000
--- a/xpdev/link_list.c
+++ /dev/null
@@ -1,963 +0,0 @@
-/* Double-Linked-list library */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* memset */
-#include "link_list.h"
-#include "genwrap.h"
-
-#if defined(_WIN32) && defined(LINK_LIST_USE_HEAPALLOC)
-	#define malloc(size)	HeapAlloc(GetProcessHeap(), /* flags: */0, size)
-	#define free(ptr)		HeapFree(GetProcessHeap(), /* flags: */0, ptr)
-#endif
-
-link_list_t* listInit(link_list_t* list, long flags)
-{
-	if(list == NULL)
-		return NULL;
-
-	memset(list,0,sizeof(link_list_t));
-
-	list->flags = flags;
-
-#if defined(LINK_LIST_THREADSAFE)
-	if(list->flags&LINK_LIST_MUTEX) {
-		list->mutex = pthread_mutex_initializer_np(/* recursive: */TRUE);
-	}
-
-	if(list->flags&LINK_LIST_SEMAPHORE)
-		sem_init(&list->sem,0,0);
-#endif
-
-	if(flags&LINK_LIST_ATTACH)
-		listAttach(list);
-
-	return(list);
-}
-
-BOOL listFreeNodeData(list_node_t* node)
-{
-	if(node!=NULL && node->data!=NULL && !(node->flags&LINK_LIST_LOCKED)) {
-		free(node->data);
-		node->data = NULL;
-		return(TRUE);
-	}
-	return(FALSE);
-}
-
-long listFreeNodes(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* next;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=next) {
-
-		if(node->flags&LINK_LIST_LOCKED)
-			break;
-
-		if(((list->flags&LINK_LIST_ALWAYS_FREE) || (node->flags&LINK_LIST_MALLOC))
-			&& !(list->flags&LINK_LIST_NEVER_FREE))
-			listFreeNodeData(node);
-
-		next = node->next;
-
-		free(node);
-
-		if(list->count)
-			list->count--;
-	}
-
-	list->first = node;
-	if(!list->count)
-		list->last = NULL;
-
-	listUnlock(list);
-
-	return(list->count);
-}
-
-BOOL listFree(link_list_t* list)
-{
-	if(list==NULL)
-		return(FALSE);
-
-	if(listFreeNodes(list))
-		return(FALSE);
-
-#if defined(LINK_LIST_THREADSAFE)
-
-	if(list->flags&LINK_LIST_MUTEX) {
-		while(pthread_mutex_destroy((pthread_mutex_t*)&list->mutex)==EBUSY)
-			SLEEP(1);
-		list->flags&=~LINK_LIST_MUTEX;
-	}
-
-	if(list->flags&LINK_LIST_SEMAPHORE) {
-		while(sem_destroy(&list->sem)==-1 && errno==EBUSY)
-			SLEEP(1);
-		//list->sem=(sem_t)NULL; /* Removed 08-20-08 - list->sem is never checked and this causes an error with gcc 4.1.2 (ThetaSigma) */
-		list->flags&=~LINK_LIST_SEMAPHORE;
-	}
-#endif
-
-	return(TRUE);
-}
-
-long listAttach(link_list_t* list)
-{
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-	list->refs++;
-	listUnlock(list);
-
-	return(list->refs);
-}
-
-long listDettach(link_list_t* list)
-{
-	int refs;
-
-	if(list==NULL || list->refs<1)
-		return(-1);
-
-	listLock(list);
-	if((refs=--list->refs)==0)
-		listFree(list);
-	else
-		listUnlock(list);
-
-	return(refs);
-}
-
-void* listSetPrivateData(link_list_t* list, void* p)
-{
-	void* old;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	old=list->private_data;
-	list->private_data=p;
-	listUnlock(list);
-	return(old);
-}
-
-void* listGetPrivateData(link_list_t* list)
-{
-	if(list==NULL)
-		return(NULL);
-	return(list->private_data);
-}
-
-#if defined(LINK_LIST_THREADSAFE)
-
-BOOL listSemPost(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_post(&list->sem)==0);
-}
-
-BOOL listSemWait(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_wait(&list->sem)==0);
-}
-
-BOOL listSemTryWait(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_trywait(&list->sem)==0);
-}
-
-BOOL listSemTryWaitBlock(link_list_t* list, unsigned long timeout)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_trywait_block(&list->sem,timeout)==0);
-}
-
-#endif
-
-BOOL listLock(link_list_t* list)
-{
-	int	ret=0;
-
-	if(list==NULL)
-		return(FALSE);
-#if defined(LINK_LIST_THREADSAFE)
-	if((list->flags&LINK_LIST_MUTEX) && (ret=pthread_mutex_lock(&list->mutex))==0)
-#endif
-		list->locks++;
-	return(ret==0);
-}
-
-BOOL listIsLocked(const link_list_t* list)
-{
-	if(list==NULL)
-		return(FALSE);
-	return(list->locks > 0 ? TRUE : FALSE);
-}
-
-BOOL listUnlock(link_list_t* list)
-{
-	int	ret=0;
-
-	if(list==NULL)
-		return(FALSE);
-#if defined(LINK_LIST_THREADSAFE)
-	if((list->flags&LINK_LIST_MUTEX) && (ret=pthread_mutex_unlock(&list->mutex))==0)
-#endif
-		list->locks--;
-	return(ret==0);
-}
-
-long listCountNodes(link_list_t* list)
-{
-	long			count=0;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(-1);
-
-	if(list->count)
-		return(list->count);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next)
-		count++;
-
-	listUnlock(list);
-
-	return(count);
-}
-
-list_node_t* listFindNode(link_list_t* list, const void* data, size_t length)
-{
-	list_node_t* node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(length==0) {
-			if(node->data==data)
-				break;
-		} else if(data==NULL) {
-			if(node->tag==(list_node_tag_t)length)
-				break;
-		} else if(node->data!=NULL && memcmp(node->data,data,length)==0)
-			break;
-	}
-
-	listUnlock(list);
-
-	return(node);
-}
-
-ulong listCountMatches(link_list_t* list, const void* data, size_t length)
-{
-	list_node_t* node;
-	ulong matches = 0;
-
-	if(list==NULL)
-		return 0;
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(length==0) {
-			if(node->data!=data)
-				continue;
-		} else if(data==NULL) {
-			if(node->tag==(list_node_tag_t)length)
-				continue;
-		} else if(node->data==NULL || memcmp(node->data,data,length)!=0)
-			continue;
-		matches++;
-	}
-
-	listUnlock(list);
-
-	return matches;
-}
-
-#ifndef NO_STR_LIST_SUPPORT
-
-str_list_t listStringList(link_list_t* list)
-{
-	list_node_t*	node;
-	str_list_t		str_list;
-	size_t			count=0;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((str_list=strListInit())==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(node->data!=NULL)
-			strListAppend(&str_list, (char*)node->data, count++);
-	}
-
-	listUnlock(list);
-
-	return(str_list);
-}
-
-str_list_t listSubStringList(const list_node_t* node, long max)
-{
-	long			count;
-	str_list_t		str_list;
-	link_list_t*	list;
-
-	if(node==NULL)
-		return(NULL);
-
-	if((str_list=strListInit())==NULL)
-		return(NULL);
-
-	list=node->list;
-	listLock(list);
-
-	for(count=0; count<max && node!=NULL; node=node->next) {
-		if(node->data!=NULL)
-			strListAppend(&str_list, (char*)node->data, count++);
-	}
-
-	listUnlock(list);
-
-	return(str_list);
-}
-
-void* listFreeStringList(str_list_t list)
-{
-	strListFree(&list);
-	return(list);
-}
-
-#endif	/* #ifndef NO_STR_LIST_SUPPORT */
-
-list_node_t* listFirstNode(link_list_t* list)
-{
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	node=list->first;
-	listUnlock(list);
-
-	return(node);
-}
-
-list_node_t* listLastNode(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* last=NULL;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	if(list->last!=NULL)
-		last=list->last;
-	else
-		for(node=list->first; node!=NULL; node=node->next)
-			last=node;
-	listUnlock(list);
-
-	return(last);
-}
-
-long listNodeIndex(link_list_t* list, list_node_t* find_node)
-{
-	long			i=0;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next)
-		if(node==find_node)
-			break;
-
-	listUnlock(list);
-
-	if(node==NULL)
-		return(-1);
-
-	return(i);
-}
-
-list_node_t* listNodeAt(link_list_t* list, long index)
-{
-	long			i=0;
-	list_node_t*	node;
-
-	if(list==NULL || index<0)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL && i<index; node=node->next)
-		i++;
-
-	listUnlock(list);
-
-	return(node);
-}
-
-list_node_t* listNextNode(const list_node_t* node)
-{
-	list_node_t*	next;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	next=node->next;
-	listUnlock(node->list);
-
-	return(next);
-}
-
-list_node_t* listPrevNode(const list_node_t* node)
-{
-	list_node_t*	prev;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	prev=node->prev;
-	listUnlock(node->list);
-
-	return(prev);
-}
-
-void* listNodeData(const list_node_t* node)
-{
-	void*	data;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	data=node->data;
-	listUnlock(node->list);
-
-	return(data);
-}
-
-BOOL listNodeIsLocked(const list_node_t* node)
-{
-	return(node!=NULL && (node->flags&LINK_LIST_LOCKED));
-}
-
-BOOL listLockNode(list_node_t* node)
-{
-	if(node==NULL || (node->flags&LINK_LIST_LOCKED))
-		return(FALSE);
-
-	listLock(node->list);
-	node->flags|=LINK_LIST_LOCKED;
-	listUnlock(node->list);
-
-	return(TRUE);
-}
-
-BOOL listUnlockNode(list_node_t* node)
-{
-	if(!listNodeIsLocked(node))
-		return(FALSE);
-
-	listLock(node->list);
-	node->flags&=~LINK_LIST_LOCKED;
-	listUnlock(node->list);
-
-	return(TRUE);
-}
-
-static list_node_t* list_add_node(link_list_t* list, list_node_t* node, list_node_t* after)
-{
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	node->list = list;
-	if(after==LAST_NODE)					/* e.g. listPushNode() */
-		after=list->last;
-	node->prev = after;
-
-	if(after==list->last)					/* append to list */
-		list->last = node;
-	if(after==FIRST_NODE) {					/* insert at beginning of list */
-		node->next = list->first;
-		if(node->next!=NULL)
-			node->next->prev = node;
-		list->first = node;
-	} else {
-		if(after->next!=NULL) {
-			after->next->prev = node;
-			node->next = after->next;
-		}
-		after->next = node;
-	}
-
-	list->count++;
-
-	listUnlock(list);
-
-#if defined(LINK_LIST_THREADSAFE)
-	if(list->flags&LINK_LIST_SEMAPHORE)
-		listSemPost(list);
-#endif
-
-	return(node);
-}
-
-list_node_t* listAddNode(link_list_t* list, void* data, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t* node;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((node=(list_node_t*)malloc(sizeof(list_node_t)))==NULL)
-		return(NULL);
-
-	memset(node,0,sizeof(list_node_t));
-	node->data = data;
-	node->tag = tag;
-
-	return(list_add_node(list,node,after));
-}
-
-long listAddNodes(link_list_t* list, void** data, list_node_tag_t* tag, list_node_t* after)
-{
-	long			i;
-	list_node_t*	node=NULL;
-
-	if(data==NULL)
-		return(-1);
-
-	for(i=0; data[i]!=NULL ;i++)
-		if((node=listAddNode(list,data[i],tag==NULL ? LIST_NODE_TAG_DEFAULT : *(tag++),node==NULL ? after:node))==NULL)
-			return(i);
-
-	return(i);
-}
-
-list_node_t* listAddNodeData(link_list_t* list, const void* data, size_t length, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t*	node;
-	void*			buf;
-
-	if((buf=malloc(length))==NULL)
-		return(NULL);
-	memcpy(buf,data,length);
-
-	if((node=listAddNode(list,buf,tag,after))==NULL) {
-		free(buf);
-		return(NULL);
-	}
-	node->flags |= LINK_LIST_MALLOC;
-
-	return(node);
-}
-
-list_node_t* listAddNodeString(link_list_t* list, const char* str, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t*	node;
-	char*			buf;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	if((node=listAddNode(list,buf,tag,after))==NULL) {
-		free(buf);
-		return(NULL);
-	}
-	node->flags |= LINK_LIST_MALLOC;
-
-	return(node);
-}
-
-#ifndef NO_STR_LIST_SUPPORT
-
-long listAddStringList(link_list_t* list, str_list_t str_list, list_node_tag_t* tag, list_node_t* after)
-{
-	long			i;
-	list_node_t*	node=NULL;
-
-	if(str_list==NULL)
-		return(-1);
-
-	for(i=0; str_list[i]!=NULL ;i++)
-		if((node=listAddNodeString(list,str_list[i],tag==NULL ? LIST_NODE_TAG_DEFAULT : *(tag++),node==NULL ? after:node))==NULL)
-			return(i);
-
-	return(i);
-}
-
-#endif
-
-long listAddNodeList(link_list_t* list, const link_list_t* src, list_node_t* after)
-{
-	long			count=0;
-	list_node_t*	node=NULL;
-	list_node_t*	src_node;
-
-	if(src==NULL)
-		return(-1);
-
-	for(src_node=src->first; src_node!=NULL; src_node=src_node->next, count++) {
-		if((node=listAddNode(list, src_node->data, src_node->tag, node==NULL ? after:node))==NULL)
-			return(count);
-		node->flags = src_node->flags;
-	}
-
-	return(count);
-}
-
-long listMerge(link_list_t* list, const link_list_t* src, list_node_t* after)
-{
-	long			count=0;
-	list_node_t*	node=NULL;
-	list_node_t*	src_node;
-
-	if(src==NULL)
-		return(-1);
-
-	for(src_node=src->first; src_node!=NULL; src_node=src_node->next, count++)
-		if((node=list_add_node(list, src_node, node==NULL ? after:node))==NULL)
-			return(count);
-
-	return(count);
-}
-
-link_list_t* listExtract(link_list_t* dest_list, const list_node_t* node, long max)
-{
-	long			count;
-	link_list_t*	list;
-
-	if(node==NULL || node->list==NULL)
-		return(NULL);
-
-	if((list=listInit(dest_list, node->list->flags))==NULL)
-		return(NULL);
-
-	for(count=0; count<max && node!=NULL; node=node->next) {
-		listAddNode(list, node->data, node->tag, list->last);
-		count++;
-	}
-
-	return(list);
-}
-
-static void* list_remove_node(link_list_t* list, list_node_t* node, BOOL free_data)
-{
-	void*	data;
-
-	if(node==FIRST_NODE)
-		node=list->first;
-	else if(node==LAST_NODE)
-		node=list->last;
-	if(node==NULL)
-		return(NULL);
-
-	if(node->flags&LINK_LIST_LOCKED)
-		return(NULL);
-
-	if(node->prev!=NULL)
-		node->prev->next = node->next;
-	if(node->next!=NULL)
-		node->next->prev = node->prev;
-	if(list->first==node)
-		list->first = node->next;
-	if(list->last==node)
-		list->last = node->prev;
-
-	if(free_data)
-		listFreeNodeData(node);
-
-	data = node->data;
-
-	free(node);
-
-	if(list->count)
-		list->count--;
-
-	return(data);
-}
-
-void* listRemoveNode(link_list_t* list, list_node_t* node, BOOL free_data)
-{
-	void*	data;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	data = list_remove_node(list, node, free_data);
-
-	listUnlock(list);
-
-	return(data);
-}
-
-void* listRemoveTaggedNode(link_list_t* list, list_node_tag_t tag, BOOL free_data)
-{
-	void*			data=NULL;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	if((node=listFindTaggedNode(list, tag)) != NULL)
-		data = list_remove_node(list, node, free_data);
-
-	listUnlock(list);
-
-	return(data);
-}
-
-long listRemoveNodes(link_list_t* list, list_node_t* node, long max, BOOL free_data)
-{
-	list_node_t	*next_node;
-	long count;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	if(node==FIRST_NODE)
-		node=list->first;
-	if(node==LAST_NODE)
-		node=list->last;
-
-	for(count=0; node!=NULL && count<max; node=next_node, count++) {
-		next_node = node->next;
-		if(listRemoveNode(list, node, free_data)==NULL)
-			break;
-	}
-
-	listUnlock(list);
-
-	return(count);
-}
-
-BOOL listSwapNodes(list_node_t* node1, list_node_t* node2)
-{
-	list_node_t	tmp;
-
-	if(node1==NULL || node2==NULL || node1==node2)
-		return(FALSE);
-
-	if(listNodeIsLocked(node1) || listNodeIsLocked(node2))
-		return(FALSE);
-
-	if(node1->list==NULL || node2->list==NULL)
-		return(FALSE);
-
-#if defined(LINK_LIST_THREADSAFE)
-	listLock(node1->list);
-	if(node1->list != node2->list)
-		listLock(node2->list);
-#endif
-
-	tmp=*node1;
-	node1->tag=node2->tag;
-	node1->data=node2->data;
-	node1->flags=node2->flags;
-	node2->tag=tmp.tag;
-	node2->data=tmp.data;
-	node2->flags=tmp.flags;
-
-#if defined(LINK_LIST_THREADSAFE)
-	listUnlock(node1->list);
-	if(node1->list != node2->list)
-		listUnlock(node2->list);
-#endif
-
-	return(TRUE);
-}
-
-static void list_update_prev(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev = NULL;
-
-	if(list == NULL)
-		return;
-
-	node = list->first;
-	while(node != NULL) {
-		node->prev = prev;
-		prev = node;
-		node = node->next;
-	}
-}
-
-void listReverse(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev;
-
-	if(list == NULL)
-		return;
-
-	node = list->first;
-
-	if(node == NULL)
-		return;
-
-	listLock(list);
-
-	list->last = list->first;
-
-	prev = NULL;
-	while(node != NULL) {
-		list_node_t* next = node->next;
-		node->next = prev;
-		prev = node;
-		node = next;
-	}
-
-	list->first = prev;
-
-	list_update_prev(list);
-
-	listUnlock(list);
-}
-
-long listVerify(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev = NULL;
-	long result = 0;
-
-	if(list == NULL)
-		return -1;
-
-	listLock(list);
-
-	node = list->first;
-	while(node != NULL) {
-		if(node->list != list) {
-			result = -2;
-			break;
-		}
-		if(node->prev != prev) {
-			result = -3;
-			break;
-		}
-		prev = node;
-		node = node->next;
-		result++;
-	}
-	if(result >= 0 && list->last != prev)
-		result = -4;
-
-	if(result >= 0 && result != list->count)
-		result = -5;
-
-	listUnlock(list);
-
-	return result;
-}
-
-#if 0
-
-#include <stdio.h>	/* printf, sprintf */
-
-int main(int arg, char** argv)
-{
-	int		i;
-	long	result;
-	char*	p;
-	char	str[32];
-	link_list_t list;
-
-	listInit(&list,0);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	for(i=0; i<100; i++) {
-		sprintf(str,"%u",i);
-		listPushNodeString(&list,str);
-	}
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	listReverse(&list);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	while((p=listShiftNode(&list))!=NULL)
-		printf("%d %s\n",listCountNodes(&list),p), free(p);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	return EXIT_SUCCESS;
-}
-
-#endif
diff --git a/xpdev/link_list.h b/xpdev/link_list.h
deleted file mode 100644
index c2bf6fc..0000000
--- a/xpdev/link_list.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Double-Linked-list library */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _LINK_LIST_H
-#define _LINK_LIST_H
-
-#include <stddef.h>		/* size_t */
-#include <xpdevplus.h>
-#include "wrapdll.h"
-#include "str_list.h"	/* string list functions and types */
-
-#if defined(LINK_LIST_THREADSAFE)
-	#include "threadwrap.h"	/* mutexes */
-	#include "semwrap.h"	/* semaphores */
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define FIRST_NODE				((list_node_t*)NULL)	/* Special value to specify first node in list */
-#define LAST_NODE				((list_node_t*)-1)		/* Special value to specify last node in list */
-
-/* Valid link_list_t.flags and list_node_t.flags bits */
-#define LINK_LIST_MALLOC		(1<<0)	/* Node data allocated with malloc() */
-#define LINK_LIST_ALWAYS_FREE	(1<<1)	/* ALWAYS free node data in listFreeNodes() */
-#define LINK_LIST_NEVER_FREE	(1<<2)	/* NEVER free node data (careful of memory leaks!) */
-#define LINK_LIST_MUTEX			(1<<3)	/* Mutex-protected linked-list */
-#define LINK_LIST_SEMAPHORE		(1<<4)	/* Semaphore attached to linked-list */
-#define LINK_LIST_LOCKED		(1<<5)	/* Node is locked */
-#define LINK_LIST_ATTACH		(1<<6)	/* Attach during init */
-
-/* in case the default tag type is not sufficient for your needs, you can over-ride */
-#if !defined(list_node_tag_t)			
-	typedef long list_node_tag_t;
-#endif
-#if !defined(LIST_NODE_TAG_DEFAULT)
-	#define LIST_NODE_TAG_DEFAULT	0
-#endif
-
-typedef struct list_node {
-	void*				data;			/* pointer to some kind of data */
-	struct list_node*	next;			/* next node in list (or NULL) */
-	struct list_node*	prev;			/* previous node in list (or NULL) */
-	struct link_list*	list;
-	unsigned long		flags;			/* private use flags (by this library) */
-	list_node_tag_t		tag;			/* application use value */
-} list_node_t;
-
-typedef struct link_list {
-	list_node_t*		first;			/* first node in list (or NULL) */
-	list_node_t*		last;			/* last node in list (or NULL) */
-	unsigned long		flags;			/* private use flags (by this library) */
-	long				count;			/* number of nodes in list */
-	void*				private_data;	/* for use by the application/caller */
-	long				refs;			/* reference counter (attached clients) */
-	long				locks;			/* recursive lock counter */
-#if defined(LINK_LIST_THREADSAFE)
-	pthread_mutex_t		mutex;
-	sem_t				sem;
-#endif
-} link_list_t;
-
-/* Initialization, Allocation, and Freeing of Lists and Nodes */
-DLLEXPORT link_list_t*	listInit(link_list_t* /* NULL to auto-allocate */, long flags);
-DLLEXPORT BOOL			listFree(link_list_t*);
-DLLEXPORT long			listFreeNodes(link_list_t*);
-DLLEXPORT BOOL			listFreeNodeData(list_node_t* node);
-
-/* Increment/decrement reference counter (and auto-free when zero), returns -1 on error */
-DLLEXPORT long	listAttach(link_list_t*);
-DLLEXPORT long	listDetach(link_list_t*);
-
-#if defined(LINK_LIST_THREADSAFE)
-DLLEXPORT BOOL	listSemPost(link_list_t*);
-DLLEXPORT BOOL	listSemWait(link_list_t*);
-DLLEXPORT BOOL	listSemTryWait(link_list_t*);
-DLLEXPORT BOOL	listSemTryWaitBlock(link_list_t*, unsigned long timeout);
-#endif
-
-/* Lock/unlock linked lists (works best for mutex-protected lists) */
-/* Locks are recursive (e.g. must call Unlock for each call to Lock */
-DLLEXPORT BOOL	listLock(link_list_t*);
-DLLEXPORT BOOL	listUnlock(link_list_t*);
-DLLEXPORT BOOL	listIsLocked(const link_list_t*);
-#define	listForceUnlock(list)	while(listUnlock(list)==TRUE)
-
-/* Return count or index of nodes, or -1 on error */
-DLLEXPORT long	listCountNodes(link_list_t*);
-DLLEXPORT long	listNodeIndex(link_list_t*, list_node_t*);
-
-/* Get/Set list private data */
-DLLEXPORT void*	listSetPrivateData(link_list_t*, void*);
-DLLEXPORT void*	listGetPrivateData(link_list_t*);
-
-/* Return an allocated string list (which must be freed), array of all strings in linked list */
-DLLEXPORT str_list_t listStringList(link_list_t*);
-
-/* Return an allocated string list (which must be freed), subset of strings in linked list */
-DLLEXPORT str_list_t listSubStringList(const list_node_t*, long max);
-
-/* Free a string list returned from either of the above functions */
-DLLEXPORT void*	listFreeStringList(str_list_t);
-
-/* Extract subset (up to max number of nodes) in linked list (src_node) and place into dest_list */
-/* dest_list == NULL, then allocate a return a new linked list */
-DLLEXPORT link_list_t*	listExtract(link_list_t* dest_list, const list_node_t* src_node, long max);
-
-/* Simple search functions returning found node or NULL on error */
-DLLEXPORT list_node_t*	listNodeAt(link_list_t*, long index);
-/* Find a specific node by data or tag */
-/* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */
-DLLEXPORT list_node_t*	listFindNode(link_list_t*, const void* data, size_t length);
-/* Find a specific node by its tag value */
-#define listFindTaggedNode(list, tag)	listFindNode(list, NULL, tag)
-/* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */
-DLLEXPORT ulong			listCountMatches(link_list_t*, const void* data, size_t length);
-
-/* Convenience functions */
-DLLEXPORT list_node_t*	listFirstNode(link_list_t*);
-DLLEXPORT list_node_t*	listLastNode(link_list_t*);
-DLLEXPORT list_node_t*	listNextNode(const list_node_t*);
-DLLEXPORT list_node_t*	listPrevNode(const list_node_t*);
-DLLEXPORT void*			listNodeData(const list_node_t*);
-
-/* Primitive node locking (not recursive) */
-DLLEXPORT BOOL listLockNode(list_node_t*);
-DLLEXPORT BOOL listUnlockNode(list_node_t*);
-DLLEXPORT BOOL listNodeIsLocked(const list_node_t*);
-
-/* Add node to list, returns pointer to new node or NULL on error */
-DLLEXPORT list_node_t*	listAddNode(link_list_t*, void* data, list_node_tag_t, list_node_t* after /* NULL=insert */);
-
-/* Add array of node data to list, returns number of nodes added (or negative on error) */
-/* tag array may be NULL */
-DLLEXPORT long		listAddNodes(link_list_t*, void** data, list_node_tag_t*, list_node_t* after /* NULL=insert */);
-
-/* Add node to list, allocating and copying the data for the node */
-DLLEXPORT list_node_t*	listAddNodeData(link_list_t*, const void* data, size_t length, list_node_tag_t, list_node_t* after);
-
-/* Add node to list, allocating and copying ASCIIZ string data */
-DLLEXPORT list_node_t*	listAddNodeString(link_list_t*, const char* str, list_node_tag_t, list_node_t* after);
-
-/* Add a list of strings to the linked list, allocating and copying each */
-/* tag array may be NULL */
-DLLEXPORT long		listAddStringList(link_list_t*, str_list_t, list_node_tag_t*, list_node_t* after);
-
-/* Add a list of nodes from a source linked list */
-DLLEXPORT long		listAddNodeList(link_list_t*, const link_list_t* src, list_node_t* after); 
-
-/* Merge a source linked list into the destination linked list */
-/* after merging, the nodes in the source linked list should not be modified or freed */
-DLLEXPORT long		listMerge(link_list_t* dest, const link_list_t* src, list_node_t* after);
-
-/* Swap the data pointers and flags for 2 nodes (possibly in separate lists) */
-DLLEXPORT BOOL		listSwapNodes(list_node_t* node1, list_node_t* node2);
-
-/* Convenience macros for pushing, popping, and inserting nodes */
-#define	listPushNode(list, data)				listAddNode(list, data, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define listInsertNode(list, data)				listAddNode(list, data, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define listPushNodeData(list, data, length)	listAddNodeData(list, data, length, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define	listInsertNodeData(list, data, length)	listAddNodeData(list, data, length, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define	listPushNodeString(list, str)			listAddNodeString(list, str, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define listInsertNodeString(list, str)			listAddNodeString(list, str, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define	listPushStringList(list, str_list)		listAddStringList(list, str_list, NULL, LAST_NODE)
-#define listInsertStringList(list, str_list)	listAddStringList(list, str_list, NULL, FIRST_NODE)
-#define listPopNode(list)						listRemoveNode(list, LAST_NODE, FALSE)
-#define listShiftNode(list)						listRemoveNode(list, FIRST_NODE, FALSE)
-
-/* Remove node from list, returning the node's data (if not free'd) */
-DLLEXPORT void*	listRemoveNode(link_list_t*, list_node_t* /* NULL=first */, BOOL free_data);
-DLLEXPORT void* listRemoveTaggedNode(link_list_t*, list_node_tag_t, BOOL free_data);
-
-/* Remove multiple nodes from list, returning the number of nodes removed */
-DLLEXPORT long	listRemoveNodes(link_list_t*, list_node_t* /* NULL=first */, long count, BOOL free_data);
-
-/* Reverse the nodes in a list */
-DLLEXPORT void listReverse(link_list_t*);
-
-/* Return >= 0 (count of nodes) if list is valid, negative otherwise */
-DLLEXPORT long listVerify(link_list_t*);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/msg_queue.c b/xpdev/msg_queue.c
deleted file mode 100644
index 7a0a733..0000000
--- a/xpdev/msg_queue.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Uni or Bi-directional FIFO message queue */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* memset */
-
-#include "genwrap.h"	/* msclock() */
-#include "threadwrap.h"	/* pthread_self */
-#include "msg_queue.h"
-
-msg_queue_t* msgQueueInit(msg_queue_t* q, long flags)
-{
-	if(q==NULL) {
-		if((q=(msg_queue_t*)malloc(sizeof(msg_queue_t)))==NULL)
-			return(NULL);
-		flags |= MSG_QUEUE_MALLOC;
-	} 
-
-	memset(q,0,sizeof(msg_queue_t));
-
-	q->flags = flags;
-	q->refs = 1;
-	q->owner_thread_id = pthread_self();
-
-	if(q->flags&MSG_QUEUE_BIDIR)
-		listInit(&q->in,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	listInit(&q->out,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-
-	return(q);
-}
-
-BOOL msgQueueOwner(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(FALSE);
-
-	return q->owner_thread_id == pthread_self();
-}
-
-BOOL msgQueueFree(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(FALSE);
-
-	listFree(&q->in);
-	listFree(&q->out);
-
-	if(q->flags&MSG_QUEUE_MALLOC)
-		free(q);
-
-	return(TRUE);
-}
-
-long msgQueueAttach(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(-1);
-
-	q->refs++;
-
-	return(q->refs);
-}
-
-long msgQueueDetach(msg_queue_t* q)
-{
-	int refs;
-
-	if(q==NULL || q->refs<1)
-		return(-1);
-
-	if(msgQueueOwner(q))
-		q->flags |= MSG_QUEUE_ORPHAN;
-
-	if((refs=--q->refs)==0)
-		msgQueueFree(q);
-
-	return(refs);
-}
-
-void* msgQueueSetPrivateData(msg_queue_t* q, void* p)
-{
-	void* old;
-
-	if(q==NULL)
-		return(NULL);
-
-	old=q->private_data;
-	q->private_data=p;
-	return(old);
-}
-
-void* msgQueueGetPrivateData(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-	return(q->private_data);
-}
-
-static link_list_t* msgQueueReadList(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-
-	if((q->flags&MSG_QUEUE_BIDIR)
-		&& q->owner_thread_id == pthread_self())
-		return(&q->in);
-	return(&q->out);
-}
-
-static link_list_t* msgQueueWriteList(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-
-	if(!(q->flags&MSG_QUEUE_BIDIR)
-		|| q->owner_thread_id == pthread_self())
-		return(&q->out);
-	return(&q->in);
-}
-
-long msgQueueReadLevel(msg_queue_t* q)
-{
-	return listCountNodes(msgQueueReadList(q));
-}
-
-static BOOL list_wait(link_list_t* list, long timeout)
-{
-#if defined(LINK_LIST_THREADSAFE)
-	if(timeout<0)	/* infinite */
-		return listSemWait(list);
-	if(timeout==0)	/* poll */
-		return listSemTryWait(list);
-
-	return listSemTryWaitBlock(list,timeout);
-#else
-	clock_t	start;
-	long	count;
-	
-	start=msclock();
-	while((count=listCountNodes(list))==0) {
-		if(timeout==0)
-			break;
-		if(timeout>0 && msclock()-start > timeout)
-			break;
-		YIELD();
-	}
-	return(INT_TO_BOOL(count));
-#endif
-}
-
-BOOL msgQueueWait(msg_queue_t* q, long timeout)
-{
-	BOOL			result;
-	link_list_t*	list = msgQueueReadList(q);
-
-	if((result=list_wait(list,timeout))==TRUE)
-#if defined(LINK_LIST_THREADSAFE)
-		listSemPost(list)	/* Replace the semaphore we just cleared */
-#endif
-		;
-
-	return(result);
-}
-
-void* msgQueueRead(msg_queue_t* q, long timeout)
-{
-	link_list_t*	list = msgQueueReadList(q);
-
-	list_wait(list,timeout);
-
-	return listShiftNode(list);
-}
-
-void* msgQueuePeek(msg_queue_t* q, long timeout)
-{
-	link_list_t*	list = msgQueueReadList(q);
-
-	if(list_wait(list,timeout))
-#if defined(LINK_LIST_THREADSAFE)
-		listSemPost(list)	/* Replace the semaphore we just cleared */
-#endif
-		;
-
-	return  listNodeData(listFirstNode(list));
-}
-
-void* msgQueueFind(msg_queue_t* q, const void* data, size_t length)
-{
-	link_list_t*	list = msgQueueReadList(q);
-	list_node_t*	node;
-
-	if((node=listFindNode(list,data,length))==NULL)
-		return(NULL);
-	return listRemoveNode(list,node,/* Free Data? */FALSE);
-}
-
-list_node_t* msgQueueFirstNode(msg_queue_t* q)
-{
-	return listFirstNode(msgQueueReadList(q));
-}
-
-list_node_t* msgQueueLastNode(msg_queue_t* q)
-{
-	return listLastNode(msgQueueReadList(q));
-}
-
-long msgQueueWriteLevel(msg_queue_t* q)
-{
-	return listCountNodes(msgQueueWriteList(q));
-}
-
-BOOL msgQueueWrite(msg_queue_t* q, const void* data, size_t length)
-{
-	return listPushNodeData(msgQueueWriteList(q),data,length)!=NULL;
-}
-
diff --git a/xpdev/msg_queue.h b/xpdev/msg_queue.h
deleted file mode 100644
index 5df9af8..0000000
--- a/xpdev/msg_queue.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Uni or Bi-directional FIFO message queue */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _MSG_QUEUE_H
-#define _MSG_QUEUE_H
-
-#include "link_list.h"
-#include "threadwrap.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef struct {
-	char			name[128];			/* for named-queues */
-	link_list_t		in;
-	link_list_t		out;
-	pthread_t		owner_thread_id;	/* reads from in, writes to out */
-	long			refs;
-	unsigned long	flags;				/* private use flags */
-	void*			private_data;
-} msg_queue_t;
-
-#define MSG_QUEUE_MALLOC		(1<<0)	/* Queue allocated with malloc() */
-#define MSG_QUEUE_BIDIR			(1<<1)	/* Bi-directional message queue */
-#define MSG_QUEUE_ORPHAN		(1<<2)	/* Owner has detached */
-
-DLLEXPORT msg_queue_t*	msgQueueInit(msg_queue_t*, long flags);
-DLLEXPORT BOOL			msgQueueFree(msg_queue_t*);
-
-DLLEXPORT long			msgQueueAttach(msg_queue_t*);
-DLLEXPORT long			msgQueueDetach(msg_queue_t*);
-DLLEXPORT BOOL			msgQueueOwner(msg_queue_t*);
-
-/* Get/Set queue private data */
-DLLEXPORT void*			msgQueueSetPrivateData(msg_queue_t*, void*);
-DLLEXPORT void*			msgQueueGetPrivateData(msg_queue_t*);
-
-DLLEXPORT BOOL			msgQueueWait(msg_queue_t* q, long timeout);
-DLLEXPORT long			msgQueueReadLevel(msg_queue_t*);
-DLLEXPORT void*			msgQueueRead(msg_queue_t*, long timeout);
-DLLEXPORT void*			msgQueuePeek(msg_queue_t*, long timeout);
-DLLEXPORT void*			msgQueueFind(msg_queue_t*, const void*, size_t length);
-DLLEXPORT list_node_t*	msgQueueFirstNode(msg_queue_t*);
-DLLEXPORT list_node_t*	msgQueueLastNode(msg_queue_t*);
-#define			msgQueueNextNode(node)			listNextNode(node)
-#define			msgQueuePrevNode(node)			listPrevNode(node)
-#define			msgQueueNodeData(node)			listNodeData(node)
-
-DLLEXPORT long			msgQueueWriteLevel(msg_queue_t*);
-DLLEXPORT BOOL			msgQueueWrite(msg_queue_t*, const void*, size_t length);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/multisock.c b/xpdev/multisock.c
deleted file mode 100644
index bc4e2d2..0000000
--- a/xpdev/multisock.c
+++ /dev/null
@@ -1,642 +0,0 @@
-// Multi-socket versions ofthe socket API...
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "gen_defs.h"
-#include "sockwrap.h"
-#include "dirwrap.h"
-#include "multisock.h"
-#include "haproxy.h"
-#include <stdarg.h>
-
-struct xpms_set* xpms_create(unsigned int retries, unsigned int wait_secs,
-	int (*lprintf)(int level, const char *fmt, ...))
-{
-	struct xpms_set *ret=(struct xpms_set *)calloc(1, sizeof(struct xpms_set));
-
-	if(ret==NULL)
-		return ret;
-	ret->retries = retries;
-	ret->wait_secs = wait_secs;
-	ret->lprintf=lprintf;
-	return ret;
-}
-
-void xpms_destroy(struct xpms_set *xpms_set, void (*sock_destroy)(SOCKET, const void *), const void *cbdata)
-{
-	size_t		i;
-
-	if(!xpms_set)
-		return;
-	for(i=0; i<xpms_set->sock_count; i++) {
-		if(xpms_set->socks[i].sock != INVALID_SOCKET) {
-			if(xpms_set->lprintf!=NULL)
-				xpms_set->lprintf(LOG_INFO, "%04d %s closing socket %s port %d"
-						, xpms_set->socks[i].sock, xpms_set->socks[i].prot?xpms_set->socks[i].prot:"unknown"
-						, xpms_set->socks[i].address
-						, xpms_set->socks[i].port);
-			closesocket(xpms_set->socks[i].sock);
-			if(sock_destroy)
-				sock_destroy(xpms_set->socks[i].sock, cbdata);
-		}
-		xpms_set->socks[i].sock = INVALID_SOCKET;
-		FREE_AND_NULL(xpms_set->socks[i].address);
-		FREE_AND_NULL(xpms_set->socks[i].prot);
-	}
-	FREE_AND_NULL(xpms_set->socks);
-	free(xpms_set);
-}
-
-BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *addr, uint16_t port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	struct xpms_sockdef	*new_socks;
-    struct addrinfo		hints;
-    struct addrinfo		*res=NULL;
-    struct addrinfo		*cur;
-    unsigned int		added = 0;
-    int					ret;
-    char				port_str[6];
-	char				err[128];
-
-#ifndef _WIN32
-	struct addrinfo		dummy;
-	struct sockaddr_un	un_addr;
-
-	if(domain == AF_UNIX) {
-		memset(&dummy, 0, sizeof(dummy));
-		memset(&un_addr, 0, sizeof(un_addr));
-		dummy.ai_family = AF_UNIX;
-		dummy.ai_socktype = type;
-		dummy.ai_addr = (struct sockaddr *)&un_addr;
-		un_addr.sun_family=AF_UNIX;
-
-		if(strlen(addr) >= sizeof(un_addr.sun_path)) {
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_ERR, "!%s ERROR %s is too long for a portable AF_UNIX socket", prot, addr);
-			return FALSE;
-		}
-		strcpy(un_addr.sun_path,addr);
-#ifdef SUN_LEN
-		dummy.ai_addrlen = SUN_LEN(&un_addr);
-#else
-		dummy.ai_addrlen = offsetof(struct sockaddr_un, un_addr.sun_path) + strlen(addr) + 1;
-#endif
-		if(fexist(addr))
-			unlink(addr);
-		res = &dummy;
-	}
-#endif
-	if(res == NULL) {
-		memset(&hints, 0, sizeof(hints));
-		hints.ai_flags=AI_PASSIVE;
-		hints.ai_family=domain;
-		hints.ai_socktype=type;
-		hints.ai_protocol=protocol;
-		hints.ai_flags|=AI_NUMERICSERV;
-#ifdef AI_ADDRCONFIG
-		hints.ai_flags|=AI_ADDRCONFIG;
-#endif
-		sprintf(port_str, "%hu", port);
-		if((ret=getaddrinfo(addr, port_str, &hints, &res))!=0) {
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_CRIT, "!%s ERROR %d calling getaddrinfo() on %s", prot, ret, addr);
-			return FALSE;
-		}
-	}
-
-	for(cur=res; cur; cur=cur->ai_next) {
-		new_socks=(struct xpms_sockdef *)realloc(xpms_set->socks, sizeof(struct xpms_sockdef)*(xpms_set->sock_count+1));
-		if(new_socks==NULL) {
-			/* This may be a partial failure */
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_CRIT, "!%s ERROR out of memory adding to multisocket", prot);
-			break;
-		}
-		xpms_set->socks=new_socks;
-		xpms_set->socks[xpms_set->sock_count].address = strdup(addr);
-		xpms_set->socks[xpms_set->sock_count].cb_data = cbdata;
-		xpms_set->socks[xpms_set->sock_count].domain = cur->ai_family;	/* Address/Protocol Family */
-		xpms_set->socks[xpms_set->sock_count].type = cur->ai_socktype;
-		xpms_set->socks[xpms_set->sock_count].protocol = protocol;
-		xpms_set->socks[xpms_set->sock_count].port = port;
-		xpms_set->socks[xpms_set->sock_count].prot = strdup(prot);
-		xpms_set->socks[xpms_set->sock_count].sock = socket(cur->ai_family, cur->ai_socktype, protocol);
-		if(xpms_set->socks[xpms_set->sock_count].sock == INVALID_SOCKET) {
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-			continue;
-		}
-		if(sock_init)
-			sock_init(xpms_set->socks[xpms_set->sock_count].sock, cbdata);
-
-		if(bind_init) {
-			if(port < IPPORT_RESERVED && port > 0)
-				bind_init(FALSE);
-		}
-		if(retry_bind(xpms_set->socks[xpms_set->sock_count].sock, cur->ai_addr, cur->ai_addrlen, xpms_set->retries, xpms_set->wait_secs, prot, xpms_set->lprintf)==-1) {
-			closesocket(xpms_set->socks[xpms_set->sock_count].sock);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-			if(bind_init) {
-				if(port < IPPORT_RESERVED)
-					bind_init(TRUE);
-			}
-			continue;
-		}
-		if(bind_init) {
-			if(port < IPPORT_RESERVED && port > 0)
-				bind_init(TRUE);
-		}
-
-		if(type != SOCK_DGRAM) {
-			if(listen(xpms_set->socks[xpms_set->sock_count].sock, SOMAXCONN)==-1) {
-				if(xpms_set->lprintf)
-					xpms_set->lprintf(LOG_WARNING, "%04d !%s ERROR %d listening on port %d: %s"
-						,xpms_set->socks[xpms_set->sock_count].sock, prot, ERROR_VALUE
-						,port, socket_strerror(socket_errno,err,sizeof(err)));
-				closesocket(xpms_set->socks[xpms_set->sock_count].sock);
-				FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-				FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-				continue;
-			}
-		}
-
-		added++;
-		xpms_set->sock_count++;
-	}
-
-#ifndef _WIN32
-	if(res != &dummy)
-#endif
-		freeaddrinfo(res);
-	if(added)
-		return TRUE;
-	return FALSE;
-}
-
-BOOL xpms_add_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, str_list_t list, uint16_t default_port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	char	**iface;
-	char	*host;
-	char	*host_str;
-	char	*p, *p2;
-	BOOL	one_good=FALSE;
-	
-	for(iface=list; iface && *iface; iface++) {
-		WORD	port=default_port;
-
-		host=strdup(*iface);
-
-		host_str=host;
-		p = strrchr(host, ':');
-		/*
-		 * If there isn't a [, and the first and last colons aren't the same
-		 * it's assumed to be an IPv6 address
-		 */
-		if(strchr(host,'[')==NULL && p != NULL && strchr(host, ':') != p)
-			p=NULL;
-		if(host[0]=='[') {
-			host_str++;
-			p2=strrchr(host,']');
-			if(p2)
-				*p2=0;
-			if(p2 > p)
-				p=NULL;
-		}
-		if(p!=NULL) {
-			*(p++)=0;
-			sscanf(p, "%hu", &port);
-		}
-		if(xpms_set->lprintf)
-			xpms_set->lprintf(LOG_INFO, "%s listening on socket %s port %hu", prot, host_str, port);
-		if(xpms_add(xpms_set, domain, type, protocol, host_str, port, prot, sock_init, bind_init, cbdata))
-			one_good=TRUE;
-		free(host);
-	}
-	return one_good;
-}
-
-BOOL xpms_add_chararray_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *list, uint16_t default_port, const char *prot,
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	str_list_t slist;
-	BOOL ret;
-
-	slist = strListSplitCopy(NULL, list, ", \t\r\n");
-	if (slist == NULL)
-		return FALSE;
-	ret = xpms_add_list(xpms_set, domain, type, protocol, slist, default_port, prot,
-			sock_init, bind_init, cbdata);
-	strListFree(&slist);
-	return ret;
-}
-
-/* Convert a binary variable into a hex string - used for printing in the debug log */
-static void btox(char *hexstr, const char *srcbuf, size_t srcbuflen, size_t hexstrlen, int (*lprintf)(int level, const char *fmt, ...)) 
-{
-	size_t         i;
-
-	if (hexstrlen < srcbuflen*2+1) {
-		lprintf(LOG_WARNING,"btox hexstr buffer too small [%d] - not all data will be processed",hexstrlen);
-		srcbuflen = hexstrlen/2-1;
-	}
-
-	*hexstr = '\0';
-	for (i=0;i<srcbuflen;i++) {
-		sprintf(hexstr+strlen(hexstr),"%02x",(unsigned char)srcbuf[i]);
-	}
-}
-
-static BOOL read_socket(SOCKET sock, char *buffer, size_t len, int (*lprintf)(int level, const char *fmt, ...))
-{
-	size_t            i;
-	int            rd;
-	unsigned char           ch;
-	char           err[128];
-
-	for (i=0;i<len;i++) {
-		if (socket_readable(sock, 1000)) {
-			rd = recv(sock,&ch,1,0);
-			if (rd == 0) {
-				lprintf(LOG_WARNING,"%04d multisock read_socket() - remote closed the connection",sock);
-				return FALSE;
-
-			} else if (rd == 1) {
-				buffer[i] = ch;
-
-			} else {
-				lprintf(LOG_WARNING,"%04d multisock read_socket() - failed to read from socket. Got [%d] with error [%s]",sock,rd,socket_strerror(socket_errno,err,sizeof(err)));
-				return FALSE;
-			}
-
-		} else {
-			lprintf(LOG_WARNING,"%04d multisock read_socket() - No data?",sock);
-			return FALSE;
-
-		}
-	}
-
-	return TRUE;
-}
-
-static BOOL read_socket_line(SOCKET sock, char *buffer, size_t buflen, int (*lprintf)(int level, const char *fmt, ...))
-{
-	size_t         i;
-
-	for (i = 0; i < buflen - 1; i++) {
-		if (read_socket(sock, &buffer[i], 1, lprintf)) {
-			switch(buffer[i]) {
-				case 0:
-					return FALSE;
-				case '\n':
-					buffer[i+1] = 0;
-					return TRUE;
-			}
-
-		} else {
-			buffer[i] = 0;
-			return FALSE;
-		}
-	}
-
-	buffer[i] = 0;
-	return FALSE;
-}
-
-SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, 
-	socklen_t * addrlen, unsigned int timeout, uint32_t flags, const void **cb_data)
-{
-#ifdef PREFER_POLL
-	struct pollfd *fds;
-	int poll_timeout;
-	nfds_t scnt = 0;
-#else
-	fd_set         read_fs;
-	struct timeval tv;
-	struct timeval *tvp;
-	SOCKET         max_sock=0;
-#endif
-	size_t         i;
-	SOCKET         ret;
-	char           hapstr[128];
-	char           haphex[256];
-	char           *p, *tok;
-	long           l;
-	void           *vp;
-
-	if (xpms_set->sock_count < 1)
-		return INVALID_SOCKET;
-
-#ifdef PREFER_POLL
-	fds = calloc(xpms_set->sock_count, sizeof(*fds));
-	if (fds == NULL)
-		return INVALID_SOCKET;
-	for (i = 0; i < xpms_set->sock_count; i++) {
-		if (xpms_set->socks[i].sock == INVALID_SOCKET)
-			continue;
-		fds[scnt].fd = xpms_set->socks[i].sock;
-		fds[scnt].events = POLLIN;
-		scnt++;
-	}
-
-	if (timeout == XPMS_FOREVER)
-		poll_timeout = -1;
-	else if (timeout > INT_MAX)
-		poll_timeout = INT_MAX;
-	else
-		poll_timeout = timeout;
-
-	switch (poll(fds, scnt, poll_timeout)) {
-		case 0:
-			free(fds);
-			return INVALID_SOCKET;
-		case -1:
-			free(fds);
-			return SOCKET_ERROR;
-		default:
-			scnt = 0;
-			for(i=0; i<xpms_set->sock_count; i++) {
-				if(xpms_set->socks[i].sock == INVALID_SOCKET)
-					continue;
-				if (fds[scnt].revents & ~(POLLIN)) {
-					scnt++;
-					closesocket(xpms_set->socks[i].sock);
-					xpms_set->lprintf(LOG_ERR, "%04d * Listening socket went bad", xpms_set->socks[i].sock);
-					xpms_set->socks[i].sock = INVALID_SOCKET;
-					continue;
-				}
-				if (fds[scnt++].revents & POLLIN) {
-#else
-	FD_ZERO(&read_fs);
-	for(i=0; i<xpms_set->sock_count; i++) {
-		if(xpms_set->socks[i].sock == INVALID_SOCKET)
-			continue;
-		FD_SET(xpms_set->socks[i].sock, &read_fs);
-		if(xpms_set->socks[i].sock >= max_sock)
-			max_sock=xpms_set->socks[i].sock+1;
-	}
-
-	if(timeout==XPMS_FOREVER)
-		tvp=NULL;
-	else {
-		tv.tv_sec=timeout/1000;
-		tv.tv_usec=(timeout%1000)*1000;
-		tvp=&tv;
-	}
-	switch(select(max_sock, &read_fs, NULL, NULL, tvp)) {
-		case 0:
-			return INVALID_SOCKET;
-		case -1:
-			return SOCKET_ERROR;
-		default:
-			for(i=0; i<xpms_set->sock_count; i++) {
-				if(xpms_set->socks[i].sock == INVALID_SOCKET)
-					continue;
-				if(FD_ISSET(xpms_set->socks[i].sock, &read_fs)) {
-#endif
-					if(cb_data)
-						*cb_data=xpms_set->socks[i].cb_data;
-					ret = accept(xpms_set->socks[i].sock, &addr->addr, addrlen);
-					if (ret == INVALID_SOCKET) {
-						goto error_return;
-					}
-
-					// Set host_ip from haproxy protocol, if its used
-					// http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
-					if (flags & XPMS_ACCEPT_FLAG_HAPROXY) {
-						memset(addr, 0, sizeof(*addr));
-						xpms_set->lprintf(LOG_DEBUG,"%04d Working out client address from HAProxy PROTO",ret);
-
-						// Read the first line
-						// In normal proxy usage, we shouldnt fail here - but if there is a badly implemented HAPROXY PROTO
-						// or the user attempts to connect direct to the BBS (not via the proxy) there could be anything 
-						// received (IAC sequences, SSH setup, or just badness)
-						if (! read_socket_line(ret, hapstr, 108, xpms_set->lprintf)) {
-							btox(haphex,hapstr,strlen(hapstr),sizeof(haphex), xpms_set->lprintf);
-							xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for version - failed [%s]",ret,haphex);
-							closesocket(ret);
-							goto error_return;
-						}
-
-						btox(haphex,hapstr,strlen(hapstr)>16 ? 16 : strlen(hapstr),sizeof(haphex), xpms_set->lprintf);
-						xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY looking for version - 1st %d bytes received [%s] of (%d)",ret,strlen(hapstr)>16 ? 16 : strlen(hapstr),haphex,strlen(hapstr));
-
-						// v1 of the protocol uses plain text, starting with "PROXY "
-						// eg: "PROXY TCP4 255.255.255.255 255.255.255.255 65535 65535\r\n"
-						if (strncmp((char *)hapstr,"PROXY ",6) == 0) {
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY PROTO v1",ret);
-
-							tok = &hapstr[6];
-							// IPV4
-							if (strncmp(tok, "TCP4 ", 5) == 0) {
-								tok += 5;
-								xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Proto TCP4",ret,hapstr);
-								addr->addr.sa_family = AF_INET;
-								if (addrlen)
-									*addrlen = sizeof(struct sockaddr_in);
-								vp = &addr->in.sin_addr;
-							// IPV6
-							} else if (strncmp(tok,"TCP6 ",5) == 0) {
-								tok += 5;
-								xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Proto TCP6",ret,hapstr);
-								addr->addr.sa_family = AF_INET6;
-								if (addrlen)
-									*addrlen = sizeof(struct sockaddr_in6);
-								vp = &addr->in6.sin6_addr;
-							// Unknown?
-							} else {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unknown Protocol",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-
-							// Look for the space between the next IP
-							p = strchr(tok, ' ');
-							if (p == NULL) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Couldnt find IP address",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							*p = 0;
-							if (inet_pton(addr->addr.sa_family, tok, vp) != 1) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unable to parse %s address [%s]",addr->addr.sa_family == AF_INET ? "IPv4" : "IPv6", tok);
-								closesocket(ret);
-								goto error_return;
-							}
-							tok = p + 1;
-							// Look for the space before the port number
-							p = strchr(tok, ' ');
-							if (p == NULL) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Couldnt find port",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							tok = p + 1;
-							l = strtol(tok, NULL, 10);
-							if (l <= 0 || l > UINT16_MAX) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Source port out of range",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							switch(addr->addr.sa_family) {
-								case AF_INET:
-									addr->in.sin_port = htons((unsigned short)l);
-									break;
-								case AF_INET6:
-									addr->in6.sin6_port = htons((unsigned short)l);
-									break;
-							}
-
-						// v2 is in binary with the first 12 bytes "\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A"
-						// we'll compare the 1st 6 bytes here, since we are determining if we are v1 or v2.
-						} else if (strcmp((char *)hapstr,"\r\n") == 0) {
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY PROTO v2",ret);
-
-							// OK, just for sanity, our next 10 chars should be v2...
-							memset(hapstr, 0, 10);
-							if (read_socket(ret,hapstr,10,xpms_set->lprintf)==FALSE || memcmp(hapstr, "\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A", 10) != 0) {
-								btox(haphex,hapstr,10,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - incomplete v2 setup [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-
-							// Command and Version
-							if (read_socket(ret,hapstr,1,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,1,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for Verson/Command - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Version [%x]",ret,(hapstr[0]>>4)&0x0f); //Should be 2
-
-							// Check the version
-							switch((hapstr[0]>>4)&0x0f) {
-								case 0x02:
-									break;
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY invalid version [%x]",ret,(hapstr[0]>>4)&0x0f);
-									closesocket(ret);
-									goto error_return;
-							}
-
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Command [%x]",ret,hapstr[0]&0x0f); //0=Local/1=Proxy
-
-							// Check the command
-							switch(hapstr[0]&0x0f) {
-								case HAPROXY_LOCAL:
-									xpms_set->lprintf(LOG_INFO,"%04d * HAPROXY health check - we are alive!",ret);
-									closesocket(ret);
-									goto error_return;
-								case HAPROXY_PROXY:
-									break;
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY invalid command [%x]",ret,hapstr[0]&0x0f);
-									closesocket(ret);
-									goto error_return;
-							}
-
-							// Protocol and Family
-							if (read_socket(ret,hapstr,1,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,1,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for Protocol/Family - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Protocol [%x]",ret,hapstr[0]&0x0f); //0=Unspec/1=AF_INET/2=AF_INET6/3=AF_UNIX
-							l = (hapstr[0]>>4)&0x0f;
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Family [%x]",ret,l); //0=UNSPEC/1=STREAM/2=DGRAM
-
-							// Address Length - 2 bytes
-							if (read_socket(ret,hapstr,2,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,2,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for address length - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							i = ntohs(*(uint16_t*)hapstr);
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Address Length [%d]",ret,i);
-
-							switch (l) {
-								// IPv4 - AF_INET
-								case HAPROXY_AFINET:
-									if (i != 12) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - IPv4 address length is incorrect",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									addr->in.sin_family = AF_INET;
-									if (read_socket(ret, hapstr, i, xpms_set->lprintf)==FALSE) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for IPv4 address - failed",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									memcpy(&addr->in.sin_addr.s_addr, hapstr, 4);
-									memcpy(&addr->in.sin_port, &hapstr[8], 2);
-									if (addrlen)
-										*addrlen = sizeof(struct sockaddr_in);
-
-									break;
-
-								// IPv6 - AF_INET6
-								case HAPROXY_AFINET6:
-									if (i != 36) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - IPv6 address length is incorrect.",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									addr->in6.sin6_family = AF_INET6;
-									if (read_socket(ret,hapstr,i,xpms_set->lprintf)==FALSE) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for IPv6 address - failed",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									memcpy(&addr->in6.sin6_addr.s6_addr, hapstr, 16);
-									memcpy(&addr->in6.sin6_port, &hapstr[32], 2);
-									if (addrlen)
-										*addrlen = sizeof(struct sockaddr_in6);
-
-									break;
-
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unknown Family [%x]",ret,l);
-									closesocket(ret);
-									goto error_return;
-							}
-
-						} else {
-							xpms_set->lprintf(LOG_ERR,"%04d Unknown HAProxy Initialisation - is HAProxy used?",ret);
-							closesocket(ret);
-							goto error_return;
-						}
-
-						hapstr[0] = 0;
-						inet_addrtop(addr, hapstr, sizeof(hapstr));
-						xpms_set->lprintf(LOG_INFO,"%04d * HAPROXY Source [%s]",ret,hapstr);
-
-#ifdef PREFER_POLL
-						free(fds);
-#endif
-						return ret;
-					} else {
-#ifdef PREFER_POLL
-						free(fds);
-#endif
-						return ret;
-					}
-				}
-			}
-	}
-
-error_return:
-#ifdef PREFER_POLL
-	free(fds);
-#endif
-	return INVALID_SOCKET;
-}
diff --git a/xpdev/multisock.h b/xpdev/multisock.h
deleted file mode 100644
index cc7f1c2..0000000
--- a/xpdev/multisock.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef MULTISOCK_H
-#define MULTISOCK_H
-
-#include <limits.h>
-#include "str_list.h"
-#include "wrapdll.h"
-
-struct xpms_sockdef
-{
-	const void* cb_data;
-	int         domain;
-	int         type;
-	int         protocol;
-	SOCKET      sock;
-	char*       address;
-	uint16_t    port;
-	char*       prot;
-};
-
-struct xpms_set {
-	struct xpms_sockdef* socks;
-	int                (*lprintf)(int level, const char *fmt, ...);
-	size_t               sock_count;
-	unsigned int         retries;
-	unsigned int         wait_secs;
-};
-
-#define XPMS_FOREVER	UINT_MAX
-#define XPMS_FLAGS_NONE 0
-#define XPMS_ACCEPT_FLAG_HAPROXY	(1<<0)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DLLEXPORT struct xpms_set* xpms_create(unsigned int retries, unsigned int wait_secs,
-	int (*lprintf)(int level, const char *fmt, ...));
-DLLEXPORT void xpms_destroy(struct xpms_set *xpms_set, void (*sock_destroy)(SOCKET, const void *), const void *cbdata);
-DLLEXPORT BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *addr, uint16_t port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT BOOL xpms_add_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, str_list_t list, uint16_t default_port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT BOOL xpms_add_chararray_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *list, uint16_t default_port, const char *prot,
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT SOCKET xpms_accept(struct xpms_set *, union xp_sockaddr * addr, 
-	socklen_t * addrlen, unsigned int timeout, uint32_t flags, const void **cb_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/netwrap.c b/xpdev/netwrap.c
deleted file mode 100644
index 87a4ce3..0000000
--- a/xpdev/netwrap.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* netwrap.c */
-
-/* Network related wrapper functions */
-
-/* $Id: netwrap.c,v 1.8 2019/07/24 04:21:42 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "sockwrap.h"
-#include "genwrap.h"	/* truncsp */
-#include "netwrap.h"	/* verify prototypes */
-
-#include <stdlib.h>		/* malloc() */
-
-#if defined(_WIN32)
-	#include <iphlpapi.h>	/* GetNetworkParams */
-#endif
-
-str_list_t getNameServerList(void)
-{
-#ifdef __unix__	/* Look up DNS server address */
-	FILE*	fp;
-	char*	p;
-	char	str[128];
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	if((fp=fopen("/etc/resolv.conf","r"))!=NULL) {
-		while(!feof(fp)) {
-			if(fgets(str,sizeof(str),fp)==NULL)
-				break;
-			truncsp(str);
-			p=str;
-			SKIP_WHITESPACE(p);
-			if(strnicmp(p,"nameserver",10)!=0) /* no match */
-				continue;
-			FIND_WHITESPACE(p);	/* skip "nameserver" */
-			SKIP_WHITESPACE(p);	/* skip more white-space */
-			strListPush(&list,p);
-		}
-		fclose(fp);
-	}
-	return(list);
-
-#elif defined(_WIN32)
-	FIXED_INFO* FixedInfo=NULL;
-	ULONG    	FixedInfoLen=0;
-	IP_ADDR_STRING* ip;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	if(GetNetworkParams(FixedInfo,&FixedInfoLen) == ERROR_BUFFER_OVERFLOW) {
-        FixedInfo=(FIXED_INFO*)malloc(FixedInfoLen);
-		if(GetNetworkParams(FixedInfo,&FixedInfoLen) == ERROR_SUCCESS) {
-			ip=&FixedInfo->DnsServerList;
-			for(; ip!=NULL; ip=ip->Next)
-				strListPush(&list,ip->IpAddress.String);
-		}
-        if(FixedInfo!=NULL)
-            free(FixedInfo);
-    }
-	return(list);
-#else
-	#error "Need a get_nameserver() implementation for this platform"
-#endif
-}
-
-const char* getHostNameByAddr(const char* str)
-{
-	HOSTENT*	h;
-	uint32_t	ip;
-
-#ifdef _WIN32
-	WSADATA wsaData;
-	WSAStartup(MAKEWORD(2, 2), &wsaData);
-#endif
-	if(str==NULL)
-		return NULL;
-	if((ip=inet_addr(str)) == INADDR_NONE)
-		return str;
-	if((h=gethostbyaddr((char *)&ip,sizeof(ip),AF_INET))==NULL)
-		return NULL;
-
-#ifdef _WIN32
-	WSACleanup();
-#endif
-
-	return h->h_name;
-}
-
-/* In case we want to DLL-export getNameServerList in the future */
-void freeNameServerList(str_list_t list)
-{
-	strListFree(&list);
-}
-
-#if NETWRAP_TEST
-int main(int argc, char** argv)
-{
-	size_t		i;
-	str_list_t	list;
-
-	if((list=getNameServerList())!=NULL) {
-		for(i=0;list[i]!=NULL;i++)
-			printf("%s\n",list[i]);
-		freeNameServerList(list);
-	}
-
-	if(argc>1)
-		printf("%s\n", getHostNameByAddr(argv[1]));
-	return 0;
-}
-#endif
-
diff --git a/xpdev/netwrap.h b/xpdev/netwrap.h
deleted file mode 100644
index d8fc18f..0000000
--- a/xpdev/netwrap.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Network related wrapper functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _NETWRAP_H
-#define _NETWRAP_H
-
-#include <stddef.h>		/* size_t */
-#include "str_list.h"	/* string list functions and types */
-#include "wrapdll.h"
-
-#define IPv4_LOCALHOST	0x7f000001U	/* 127.0.0.1 */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-DLLEXPORT const char* 	getHostNameByAddr(const char*);
-DLLEXPORT str_list_t	getNameServerList(void);
-DLLEXPORT void			freeNameServerList(str_list_t);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/petdefs.h b/xpdev/petdefs.h
deleted file mode 100644
index bdf83ab..0000000
--- a/xpdev/petdefs.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* $Id: petdefs.h,v 1.4 2019/07/09 23:54:43 rswindell Exp $ */
-
-/* Commodore/PET definitions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-#ifndef _PETDEFS_H_
-#define _PETDEFS_H_
-
-enum petscii_char {
-	/* Colors */
-	PETSCII_BLACK		= 144,
-	PETSCII_WHITE		= 5,
-	PETSCII_RED			= 28,
-	PETSCII_GREEN		= 30,
-	PETSCII_BLUE		= 31,
-	PETSCII_ORANGE		= 129,		// Dark purple in 80 column mode
-	PETSCII_BROWN		= 149,		// Dark yellow in 80 column mode
-	PETSCII_YELLOW		= 158,
-	PETSCII_CYAN		= 159,		// Light cyan in 80 column mode
-	PETSCII_LIGHTRED 	= 150,
-	PETSCII_DARKGRAY	= 151,		// Dark cyan in 80 column mode
-	PETSCII_MEDIUMGRAY	= 152,
-	PETSCII_LIGHTGREEN	= 153,
-	PETSCII_LIGHTBLUE	= 154,
-	PETSCII_LIGHTGRAY	= 155,
-	PETSCII_PURPLE		= 156,
-	/* Char-set */
-	PETSCII_UPPERLOWER	= 14,
-	PETSCII_UPPERGRFX	= 142,
-	/* Attributes */
-	PETSCII_FLASH_ON	= 15,
-	PETSCII_FLASH_OFF	= 143,
-	PETSCII_REVERSE_ON	= 18,
-	PETSCII_REVERSE_OFF	= 146,
-	/* Cursor movement */
-	PETSCII_UP			= 145,
-	PETSCII_DOWN		= 17,
-	PETSCII_LEFT		= 157,
-	PETSCII_RIGHT		= 29,
-	PETSCII_HOME		= 19,
-	PETSCII_CLEAR		= 147,
-	PETSCII_INSERT		= 148,
-	PETSCII_DELETE		= 20,
-	PETSCII_CRLF		= 141,
-	/* Symbols (which don't align with ASCII) */
-	PETSCII_BRITPOUND	= 92,
-	/* Graphic chars */
-	PETSCII_UPARROW		= 0x5E,
-	PETSCII_LEFTARROW	= 0x5f,
-	PETSCII_LIGHTHASH	= 0xA6,
-	PETSCII_MEDIUMHASH	= 0xDE,
-	PETSCII_HEAVYHASH	= 0xA9,
-	PETSCII_SOLID		= 0xA0,	// Actually inversed solid (empty)
-	PETSCII_LEFTHALF	= 0xA1,
-	PETSCII_RIGHTHALF	= 0xB6,	// Not quite a full half
-	PETSCII_TOPHALF		= 0xB8,	// Not quite a full half
-	PETSCII_BOTTOMHALF	= 0xA2,
-	PETSCII_CHECKMARK	= 0xBA,
-	PETSCII_CROSS		= 0xDB,
-	PETSCII_HORZLINE	= 0xC0,
-	PETSCII_VERTLINE	= 0xDD,
-	PETSCII_LWRRHTBOX	= 0xAC,
-	PETSCII_LWRLFTBOX	= 0xBB,
-	PETSCII_UPRRHTBOX	= 0xBC,
-	PETSCII_UPRLFTBOX	= 0xBE,
-	PETSCII_CHECKERBRD	= 0xBF,
-	/* Replacement chars (missing ASCII chars) */
-	PETSCII_BACKSLASH	= '/',	// the 109 graphics char is an 'M' in shifted/text mode :-(
-	PETSCII_BACKTICK	= 0xAD,	// a graphics char actually
-	PETSCII_TILDE		= 0xA8,	// a graphics char actually
-	PETSCII_UNDERSCORE	= 0xA4,	// a graphics char actually
-};
-
-#endif /* Don't add anything after this line */
diff --git a/xpdev/sdlfuncs.c b/xpdev/sdlfuncs.c
deleted file mode 100644
index 3eab157..0000000
--- a/xpdev/sdlfuncs.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#include <stdlib.h>	/* getenv()/exit()/atexit() */
-#include <stdio.h>	/* NULL */
-
-#include <SDL.h>
-#include "gen_defs.h"
-#include "threadwrap.h"
-#include "sdlfuncs.h"
-
-struct sdlfuncs xpbeep_sdl;
-
-/* Make xp_dl do static linking */
-#ifdef STATIC_SDL
-#define STATIC_LINK
-#endif
-#include "xp_dl.h"
-
-static int sdl_funcs_loaded=0;
-static int sdl_initialized=0;
-static int sdl_audio_initialized=0;
-
-int xpbeep_load_sdl_funcs(struct sdlfuncs *sdlf)
-{
-	dll_handle	sdl_dll;
-	const char *libnames[]={"SDL", "SDL-1.2", "SDL-1.1", NULL};
-
-	putenv("SDL_VIDEO_ALLOW_SCREENSAVER=1");
-	sdlf->gotfuncs=0;
-	if((sdl_dll=xp_dlopen(libnames,RTLD_LAZY|RTLD_GLOBAL,SDL_PATCHLEVEL))==NULL)
-		return(-1);
-
-	if((sdlf->Init=xp_dlsym(sdl_dll, SDL_Init))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->Quit=xp_dlsym(sdl_dll, SDL_Quit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SemWait=xp_dlsym(sdl_dll, SDL_SemWait))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SemPost=xp_dlsym(sdl_dll, SDL_SemPost))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SDL_CreateSemaphore=xp_dlsym(sdl_dll, SDL_CreateSemaphore))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SDL_DestroySemaphore=xp_dlsym(sdl_dll, SDL_DestroySemaphore))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->InitSubSystem=xp_dlsym(sdl_dll, SDL_InitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QuitSubSystem=xp_dlsym(sdl_dll, SDL_QuitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->OpenAudio=xp_dlsym(sdl_dll, SDL_OpenAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CloseAudio=xp_dlsym(sdl_dll, SDL_CloseAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->PauseAudio=xp_dlsym(sdl_dll, SDL_PauseAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->LockAudio=xp_dlsym(sdl_dll, SDL_LockAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UnlockAudio=xp_dlsym(sdl_dll, SDL_UnlockAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetAudioStatus=xp_dlsym(sdl_dll, SDL_GetAudioStatus))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	sdlf->gotfuncs=1;
-	sdl_funcs_loaded=1;
-	return(0);
-}
-
-int init_sdl_audio(void)
-{
-	if (!sdl_funcs_loaded) {
-		if (xpbeep_load_sdl_funcs(&xpbeep_sdl) != 0)
-			return -1;
-	}
-	if(!sdl_initialized) {
-		if(xpbeep_sdl.Init(0)==0)
-			sdl_initialized=TRUE;
-		else
-			return(-1);
-	}
-	if(sdl_audio_initialized)
-		return(0);
-	if(xpbeep_sdl.InitSubSystem(SDL_INIT_AUDIO)==0) {
-		sdl_audio_initialized=TRUE;
-		return(0);
-	}
-	return(-1);
-}
diff --git a/xpdev/sdlfuncs.h b/xpdev/sdlfuncs.h
deleted file mode 100644
index f2eaf34..0000000
--- a/xpdev/sdlfuncs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _SDLFUNCS_H_
-#define _SDLFUNCS_H_
-
-#include "SDL.h"
-#include "SDL_audio.h"
-#include "SDL_thread.h"
-#include "SDL_syswm.h"
-
-struct sdlfuncs {
-	int	(*Init)	(Uint32 flags);
-	void	(*Quit)	(void);
-	int	(*SemWait)	(SDL_sem *sem);
-	int	(*SemPost)	(SDL_sem *sem);
-	SDL_sem *(*SDL_CreateSemaphore)	(Uint32 initial_value);
-	void (*SDL_DestroySemaphore)	(SDL_sem *semaphore);
-	int (*InitSubSystem)(Uint32 flags);
-	void (*QuitSubSystem)(Uint32 flags);
-	int (*OpenAudio)(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);
-	void (*CloseAudio)(void);
-	void (*LockAudio)(void);
-	void (*UnlockAudio)(void);
-	void (*PauseAudio)(int pause_on);
-	SDL_AudioStatus (*GetAudioStatus)(void);
-	int	gotfuncs;
-};
-
-extern struct sdlfuncs	xpbeep_sdl;
-extern SDL_sem *sdl_exit_sem;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int load_sdl_funcs(struct sdlfuncs *sdlf);
-int init_sdl_audio(void);
-int SDL_main_env(int argc, char *argv[], char **env);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/semfile.c b/xpdev/semfile.c
deleted file mode 100644
index 5b17cb9..0000000
--- a/xpdev/semfile.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* semfile.c */
-
-/* $Id: semfile.c,v 1.8 2019/07/24 04:11:23 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>
-
-#include "semfile.h"
-#include "filewrap.h"
-#include "dirwrap.h"
-#include "genwrap.h"
-
-#if !defined(NO_SOCKET_SUPPORT)
-	#include "sockwrap.h"
-#endif
-
-/****************************************************************************/
-/* This function compares a single semaphore file's							*/
-/* date/time stamp (if the file exists) against the passed time stamp (t)	*/
-/* updating the time stamp to the latest dated semaphore file and returning	*/
-/* TRUE if any where newer than the initial value.							*/
-/****************************************************************************/
-BOOL semfile_check(time_t* t, const char* fname)
-{
-	time_t	ft;
-
-	if(*t==0)	/* uninitialized */
-		*t=time(NULL);
-
-	if((ft=fdate(fname))==-1 || ft<=*t)
-		return(FALSE);
-
-	*t=ft;
-	return(TRUE);
-}
-
-/****************************************************************************/
-/* This function goes through a list of semaphore files, comparing the file	*/
-/* date/time stamp (if the file exists) against the passed time stamp (t)	*/
-/* updating the time stamp to the latest dated semaphore file and returning	*/
-/* a pointer to the filename if any where newer than the initial timestamp.	*/
-/****************************************************************************/
-char* semfile_list_check(time_t* t, str_list_t filelist)
-{
-	char*	signaled=NULL;
-	size_t		i;
-
-	for(i=0;filelist[i]!=NULL;i++)
-		if(semfile_check(t, filelist[i]))
-			signaled = filelist[i];
-
-	return(signaled);
-}
-
-str_list_t semfile_list_init(const char* parent, 
-							   const char* action, const char* service)
-{
-	char	path[MAX_PATH+1];
-	char	hostname[128];
-	char*	p;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	SAFEPRINTF2(path,"%s%s",parent,action);
-	strListPush(&list,path);
-	SAFEPRINTF3(path,"%s%s.%s",parent,action,service);
-	strListPush(&list,path);
-#if !defined(NO_SOCKET_SUPPORT)
-	if(gethostname(hostname,sizeof(hostname))==0) {
-		SAFEPRINTF3(path,"%s%s.%s",parent,action,hostname);
-		strListPush(&list,path);
-		SAFEPRINTF4(path,"%s%s.%s.%s",parent,action,hostname,service);
-		strListPush(&list,path);
-		if((p=strchr(hostname,'.'))!=NULL) {
-			*p=0;
-			SAFEPRINTF3(path,"%s%s.%s",parent,action,hostname);
-			strListPush(&list,path);
-			SAFEPRINTF4(path,"%s%s.%s.%s",parent,action,hostname,service);
-			strListPush(&list,path);
-		}
-	}
-#endif
-	return(list);
-}
-
-void semfile_list_add(str_list_t* filelist, const char* path)
-{
-	strListPush(filelist, path);
-}
-
-void semfile_list_free(str_list_t* filelist)
-{
-	strListFree(filelist);
-}
-
-BOOL semfile_signal(const char* fname, const char* text)
-{
-	int file;
-	struct utimbuf ut;
-#if !defined(NO_SOCKET_SUPPORT)
-	char hostname[128];
-
-	if(text==NULL && gethostname(hostname,sizeof(hostname))==0)
-		text=hostname;
-#endif
-	if((file=open(fname,O_CREAT|O_WRONLY, DEFFILEMODE))<0)	/* use sopen instead? */
-		return(FALSE);
-	if(text!=NULL)
-		write(file,text,strlen(text));
-	close(file);
-
-	/* update the time stamp */
-	ut.actime = ut.modtime = time(NULL);
-	return utime(fname, &ut)==0;
-}
diff --git a/xpdev/semfile.h b/xpdev/semfile.h
deleted file mode 100644
index 1b73d1b..0000000
--- a/xpdev/semfile.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Semaphore file functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SEMFILE_H
-#define _SEMFILE_H
-
-#include <time.h>		/* time_t */
-#include "str_list.h"	/* string list functions and types */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* semfile.c */
-DLLEXPORT BOOL		semfile_signal(const char* fname, const char* text);
-DLLEXPORT BOOL		semfile_check(time_t* t, const char* fname);
-DLLEXPORT char*		semfile_list_check(time_t* t, str_list_t filelist);
-DLLEXPORT str_list_t	
-					semfile_list_init(const char* parent, const char* action
-												,const char* service);
-DLLEXPORT void		semfile_list_add(str_list_t* filelist, const char* fname);
-DLLEXPORT void		semfile_list_free(str_list_t* filelist);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/semwrap.c b/xpdev/semwrap.c
deleted file mode 100644
index daad538..0000000
--- a/xpdev/semwrap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* semwrap.c */
-
-/* Semaphore-related cross-platform development wrappers */
-
-/* $Id: semwrap.c,v 1.15 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <errno.h>
-#include "semwrap.h"
-
-#if defined(__unix__)
-
-#include <sys/time.h>	/* timespec */
-#include <stdlib.h>	/* NULL */
-
-int
-sem_trywait_block(sem_t *sem, unsigned long timeout)
-{
-	int	retval;
-	struct timespec abstime;
-	struct timeval currtime;
-	
-	gettimeofday(&currtime,NULL);
-	abstime.tv_sec=currtime.tv_sec + (currtime.tv_usec/1000 + timeout)/1000;
-	abstime.tv_nsec=(currtime.tv_usec*1000 + timeout*1000000)%1000000000;
-
-	retval=sem_timedwait(sem, &abstime);
-	if(retval && errno==ETIMEDOUT)
-		errno=EAGAIN;
-	return retval;
-}
-
-#elif defined(_WIN32)
-
-#include <limits.h>		/* INT_MAX */
-
-#if defined(__BORLANDC__)
-	#pragma argsused
-#endif
-int sem_init(sem_t* psem, int pshared, unsigned int value)
-{
-
-	if((*(psem)=CreateSemaphore(NULL,value,INT_MAX,NULL))==NULL)
-		return -1;
-		
-	return 0;
-}
-
-int sem_trywait_block(sem_t* psem, unsigned long timeout)
-{
-	if(WaitForSingleObject(*(psem),timeout)!=WAIT_OBJECT_0) {
-		errno=EAGAIN;
-		return -1;
-	}
-
-	return 0;
-}
-
-int sem_post(sem_t* psem)
-{
-	if(ReleaseSemaphore(*(psem),1,NULL)==TRUE)
-		return 0;
-
-	return -1;
-}
-
-int sem_getvalue(sem_t* psem, int* vp)
-{
-#if 0		/* This only works on 9x *sniff* */
-	ReleaseSemaphore(*(psem),0,(LPLONG)vp);
-	return 0;
-#else
-	/* Note, this should REALLY be in a critical section... */
-	int	retval=0;
-
-	if(WaitForSingleObject(*(psem),0)!=WAIT_OBJECT_0)
-		*vp=0;
-	else {
-		if(ReleaseSemaphore(*(psem),1,(LPLONG)vp))
-			(*vp)++;
-		else
-			retval=-1;
-	}
-	return(retval);
-#endif
-}
-
-int sem_destroy(sem_t* psem)
-{
-	if(CloseHandle(*(psem))==TRUE)
-		return 0;
-	return -1;
-}
-
-#endif /* _WIN32 */
diff --git a/xpdev/semwrap.h b/xpdev/semwrap.h
deleted file mode 100644
index 17cae49..0000000
--- a/xpdev/semwrap.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Semaphore-related cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SEMWRAP_H
-#define _SEMWRAP_H
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__unix__)
-	#if defined(USE_XP_SEMAPHORES)
-		#include "xpsem.h"
-		#define 	sem_init(x, y, z)	xp_sem_init(x, y, z)
-		#define 	sem_destroy(x)		xp_sem_destroy(x)
-		#define 	sem_close(x)		xp_sem_close(x)
-		#define 	sem_unlink(x)		xp_sem_unlink(x)
-		#define 	sem_wait(x)			xp_sem_wait(x)
-		#define 	sem_trywait(x)		xp_sem_trywait(x)
-		#define 	sem_post(x)			xp_sem_post(x)
-		#define 	sem_getvalue(x,y)		xp_sem_getvalue(x,y)
-		#define		sem_timedwait(x,y)	xp_sem_timedwait(x,y)
-		#define		sem_t				xp_sem_t
-	#else
-		#include <semaphore.h>	/* POSIX semaphores */
-	#endif
-
-#elif defined(_WIN32)	
-
-	#include <process.h>	/* _beginthread */
-
-	/* POSIX semaphores */
-	typedef HANDLE sem_t;
-	DLLEXPORT int sem_init(sem_t*, int pshared, unsigned int value);
-	DLLEXPORT int sem_post(sem_t*);
-	DLLEXPORT int sem_getvalue(sem_t*, int* value);
-	DLLEXPORT int sem_destroy(sem_t*);
-	#define sem_wait(psem)				sem_trywait_block(psem,INFINITE)
-	#define sem_trywait(psem)			sem_trywait_block(psem,0)
-
-#elif defined(__OS2__)	/* These have *not* been tested! */
-
-	/* POSIX semaphores */
-	typedef HEV sem_t;
-	#define	sem_init(psem,ps,v)			DosCreateEventSem(NULL,psem,0,0);
-	#define sem_wait(psem)				DosWaitEventSem(*(psem),-1)
-	#define sem_post(psem)				DosPostEventSem(*(psem))
-	#define sem_destroy(psem)			DosCloseEventSem(*(psem))
-
-#else
-
-	#error "Need semaphore wrappers."
-
-#endif
-
-/* NOT POSIX */
-DLLEXPORT int sem_trywait_block(sem_t* psem, unsigned long timeout);
-
-
-/* Change semaphore to "unsignaled" (NOT POSIX) */
-#ifdef USE_XP_SEMAPHORES
-#define	sem_reset(psem)					xp_sem_setvalue((psem), 0)
-#else
-#define sem_reset(psem)					while(sem_trywait(psem)==0)
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/sockwrap.c b/xpdev/sockwrap.c
deleted file mode 100644
index 42ae2c8..0000000
--- a/xpdev/sockwrap.c
+++ /dev/null
@@ -1,844 +0,0 @@
-/* Berkley/WinSock socket API wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* alloca/free on FreeBSD */
-#include <string.h>		/* bzero (for FD_ZERO) on FreeBSD */
-#include <errno.h>		/* ENOMEM */
-#include <stdio.h>		/* SEEK_SET */
-#include <string.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include "genwrap.h"	/* SLEEP */
-#include "gen_defs.h"	/* BOOL/LOG_WARNING */
-#include "sockwrap.h"	/* sendsocket */
-#include "filewrap.h"	/* filelength */
-
-static socket_option_t socket_options[] = {
-	{ "TYPE",				0,				SOL_SOCKET,		SO_TYPE				},
-	{ "ERROR",				0,				SOL_SOCKET,		SO_ERROR			},
-	{ "DEBUG",				0,				SOL_SOCKET,		SO_DEBUG			},
-	{ "LINGER",				SOCK_STREAM,	SOL_SOCKET,		SO_LINGER			},
-	{ "SNDBUF",				0,				SOL_SOCKET,		SO_SNDBUF			},
-	{ "RCVBUF",				0,				SOL_SOCKET,		SO_RCVBUF			},
-
-#ifndef _WINSOCKAPI_	/* Defined, but not supported, by WinSock */
-	{ "SNDLOWAT",			0,				SOL_SOCKET,		SO_SNDLOWAT			},
-	{ "RCVLOWAT",			0,				SOL_SOCKET,		SO_RCVLOWAT			},
-	{ "SNDTIMEO",			0,				SOL_SOCKET,		SO_SNDTIMEO			},
-	{ "RCVTIMEO",			0,				SOL_SOCKET,		SO_RCVTIMEO			},
-#ifdef SO_USELOOPBACK	/* SunOS */
-	{ "USELOOPBACK",		0,				SOL_SOCKET,		SO_USELOOPBACK		},
-#endif
-#endif
-
-	{ "REUSEADDR",			0,				SOL_SOCKET,		SO_REUSEADDR		},	
-#ifdef SO_REUSEPORT	/* BSD */
-	{ "REUSEPORT",			0,				SOL_SOCKET,		SO_REUSEPORT		},	
-#endif
-#ifdef SO_EXCLUSIVEADDRUSE /* WinSock */
-	{ "EXCLUSIVEADDRUSE",	0,				SOL_SOCKET,		SO_EXCLUSIVEADDRUSE },
-#endif
-	{ "KEEPALIVE",			SOCK_STREAM,	SOL_SOCKET,		SO_KEEPALIVE		},
-	{ "DONTROUTE",			0,				SOL_SOCKET,		SO_DONTROUTE		},
-	{ "BROADCAST",			SOCK_DGRAM,		SOL_SOCKET,		SO_BROADCAST		},
-	{ "OOBINLINE",			SOCK_STREAM,	SOL_SOCKET,		SO_OOBINLINE		},
-
-#ifdef SO_ACCEPTCONN											
-	{ "ACCEPTCONN",			SOCK_STREAM,	SOL_SOCKET,		SO_ACCEPTCONN		},
-#endif
-#ifdef SO_PRIORITY		/* Linux */
-	{ "PRIORITY",			0,				SOL_SOCKET,		SO_PRIORITY			},
-#endif
-#ifdef SO_NO_CHECK		/* Linux */
-	{ "NO_CHECK",			0,				SOL_SOCKET,		SO_NO_CHECK			},
-#endif
-#ifdef SO_PROTOTYPE		/* SunOS */
-	{ "PROTOTYPE",			0,				SOL_SOCKET,		SO_PROTOTYPE		},
-#endif
-#ifdef SO_MAX_MSG_SIZE	/* WinSock2 */
-	{ "MAX_MSG_SIZE",		SOCK_DGRAM,		SOL_SOCKET,		SO_MAX_MSG_SIZE		},
-#endif
-#ifdef SO_CONNECT_TIME	/* WinSock2 */
-	{ "CONNECT_TIME",		SOCK_STREAM,	SOL_SOCKET,		SO_CONNECT_TIME		},
-#endif
-
-	/* IPPROTO-level socket options */
-	{ "TCP_NODELAY",		SOCK_STREAM,	IPPROTO_TCP,	TCP_NODELAY			},
-	/* The following are platform-specific */					
-#ifdef TCP_MAXSEG											
-	{ "TCP_MAXSEG",			SOCK_STREAM,	IPPROTO_TCP,	TCP_MAXSEG			},
-#endif															
-#ifdef TCP_CORK													
-	{ "TCP_CORK",			SOCK_STREAM,	IPPROTO_TCP,	TCP_CORK			},
-#endif															
-#ifdef TCP_KEEPIDLE												
-	{ "TCP_KEEPIDLE",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPIDLE		},
-#endif															
-#ifdef TCP_KEEPINTVL											
-	{ "TCP_KEEPINTVL",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPINTVL		},
-#endif															
-#ifdef TCP_KEEPCNT												
-	{ "TCP_KEEPCNT",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPCNT			},
-#endif															
-#ifdef TCP_KEEPALIVE	/* SunOS */
-	{ "TCP_KEEPALIVE",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPALIVE		},
-#endif															
-#ifdef TCP_SYNCNT												
-	{ "TCP_SYNCNT",			SOCK_STREAM,	IPPROTO_TCP,	TCP_SYNCNT			},
-#endif															
-#ifdef TCP_LINGER2												
-	{ "TCP_LINGER2",		SOCK_STREAM,	IPPROTO_TCP,	TCP_LINGER2			},
-#endif														
-#ifdef TCP_DEFER_ACCEPT										
-	{ "TCP_DEFER_ACCEPT",	SOCK_STREAM,	IPPROTO_TCP,	TCP_DEFER_ACCEPT	},
-#endif															
-#ifdef TCP_WINDOW_CLAMP											
-	{ "TCP_WINDOW_CLAMP",	SOCK_STREAM,	IPPROTO_TCP,	TCP_WINDOW_CLAMP	},
-#endif														
-#ifdef TCP_QUICKACK											
-	{ "TCP_QUICKACK",		SOCK_STREAM,	IPPROTO_TCP,	TCP_QUICKACK		},
-#endif						
-#ifdef TCP_NOPUSH			
-	{ "TCP_NOPUSH",			SOCK_STREAM,	IPPROTO_TCP,	TCP_NOPUSH			},
-#endif						
-#ifdef TCP_NOOPT			
-	{ "TCP_NOOPT",			SOCK_STREAM,	IPPROTO_TCP,	TCP_NOOPT			},
-#endif
-#if defined(IPV6_V6ONLY) && defined(IPPROTO_IPV6)
-	{ "IPV6_V6ONLY",		0,				IPPROTO_IPV6,	IPV6_V6ONLY			},
-#endif
-	{ NULL }
-};
-
-int getSocketOptionByName(const char* name, int* level)
-{
-	int i;
-
-	if(level!=NULL)
-		*level=SOL_SOCKET;	/* default option level */
-	for(i=0;socket_options[i].name;i++) {
-		if(stricmp(name,socket_options[i].name)==0) {
-			if(level!=NULL)
-				*level = socket_options[i].level;
-			return(socket_options[i].value);
-		}
-	}
-	if(!IS_DIGIT(*name))	/* unknown option name */
-		return(-1);
-	return(strtol(name,NULL,0));
-}
-
-socket_option_t* getSocketOptionList(void)
-{
-	return(socket_options);
-}
-
-off_t sendfilesocket(int sock, int file, off_t *offset, off_t count)
-{
-	char		buf[1024*16];
-	off_t		len;
-	ssize_t		rd;
-	ssize_t		wr=0;
-	off_t		total=0;
-	ssize_t		i;
-
-/* sendfile() on Linux may or may not work with non-blocking sockets ToDo */
-	len=filelength(file);
-
-	if(offset!=NULL)
-		if(lseek(file,*offset,SEEK_SET)<0)
-			return(-1);
-
-	if(count<1 || count>len) {
-		count=len;
-		count-=tell(file);		/* don't try to read beyond EOF */
-	}
-#if USE_SENDFILE
-	while((i=sendfile(file,sock,(offset==NULL?0:*offset)+total,count-total,NULL,&wr,0))==-1 && errno==EAGAIN)  {
-		total+=wr;
-		SLEEP(1);
-	}
-	if(i==0)
-		return(count);
-#endif
-
-	if(count<0) {
-		errno=EINVAL;
-		return(-1);
-	}
-
-	while(total<count) {
-		rd=read(file,buf,sizeof(buf));
-		if(rd==-1)
-			return(-1);
-		if(rd==0)
-			break;
-		for(i=wr=0;i<rd;i+=wr) {
-			wr=sendsocket(sock,buf+i,rd-i);
-			if(wr>0)
-				continue;
-			if(wr==SOCKET_ERROR && ERROR_VALUE==EWOULDBLOCK) {
-				wr=0;
-				SLEEP(1);
-				continue;
-			}
-			return(wr);
-		}
-		if(i!=rd)
-			return(-1);
-		total+=rd;
-	}
-
-	if(offset!=NULL)
-		(*offset)+=total;
-
-	return(total);
-}
-
-off_t recvfilesocket(int sock, int file, off_t *offset, off_t count)
-{
-	/* Writes a file from a socket -
-	 *
-	 * sock		- Socket to read from
-	 * file		- File descriptior to write to
-	 *				MUST be open and writeable
-	 * offset	- pointer to file offset to start writing at
-	 *				is set to offset writing STOPPED
-	 *				on return
-	 * count	- number of bytes to read/write
-	 *
-	 * returns -1 if an error occurse, otherwise
-	 * returns number ob bytes written and sets offset
-	 * to the new offset
-	 */
-	 
-	char*	buf;
-	ssize_t	rd;
-	ssize_t	wr;
-
-	if(count<1) {
-		errno=ERANGE;
-		return(-1);
-	}
-		
-	if((buf=(char*)malloc((size_t)count))==NULL) {
-		errno=ENOMEM;
-		return(-1);
-	}
-
-	if(offset!=NULL) {
-		if(lseek(file,*offset,SEEK_SET)<0) {
-			free(buf);
-			return(-1);
-		}
-	}
-
-	rd=read(sock,buf,(size_t)count);
-	if(rd!=count) {
-		free(buf);
-		return(-1);
-	}
-
-	wr=write(file,buf,rd);
-
-	if(offset!=NULL)
-		(*offset)+=wr;
-
-	free(buf);
-	return(wr);
-}
-
-
-/* Return true if connected, optionally sets *rd_p to true if read data available */
-/*
- * The exact conditions where rd_p is set to TRUE and the return value
- * is true or false are complex, but the intent appears to be as follows:
- *
- * If the remote has half-closed the socket, rd_p should be FALSE and
- * the function should return FALSE, unless rd_p is NULL in which case
- * the function should return TRUE.  wr_p will indicate that transmit
- * buffers are available.
- *
- * If we have half-closed the socket, wr_p should be TRUE, the function
- * should return TRUE, and rd_p will indicate if there is data available
- * to be received.
- *
- * If the socket is completely closed, wr_p should be TRUE, rd_p should be
- * FALSE, and the function should return FALSE, unless rd_p is NULL in which
- * case, the function should return TRUE.
- *
- * When the function is open in both directions, wr_p will indicate transmit
- * buffers are available, rd_p will indicate data is available to be recv()ed
- * and the return value should be TRUE.
- *
- * If the socket is invalid, rd_p should be FALSE, wr_p should be FALSE, and
- * the function should return FALSE.
- *
- * These rules have various exceptions when errors are returned by select(),
- * poll(), or recv(), which will generally cause a FALSE return with rd_p
- * being FALSE and wr_p being FALSE if select/poll failed, or indicating
- * available write buffers otherwise.
- */
-BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	int j, rd;
-	char ch;
-
-	if(rd_p!=NULL)
-		*rd_p=FALSE;
-
-	if(wr_p!=NULL)
-		*wr_p=FALSE;
-
-	if(sock==INVALID_SOCKET)
-		return(FALSE);
-
-	pfd.fd = sock;
-	pfd.events = POLLIN | POLLHUP;
-	if (wr_p != NULL)
-		pfd.events |= POLLOUT;
-
-	j = poll(&pfd, 1, timeout);
-
-	if (j == 0)
-		return TRUE;
-
-	if (j == 1) {
-		if (wr_p != NULL && (pfd.revents & POLLOUT)) {
-			*wr_p = TRUE;
-			if (rd_p == NULL)
-				return TRUE;
-		}
-
-		if (pfd.revents & (POLLERR | POLLNVAL | POLLHUP))
-			return FALSE;
-
-		if(pfd.revents & ~(POLLOUT) && (rd_p !=NULL || wr_p==NULL))  {
-			rd=recv(sock,&ch,1,MSG_PEEK);
-			if(rd==1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE)) {
-				if(rd_p!=NULL)
-					*rd_p=TRUE;
-				return TRUE;
-			}
-		}
-		return FALSE;
-	}
-
-	if (j == -1) {
-		if (errno == EINTR || errno == ENOMEM)
-			return TRUE;
-	}
-
-	return FALSE;
-#else
-	char	ch;
-	int		i,rd;
-	fd_set	rd_set;
-	fd_set*	rd_set_p=&rd_set;
-	fd_set	wr_set;
-	fd_set*	wr_set_p=NULL;
-	struct	timeval tv;
-
-	if(rd_p!=NULL)
-		*rd_p=FALSE;
-
-	if(wr_p!=NULL)
-		*wr_p=FALSE;
-
-	if(sock==INVALID_SOCKET)
-		return(FALSE);
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock,&rd_set);
-	if(wr_p!=NULL) {
-		wr_set_p=&wr_set;
-		FD_ZERO(wr_set_p);
-		FD_SET(sock,wr_set_p);
-		if(rd_p==NULL)
-			rd_set_p=NULL;
-	}
-
-	/* Convert timeout from ms to sec/usec */
-	tv.tv_sec=timeout/1000;
-	tv.tv_usec=(timeout%1000)*1000;
-
-	i=select(sock+1,rd_set_p,wr_set_p,NULL,&tv);
-	if(i==SOCKET_ERROR)
-		return(FALSE);
-
-	if(i==0) 
-		return(TRUE);
-
-	if(wr_p!=NULL && FD_ISSET(sock,wr_set_p)) {
-		*wr_p=TRUE;
-		if(i==1)
-			return(TRUE);
-	}
-
-	if(rd_p !=NULL || wr_p==NULL)  {
-		rd=recv(sock,&ch,1,MSG_PEEK);
-		if(rd==1 
-			|| (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE)) {
-			if(rd_p!=NULL)
-				*rd_p=TRUE;
-			return(TRUE);
-		}
-	}
-
-	return(FALSE);
-#endif
-}
-
-/*
- * Return TRUE if recv() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if recv() will return an error
- * as well as if the socket is closed (and recv() will return 0)
- */
-BOOL socket_readable(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLIN;
-
-	if (poll(&pfd, 1, timeout) == 1)
-		return TRUE;
-	return FALSE;
-#else
-	fd_set rd_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock, &rd_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, &rd_set, NULL, NULL, tvp)) {
-		case 0:		// Nothing to read
-			return FALSE;
-		case 1:
-			return TRUE;
-	}
-	// Errors and unexpected cases
-	return TRUE;
-#endif
-}
-
-/*
- * Return TRUE if send() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if send() will return an error
- * as well as if the socket is closed (and send() will return 0)
- */
-BOOL socket_writable(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLOUT;
-
-	if (poll(&pfd, 1, timeout) == 1)
-		return TRUE;
-	return FALSE;
-#else
-	fd_set wr_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-
-	FD_ZERO(&wr_set);
-	FD_SET(sock, &wr_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, NULL, &wr_set, NULL, tvp)) {
-		case 0:		// Nothing to read
-			return FALSE;
-		case 1:
-			return TRUE;
-	}
-	// Errors and unexpected cases
-	return TRUE;
-#endif
-}
-
-/*
- * Return TRUE if recv() will not block and will return zero
- * or an error. This is *not* a test if a socket is
- * disconnected, but rather that it is disconnected *AND* all
- * data has been recv()ed.
- */
-BOOL socket_recvdone(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLIN;
-	char ch;
-	int rd;
-
-	switch (poll(&pfd, 1, timeout)) {
-		case 1:
-			if (pfd.revents) {
-				rd = recv(sock,&ch,1,MSG_PEEK);
-				if (rd == 1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE))
-					return FALSE;
-				return TRUE;
-			}
-			return FALSE;
-		case -1:
-			if (errno == EINTR || errno == ENOMEM)
-				return FALSE;
-			return TRUE;
-	}
-	return FALSE;
-#else
-	fd_set rd_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-	char ch;
-	int rd;
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock, &rd_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, &rd_set, NULL, NULL, tvp)) {
-		case -1:	// Error, call this disconnected
-			return TRUE;
-		case 0:		// Nothing to read
-			return FALSE;
-	}
-	rd = recv(sock,&ch,1,MSG_PEEK);
-	if (rd == 1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE))
-		return FALSE;
-	return TRUE;
-#endif
-}
-
-int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen
-			   ,uint retries, uint wait_secs
-			   ,const char* prot
-			   ,int (*lprintf)(int level, const char *fmt, ...))
-{
-	char	port_str[128];
-	char	err[256];
-	int		result=-1;
-	uint	i;
-
-	if(addr->sa_family==AF_INET)
-		SAFEPRINTF(port_str," to port %u",ntohs(((SOCKADDR_IN *)(addr))->sin_port));
-	else
-		port_str[0]=0;
-	for(i=0;i<=retries;i++) {
-		if((result=bind(s,addr,addrlen))==0)
-			break;
-		if(lprintf!=NULL)
-			lprintf(i<retries ? LOG_WARNING:LOG_CRIT
-				,"%04d !ERROR %d binding %s socket%s: %s", s, ERROR_VALUE, prot, port_str, socket_strerror(socket_errno, err, sizeof(err)));
-		if(i<retries) {
-			if(lprintf!=NULL)
-				lprintf(LOG_WARNING,"%04d Will retry in %u seconds (%u of %u)"
-					,s, wait_secs, i+1, retries);
-			SLEEP(wait_secs*1000);
-		}
-	}
-	return(result);
-}
-
-int nonblocking_connect(SOCKET sock, struct sockaddr* addr, size_t size, unsigned timeout)
-{
-	int result;
-	socklen_t optlen;
-
-	result=connect(sock, addr, size);
-
-	if(result==SOCKET_ERROR) {
-		result=ERROR_VALUE;
-		if(result==EWOULDBLOCK || result==EINPROGRESS) {
-			if (socket_writable(sock, timeout * 1000)) {
-				result = 0;
-			}
-			else {
-				optlen = sizeof(result);
-				if(getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&result, &optlen)==SOCKET_ERROR)
-					result=ERROR_VALUE;
-			}
-		}
-	}
-	return result;
-}
-
-
-union xp_sockaddr* inet_ptoaddr(const char *addr_str, union xp_sockaddr *addr, size_t size)
-{
-    struct addrinfo hints = {0};
-    struct addrinfo *res, *cur;
-
-    hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-    if(getaddrinfo(addr_str, NULL, &hints, &res))
-        return NULL;
-    
-    for(cur = res; cur; cur = cur->ai_next) {
-        if(cur->ai_addr->sa_family == AF_INET6)
-            break;
-        if(cur->ai_addr->sa_family == AF_INET)
-            break;
-    }
-    if(!cur) {
-        freeaddrinfo(res);
-        return NULL;
-    }
-    if (size < sizeof(struct sockaddr_in6)) {
-        freeaddrinfo(res);
-        return NULL;
-	}
-	size = sizeof(struct sockaddr_in6);
-    memcpy(addr, ((struct sockaddr_in6 *)(cur->ai_addr)), size);
-    freeaddrinfo(res);
-    return addr;
-}
-
-const char* inet_addrtop(union xp_sockaddr *addr, char *dest, size_t size)
-{
-#ifdef _WIN32
-	if(getnameinfo(&addr->addr, xp_sockaddr_len(addr), dest, size, NULL, 0, NI_NUMERICHOST))
-		safe_snprintf(dest, size, "<Error %u converting address, family=%u>", WSAGetLastError(), addr->addr.sa_family);
-	return dest;
-#else
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			return inet_ntop(addr->in.sin_family, &addr->in.sin_addr, dest, size);
-		case AF_INET6:
-			return inet_ntop(addr->in6.sin6_family, &addr->in6.sin6_addr, dest, size);
-		case AF_UNIX:
-			strncpy(dest, addr->un.sun_path, size);
-			dest[size-1]=0;
-			return dest;
-		default:
-			safe_snprintf(dest, size, "<unknown address family: %u>", addr->addr.sa_family);
-			return NULL;
-	}
-#endif
-}
-
-uint16_t inet_addrport(union xp_sockaddr *addr)
-{
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			return ntohs(addr->in.sin_port);
-		case AF_INET6:
-			return ntohs(addr->in6.sin6_port);
-		default:
-			return 0;
-	}
-}
-
-void inet_setaddrport(union xp_sockaddr *addr, uint16_t port)
-{
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			addr->in.sin_port = htons(port);
-			break;
-		case AF_INET6:
-			addr->in6.sin6_port = htons(port);
-			break;
-	}
-}
-
-/* Return TRUE if the 2 addresses are the same host (type and address) */
-BOOL inet_addrmatch(union xp_sockaddr* addr1, union xp_sockaddr* addr2)
-{
-	if(addr1->addr.sa_family != addr2->addr.sa_family)
-		return FALSE;
-
-	switch(addr1->addr.sa_family) {
-		case AF_INET:
-			return memcmp(&addr1->in.sin_addr, &addr2->in.sin_addr, sizeof(addr1->in.sin_addr)) == 0;
-		case AF_INET6:
-			return memcmp(&addr1->in6.sin6_addr, &addr2->in6.sin6_addr, sizeof(addr1->in6.sin6_addr)) == 0;
-	}
-	return FALSE;
-}
-
-/* Return the current socket error description (for Windows), like strerror() does for errno */
-DLLEXPORT char* socket_strerror(int error_number, char* buf, size_t buflen)
-{
-#if defined(_WINSOCKAPI_)
-	strncpy(buf, "Unknown error", buflen);
-	buf[buflen - 1] = 0;
-	if(error_number > 0 && error_number < WSABASEERR)
-		error_number += WSABASEERR;
-	if(!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK,	// dwFlags
-		NULL,			// lpSource
-		error_number,	// dwMessageId
-		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),    // dwLanguageId
-		buf,
-		buflen,
-		NULL))
-		safe_snprintf(buf, buflen, "Error %d getting error description", GetLastError());
-	truncsp(buf);
-	return buf;
-#else
-	return safe_strerror(error_number, buf, buflen);
-#endif
-}
-
-DLLEXPORT void set_socket_errno(int err)
-{
-#if defined(_WINSOCKAPI_)
-	WSASetLastError(err);
-#else
-	errno = err;
-#endif
-}
-
-DLLEXPORT int xp_inet_pton(int af, const char *src, void *dst)
-{
-	struct addrinfo hints = {0};
-	struct addrinfo *res, *cur;
-
-	if (af != AF_INET && af != AF_INET6) {
-		set_socket_errno(EAFNOSUPPORT);
-		return -1;
-	}
-
-	hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-	if(getaddrinfo(src, NULL, &hints, &res))
-		return -1;
-
-	for(cur = res; cur; cur++) {
-		if(cur->ai_addr->sa_family == af)
-			break;
-	}
-	if(!cur) {
-		freeaddrinfo(res);
-		return 0;
-	}
-	switch(af) {
-		case AF_INET:
-			memcpy(dst, &(((struct sockaddr_in *)cur)->sin_addr), sizeof(((struct sockaddr_in *)cur)->sin_addr));
-			break;
-		case AF_INET6:
-			memcpy(dst, &(((struct sockaddr_in6 *)cur)->sin6_addr), sizeof(((struct sockaddr_in6 *)cur)->sin6_addr));
-			break;
-	}
-	freeaddrinfo(res);
-	return 1;
-}
-
-#ifdef _WIN32
-DLLEXPORT int
-socketpair(int domain, int type, int protocol, SOCKET *sv)
-{
-	union xp_sockaddr la = {0};
-	const int ra = 1;
-	SOCKET ls;
-	SOCKET *check;
-	fd_set rfd;
-	struct timeval tv;
-	size_t sa_len;
-
-	sv[0] = sv[1] = INVALID_SOCKET;
-	ls = socket(domain, type, protocol);
-	if (ls == INVALID_SOCKET)
-		goto fail;
-	switch (domain) {
-		case PF_INET:
-			if (inet_ptoaddr("127.0.0.1", &la, sizeof(la)) == NULL)
-				goto fail;
-			sa_len = sizeof(la.in);
-			break;
-		case PF_INET6:
-			if (inet_ptoaddr("::1", &la, sizeof(la)) == NULL)
-				goto fail;
-			sa_len = sizeof(la.in6);
-			break;
-		default:
-			goto fail;
-	}
-	inet_setaddrport(&la, 0);
-	if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, (const char *)&ra, sizeof(ra)) == -1)
-		goto fail;
-	if (bind(ls, &la.addr, sa_len) == -1)
-		goto fail;
-	if (getsockname(ls, &la.addr, &sa_len) == -1)
-		goto fail;
-	if (listen(ls, 1) == -1)
-		goto fail;
-	sv[0] = socket(la.addr.sa_family, type, protocol);
-	if (sv[0] == INVALID_SOCKET)
-		goto fail;
-	if (connect(sv[0], &la.addr, sa_len) == -1)
-		goto fail;
-	sv[1] = accept(ls, NULL, NULL);
-	if (sv[1] == INVALID_SOCKET)
-		goto fail;
-	closesocket(ls);
-	ls = INVALID_SOCKET;
-
-	if (send(sv[1], (const char *)&sv, sizeof(sv), 0) != sizeof(sv))
-		goto fail;
-	tv.tv_sec = 0;
-	tv.tv_usec = 50000;
-	FD_ZERO(&rfd);
-	FD_SET(sv[0], &rfd);
-	if (select(sv[0] + 1, &rfd, NULL, NULL, &tv) != 1)
-		goto fail;
-	if (recv(sv[0], (char *)&check, sizeof(check), 0) != sizeof(check))
-		goto fail;
-	if (check != sv)
-		goto fail;
-	return 0;
-
-fail:
-	if (ls != INVALID_SOCKET)
-		closesocket(ls);
-	if (sv[0] != INVALID_SOCKET)
-		closesocket(sv[0]);
-	sv[0] = INVALID_SOCKET;
-	if (sv[1] != INVALID_SOCKET)
-		closesocket(sv[1]);
-	sv[1] = INVALID_SOCKET;
-	return -1;
-}
-#endif
-
diff --git a/xpdev/sockwrap.h b/xpdev/sockwrap.h
deleted file mode 100644
index b5d3866..0000000
--- a/xpdev/sockwrap.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/* Berkley/WinSock socket API wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * 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.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SOCKWRAP_H
-#define _SOCKWRAP_H
-
-#include "gen_defs.h"	/* BOOL */
-
-/***************/
-/* OS-specific */
-/***************/
-#if defined(_WIN32)	/* Use WinSock */
-
-#ifndef _WINSOCKAPI_
-	#include <winsock2.h>	/* socket/bind/etc. */
-	#include <mswsock.h>	/* Microsoft WinSock2 extensions */
-#if defined(__BORLANDC__)
-// Borland C++ builder 6 comes with a broken ws2tcpip.h header for GCC.
-#define _MSC_VER 7
-#endif
-    #include <ws2tcpip.h>	/* More stuff */
-#if defined(__BORLANDC__)
-#undef _MSC_VER
-#endif
-	#if (_WIN32_WINNT < _WIN32_WINNT_WINXP)
-		#include <wspiapi.h>	/* getaddrinfo() for Windows 2k */
-	#endif
-	#define SOCK_MAXADDRLEN sizeof(SOCKADDR_STORAGE)
-	/* Let's agree on a standard WinSock symbol here, people */
-	#define _WINSOCKAPI_
-#endif
-#ifndef MSG_WAITALL
-#define MSG_WAITALL 0x08
-#endif
-
-#elif defined __unix__		/* Unix-variant */
-							
-#include <netdb.h>			/* gethostbyname */
-#include <sys/types.h>		/* For u_int32_t on FreeBSD */
-#include <netinet/in.h>		/* IPPROTO_IP */
-#include <sys/un.h>
-/* define _BSD_SOCKLEN_T_ in order to define socklen_t on darwin */
-#ifdef __DARWIN__
-#define _BSD_SOCKLEN_T_	int
-#endif
-#include <sys/socket.h>		/* socket/bind/etc. */
-#include <sys/time.h>		/* struct timeval */
-#include <arpa/inet.h>		/* inet_ntoa */
-#include <netinet/tcp.h>	/* TCP_NODELAY */
-#include <unistd.h>			/* close */
-#include <poll.h>
-#if defined(__solaris__)
-	#include <sys/filio.h>  /* FIONBIO */
-	#define INADDR_NONE -1L
-#else
-	#include <sys/ioctl.h>	/* FIONBIO */
-#endif
-
-#endif
-
-#include <errno.h>		/* errno */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-typedef struct {
-	char*	name;
-	int		type;		/* Supported socket types (or 0 for unspecified) */
-	int		level;
-	int		value;
-} socket_option_t;
-
-/*
- * Fancy sockaddr_* union
- */
-union xp_sockaddr {
-	struct sockaddr			addr;
-	struct sockaddr_in		in;
-	struct sockaddr_in6		in6;
-#ifndef _WIN32
-	struct sockaddr_un		un;
-#endif
-	struct sockaddr_storage	store;
-};
-
-#define xp_sockaddr_len(a) ((((struct sockaddr *)a)->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in))
-
- 
-
-/**********************************/
-/* Socket Implementation-specific */
-/**********************************/
-#if defined(_WINSOCKAPI_)
-
-#undef  EINTR
-#define EINTR			(WSAEINTR-WSABASEERR)
-#undef  ENOTSOCK
-#define ENOTSOCK		(WSAENOTSOCK-WSABASEERR)
-#undef  EMSGSIZE
-#define EMSGSIZE		(WSAEMSGSIZE-WSABASEERR)
-#undef  EWOULDBLOCK
-#define EWOULDBLOCK		(WSAEWOULDBLOCK-WSABASEERR)
-
-#ifndef EPROTOTYPE
-#define EPROTOTYPE		(WSAEPROTOTYPE-WSABASEERR)
-#endif
-#ifndef ENOPROTOOPT
-#define ENOPROTOOPT		(WSAENOPROTOOPT-WSABASEERR)
-#endif
-#ifndef EPROTONOSUPPORT
-#define EPROTONOSUPPORT	(WSAEPROTONOSUPPORT-WSABASEERR)
-#endif
-#ifndef ESOCKTNOSUPPORT
-#define ESOCKTNOSUPPORT	(WSAESOCKTNOSUPPORT-WSABASEERR)
-#endif
-#ifndef EOPNOTSUPP
-#define EOPNOTSUPP		(WSAEOPNOTSUPP-WSABASEERR)
-#endif
-#ifndef EPFNOSUPPORT
-#define EPFNOSUPPORT	(WSAEPFNOSUPPORT-WSABASEERR)
-#endif
-#ifndef EAFNOSUPPORT
-#define EAFNOSUPPORT	(WSAEAFNOSUPPORT-WSABASEERR)
-#endif
-
-#undef  EADDRINUSE
-#define EADDRINUSE		(WSAEADDRINUSE-WSABASEERR)
-#undef  EADDRNOTAVAIL
-#define EADDRNOTAVAIL	(WSAEADDRNOTAVAIL-WSABASEERR)
-#undef  ECONNABORTED
-#define ECONNABORTED	(WSAECONNABORTED-WSABASEERR)
-#undef  ECONNRESET
-#define ECONNRESET		(WSAECONNRESET-WSABASEERR)
-#undef  ENOBUFS
-#define ENOBUFS			(WSAENOBUFS-WSABASEERR)
-#undef  EISCONN
-#define EISCONN			(WSAEISCONN-WSABASEERR)
-#undef  ENOTCONN
-#define ENOTCONN		(WSAENOTCONN-WSABASEERR)
-#undef  ESHUTDOWN
-#define ESHUTDOWN		(WSAESHUTDOWN-WSABASEERR)
-#undef  ETIMEDOUT
-#define ETIMEDOUT		(WSAETIMEDOUT-WSABASEERR)
-#undef  ECONNREFUSED
-#define ECONNREFUSED	(WSAECONNREFUSED-WSABASEERR)
-#undef	EINPROGRESS
-#define EINPROGRESS		(WSAEINPROGRESS-WSABASEERR)
-
-/* for shutdown() */
-#define SHUT_RD			SD_RECEIVE
-#define SHUT_WR			SD_SEND
-#define SHUT_RDWR		SD_BOTH
-
-#define s_addr			S_un.S_addr
-#define sa_family_t		ushort
-typedef uint32_t                in_addr_t;
-
-static  int wsa_error;
-#define ERROR_VALUE			((wsa_error=WSAGetLastError())>0 ? wsa_error-WSABASEERR : wsa_error)
-#define socket_errno		WSAGetLastError()
-#define sendsocket(s,b,l)	send(s,b,l,0)
-typedef ULONG nfds_t;
-/*
- * NOTE: WSAPoll() has a bug where a non-blocking socket which has connect()
- *       called on it that is trying to connect to a closed port will timeout
- *       instead of returning a failure, even with POLLOUT specified.
- */
-#define poll(s, c, t)		WSAPoll(s, c, t)
-
-/* For getaddrinfo() */
-#ifndef AI_ADDRCONFIG
-# define AI_ADDRCONFIG 0x400 // Vista or later
-#endif
-#ifndef AI_NUMERICSERV
-# define AI_NUMERICSERV 0		// Not supported by Win32
-#endif
-
-#else	/* BSD sockets */
-
-/* WinSock-isms */
-#define HOSTENT			struct hostent
-#define IN_ADDR			struct in_addr
-#define SOCKADDR		struct sockaddr
-#define SOCKADDR_IN		struct sockaddr_in
-#define LINGER			struct linger
-#define SOCKET			int
-#define SOCKET_ERROR	-1
-#define INVALID_SOCKET  (SOCKET)(~0)
-#define closesocket		close
-#define ioctlsocket		ioctl
-#define ERROR_VALUE		errno
-#define socket_errno	errno
-#define sendsocket		write		/* FreeBSD send() is broken */
-
-#ifdef __WATCOMC__
-	#define socklen_t		int
-#endif
-
-#endif	/* __unix__ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DLLEXPORT socket_option_t* getSocketOptionList(void);
-DLLEXPORT int getSocketOptionByName(const char* name, int* level);
-
-DLLEXPORT off_t sendfilesocket(int sock, int file, off_t* offset, off_t count);
-DLLEXPORT off_t recvfilesocket(int sock, int file, off_t* offset, off_t count);
-DLLEXPORT BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout);
-DLLEXPORT int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen
-				   ,uint retries, uint wait_secs, const char* prot
-				   ,int (*lprintf)(int level, const char *fmt, ...));
-DLLEXPORT int nonblocking_connect(SOCKET, struct sockaddr*, size_t, unsigned timeout /* seconds */);
-DLLEXPORT union xp_sockaddr* inet_ptoaddr(const char *addr_str, union xp_sockaddr *addr, size_t size);
-DLLEXPORT const char* inet_addrtop(union xp_sockaddr *addr, char *dest, size_t size);
-DLLEXPORT uint16_t inet_addrport(union xp_sockaddr *addr);
-DLLEXPORT void inet_setaddrport(union xp_sockaddr *addr, uint16_t port);
-DLLEXPORT BOOL inet_addrmatch(union xp_sockaddr* addr1, union xp_sockaddr* addr2);
-DLLEXPORT char* socket_strerror(int, char*, size_t);
-DLLEXPORT void set_socket_errno(int);
-DLLEXPORT int xp_inet_pton(int af, const char *src, void *dst);
-#if defined(_WIN32) // mingw and WinXP's WS2_32.DLL don't have inet_pton():
-	#define inet_pton	xp_inet_pton
-DLLEXPORT int socketpair(int domain, int type, int protocol, SOCKET *sv);
-#endif
-
-/*
- * Return TRUE if recv() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if recv() will return an error
- * as well as if the socket is closed (and recv() will return 0)
- */
-DLLEXPORT BOOL socket_readable(SOCKET sock, int timeout);
-
-/*
- * Return TRUE if send() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if send() will return an error
- * as well as if the socket is closed (and send() will return 0)
- */
-DLLEXPORT BOOL socket_writable(SOCKET sock, int timeout);
-
-/*
- * Return TRUE if recv() will not block and will return zero
- * or an error. This is *not* a test if a socket is
- * disconnected, but rather that it is disconnected *AND* all
- * data has been recv()ed.
- */
-DLLEXPORT BOOL socket_recvdone(SOCKET sock, int timeout);
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef IPPORT_HTTP
-#define IPPORT_HTTP			80
-#endif
-#ifndef IPPORT_HTTPS
-#define IPPORT_HTTPS			443
-#endif
-#ifndef IPPORT_FTP
-#define IPPORT_FTP			21
-#endif
-#ifndef IPPORT_TELNET
-#define IPPORT_TELNET		23
-#endif
-#ifndef IPPORT_SMTP
-#define IPPORT_SMTP			25
-#endif
-#ifndef IPPORT_POP3
-#define IPPORT_POP3			110
-#endif
-#ifndef IPPORT_POP3S
-#define IPPORT_POP3S			995
-#endif
-#ifndef IPPORT_IDENT
-#define IPPORT_IDENT		113
-#endif
-#ifndef IPPORT_SUBMISSION
-#define IPPORT_SUBMISSION	587
-#endif
-#ifndef IPPORT_SUBMISSIONS
-#define IPPORT_SUBMISSIONS	465
-#endif
-#ifndef IPPORT_BINKP
-#define IPPORT_BINKP		24554
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/str_list.c b/xpdev/str_list.c
deleted file mode 100644
index aeace2d..0000000
--- a/xpdev/str_list.c
+++ /dev/null
@@ -1,876 +0,0 @@
-/* Functions to deal with NULL-terminated string lists */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc and qsort */
-#include <string.h>		/* strtok */
-#include "genwrap.h"	/* stricmp */
-#include "str_list.h"
-#include "xpprintf.h"
-
-str_list_t strListInit(void)
-{
-	str_list_t list;
-
-	if((list=(str_list_t)malloc(sizeof(char*)))==NULL)
-		return(NULL);
-
-	list[0]=NULL;	/* terminated by default */
-	return(list);
-}
-
-size_t strListCount(const str_list_t list)
-{
-	size_t i;
-
-	COUNT_LIST_ITEMS(list,i);
-
-	return(i);
-}
-
-BOOL strListIsEmpty(const str_list_t list)
-{
-	return (list == NULL) || (list[0] == NULL);
-}
-
-int strListIndexOf(const str_list_t list, const char* str)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return -1;
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(list[i]==str)
-			return i;
-	}
-	
-	return -1;
-}
-
-int strListFind(const str_list_t list, const char* str, BOOL case_sensitive)
-{
-	size_t		i;
-
-	if(list == NULL || str == NULL)
-		return -1;
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(case_sensitive) {
-			if(strcmp(list[i],str) == 0)
-				return i;
-		} else {
-			if(stricmp(list[i],str) == 0)
-				return i;
-		}
-	}
-	
-	return -1;
-}
-
-static char* str_list_append(str_list_t* list, char* str, size_t index)
-{
-	str_list_t lp;
-
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(index+2)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	lp[index++]=str;
-	lp[index]=NULL;	/* terminate list */
-
-	return(str);
-}
-
-static char* str_list_insert(str_list_t* list, char* str, size_t index)
-{
-	size_t	i;
-	size_t	count;
-	str_list_t lp;
-
-	if(*list == NULL)
-		*list = strListInit();
-	count = strListCount(*list);
-	if(index > count)	/* invalid index, do nothing */
-		return(NULL);
-
-	count++;
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(count+1)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	for(i=count; i>index; i--)
-		lp[i]=lp[i-1];
-	lp[index]=str;
-
-	return(str);
-}
-
-char* strListRemove(str_list_t* list, size_t index)
-{
-	char*	str;
-	size_t	i;
-	size_t	count;
-	str_list_t lp;
-
-	count = strListCount(*list);
-
-	if(index==STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return(NULL);
-
-	count--;
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(count+1)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	str=lp[index];
-	for(i=index; i<count; i++)
-		lp[i]=lp[i+1];
-	lp[count]=NULL;
-
-	return(str);
-}
-
-// Remove without realloc
-char* strListFastRemove(str_list_t list, size_t index)
-{
-	char*	str;
-	size_t	i;
-	size_t	count;
-
-	count = strListCount(list);
-
-	if(index == STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return NULL;
-
-	str = list[index];
-	for(i = index; i < count; i++)
-		list[i] = list[i + 1];
-
-	return str;
-}
-
-BOOL strListDelete(str_list_t* list, size_t index)
-{
-	char*	str;
-
-	if((str=strListRemove(list, index))==NULL)
-		return(FALSE);
-
-	free(str);
-
-	return(TRUE);
-}
-
-BOOL strListFastDelete(str_list_t list, size_t index)
-{
-	char*	str;
-
-	if((str=strListFastRemove(list, index))==NULL)
-		return(FALSE);
-
-	free(str);
-
-	return(TRUE);
-}
-
-char* strListReplace(const str_list_t list, size_t index, const char* str)
-{
-	char*	buf;
-	size_t	count;
-
-	if(str==NULL)
-		return(NULL);
-
-	count = strListCount(list);
-
-	if(index==STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return(NULL);
-
-	if((buf=(char*)realloc(list[index],strlen(str)+1))==NULL)
-		return(NULL);
-
-	list[index]=buf;
-	strcpy(buf,str);
-
-	return(buf);
-}
-
-size_t strListModifyEach(const str_list_t list, char*(modify(size_t, char*, void*)), void* cbdata)
-{
-	size_t	i;
-	if(list == NULL)
-		return 0;
-	for(i = 0; list[i] != NULL; i++) {
-		char* str = modify(i, list[i], cbdata);
-		if(str == NULL || str == list[i])	// Same old pointer (or NULL), no modification
-			continue;
-		str = strdup(str);
-		if(str == NULL)
-			break;
-		free(list[i]);
-		list[i] = str;
-	}
-	return i;
-}
-
-BOOL strListSwap(const str_list_t list, size_t index1, size_t index2)
-{
-	char*	tmp;
-	size_t	count;
-
-	count = strListCount(list);
-
-	if(index1==STR_LIST_LAST_INDEX && count)
-		index1 = count-1;
-
-	if(index2==STR_LIST_LAST_INDEX && count)
-		index2 = count-1;
-
-	if(index1 >= count || index2 >= count || index1 == index2)	
-		return(FALSE);	/* invalid index, do nothing */
-
-	tmp=list[index1];
-	list[index1]=list[index2];
-	list[index2]=tmp;
-
-	return(TRUE);
-}
-
-char* strListAppend(str_list_t* list, const char* str, size_t index)
-{
-	char* buf;
-	char *ret;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	if(index==STR_LIST_LAST_INDEX)
-		index=strListCount(*list);
-
-	ret = str_list_append(list,buf,index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-
-size_t strListAppendList(str_list_t* list, const str_list_t add_list)
-{
-	size_t	i;
-	size_t	count;
-
-	count=strListCount(*list);
-	for(i=0; add_list != NULL && add_list[i] != NULL; i++)
-		strListAppend(list,add_list[i],count++);
-
-	return(count);
-}
-
-#if !defined(__BORLANDC__) // Doesn't have asprintf() or va_copy()_vscprintf()
-char* strListAppendFormat(str_list_t* list, const char* format, ...)
-{
-	char *ret;
-	char* buf = NULL;
-	int len;
-	va_list va;
-
-	va_start(va, format);
-	len = vasprintf(&buf, format, va);
-	va_end(va);
-
-	if(len == -1 || buf == NULL)
-		return NULL;
-
-	ret = str_list_append(list, buf, strListCount(*list));
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-#endif
-
-char* strListInsert(str_list_t* list, const char* str, size_t index)
-{
-	char* buf;
-	char* ret;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	ret = str_list_insert(list,buf,index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-
-size_t strListInsertList(str_list_t* list, const str_list_t add_list, size_t index)
-{
-	size_t	i;
-
-	if(add_list == NULL)
-		return 0;
-
-	for(i=0; add_list[i]!=NULL; i++)
-		if(strListInsert(list,add_list[i],index++)==NULL)
-			break;
-
-	return(i);
-}
-
-#if !defined(__BORLANDC__) // Doesn't have asprintf() or va_copy()_vscprintf()
-char* strListInsertFormat(str_list_t* list, size_t index, const char* format, ...)
-{
-	char *ret;
-	char* buf = NULL;
-	int len;
-	va_list va;
-
-	va_start(va, format);
-	len = vasprintf(&buf, format, va);
-	va_end(va);
-
-	if(len == -1 || buf == NULL)
-		return NULL;
-
-	ret = str_list_insert(list, buf, index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-#endif
-
-str_list_t strListSplit(str_list_t* lp, char* str, const char* delimit)
-{
-	size_t	count;
-	char*	token;
-	char*	tmp;
-	str_list_t	list;
-
-	if(str==NULL || delimit==NULL)
-		return(NULL);
-
-	if(lp==NULL) {
-		if((list = strListInit())==NULL)
-			return(NULL);
-		lp=&list;
-		count=0;
-	} else
-		count=strListCount(*lp);
-
-	for(token = strtok_r(str, delimit, &tmp); token!=NULL; token=strtok_r(NULL, delimit, &tmp))
-		if(strListAppend(lp, token, count++)==NULL)
-			break;
-
-	return(*lp);
-}
-
-str_list_t strListSplitCopy(str_list_t* list, const char* str, const char* delimit)
-{
-	char*		buf;
-	str_list_t	new_list;
-
-	if(str==NULL || delimit==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	new_list=strListSplit(list,buf,delimit);
-
-	free(buf);
-
-	if(list!=NULL)
-		*list = new_list;
-
-	return(new_list);
-}
-
-size_t strListMerge(str_list_t* list, str_list_t add_list)
-{
-	size_t	i;
-	size_t	count;
-
-	if(add_list == NULL)
-		return 0;
-
-	count=strListCount(*list);
-	for(i=0; add_list[i]!=NULL; i++)
-		str_list_append(list,add_list[i],count++);
-
-	return(i);
-}
-
-char* strListCombine(str_list_t list, char* buf, size_t maxlen, const char* delimit)
-{
-	size_t	i;
-	char*	end;
-	char*	ptr;
-
-	if(maxlen<1)
-		return(NULL);
-
-	if(buf==NULL)
-		if((buf=(char*)malloc(maxlen))==NULL)
-			return(NULL);
-
-	memset(buf, 0, maxlen);
-	if(list==NULL)
-		return buf;
-
-	end=buf+maxlen;
-	for(i=0, ptr=buf; list[i]!=NULL && buf<end; i++)
-		ptr += safe_snprintf(ptr, end-ptr, "%s%s", i ? delimit:"", list[i]);
-
-	return(buf);
-}
-
-#if defined(_WIN32)
-	#define QSORT_CALLBACK_TYPE	__cdecl
-#else
-	#define QSORT_CALLBACK_TYPE
-#endif
-
-static int QSORT_CALLBACK_TYPE strListCompareAlpha(const void *arg1, const void *arg2)
-{
-   return stricmp(*(char**)arg1, *(char**)arg2);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaReverse(const void *arg1, const void *arg2)
-{
-   return stricmp(*(char**)arg2, *(char**)arg1);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaCase(const void *arg1, const void *arg2)
-{
-   return strcmp(*(char**)arg1, *(char**)arg2);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaCaseReverse(const void *arg1, const void *arg2)
-{
-   return strcmp(*(char**)arg2, *(char**)arg1);
-}
-
-void strListSortAlpha(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlpha);
-}
-
-void strListSortAlphaReverse(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaReverse);
-}
-
-void strListSortAlphaCase(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCase);
-}
-
-void strListSortAlphaCaseReverse(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCaseReverse);
-}
-
-str_list_t strListDup(str_list_t list)
-{
-	str_list_t	ret;
-	size_t		count=0;
-
-	if(list == NULL)
-		return NULL;
-	ret = strListInit();
-	for(; *list; list++)
-		strListAppend(&ret, *list, count++);
-	return ret;
-}
-
-int strListCmp(str_list_t list1, str_list_t list2)
-{
-	str_list_t	l1=strListDup(list1);
-	str_list_t	l2=strListDup(list2);
-	str_list_t	ol1=l1;
-	str_list_t	ol2=l2;
-	int			tmp;
-	int			ret;
-
-	if(*l1 == NULL && *l2 == NULL) {
-		ret=0;
-		goto early_return;
-	}
-	if(*l1 == NULL) {
-		ret = -1;
-		goto early_return;
-	}
-	if(*l2 == NULL) {
-		ret = 1;
-		goto early_return;
-	}
-
-	strListSortAlphaCase(l1);
-	strListSortAlphaCase(l2);
-
-	for(; *l1; l1++) {
-		l2++;
-		if(*l2==NULL) {
-			ret=1;
-			goto early_return;
-		}
-		tmp = strcmp(*l1, *l2);
-		if(tmp != 0) {
-			ret=tmp;
-			goto early_return;
-		}
-	}
-	l2++;
-	if(*l2==NULL)
-		ret=0;
-	else
-		ret=-1;
-
-early_return:
-	strListFree(&ol1);
-	strListFree(&ol2);
-	return ret;
-}
-
-void strListFreeStrings(str_list_t list)
-{
-	size_t i;
-
-	FREE_LIST_ITEMS(list,i);
-}
-
-void strListFree(str_list_t* list)
-{
-	if(list != NULL && *list != NULL) {
-		strListFreeStrings(*list);
-		FREE_AND_NULL(*list);
-	}
-}
-
-static str_list_t str_list_read_file(FILE* fp, str_list_t* lp, size_t max_line_len)
-{
-	char*		buf=NULL;
-	size_t		count;
-	str_list_t	list;
-
-	if(max_line_len<1)
-		max_line_len=2048;
-
-	if(lp==NULL) {
-		if((list = strListInit())==NULL)
-			return(NULL);
-		lp=&list;
-	}
-
-	if(fp!=NULL) {
-		count=strListCount(*lp);
-		while(!feof(fp)) {
-			if(buf==NULL && (buf=(char*)malloc(max_line_len+1))==NULL)
-				return(NULL);
-			
-			if(fgets(buf,max_line_len+1,fp)==NULL)
-				break;
-			strListAppend(lp, buf, count++);
-		}
-	}
-	if(buf)
-		free(buf);
-
-	return(*lp);
-}
-
-size_t strListInsertFile(FILE* fp, str_list_t* lp, size_t index, size_t max_line_len)
-{
-	str_list_t	list;
-	size_t		count;
-
-	if((list=str_list_read_file(fp, NULL, max_line_len)) == NULL)
-		return(0);
-
-	count = strListInsertList(lp, list, index);
-
-	strListFree(&list);
-
-	return(count);
-}
-
-str_list_t strListReadFile(FILE* fp, str_list_t* lp, size_t max_line_len)
-{
-	return str_list_read_file(fp,lp,max_line_len);
-}
-
-size_t strListWriteFile(FILE* fp, const str_list_t list, const char* separator)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(fputs(list[i],fp)==EOF)
-			break;
-		if(separator!=NULL && fputs(separator,fp)==EOF)
-			break;
-	}
-	
-	return(i);
-}
-
-char* strListJoin(const str_list_t list, char* buf, size_t buflen, const char* separator)
-{
-	size_t		i;
-
-	if(buflen < 1)
-		return NULL;
-
-	*buf = '\0';
-
-	if(list == NULL)
-		return buf;
-
-	if(separator == NULL)
-		separator = ", ";
-
-	for(i = 0; list[i] != NULL; i++) {
-		if(strlen(buf) + strlen(separator) + strlen(list[i]) >= buflen)
-			break;
-		if(i > 0)
-			strcat(buf, separator);
-		strcat(buf, list[i]);
-	}
-	return buf;
-}
-
-size_t strListBlockLength(char* block)
-{
-	char*	p=block;
-	size_t	str_len;
-	size_t	block_len=0;
-
-	if(block==NULL)
-		return(0);
-
-	/* calculate total block length */
-	while((str_len=strlen(p))!=0) {
-		block_len+=(str_len + 1);
-		p+=(str_len + 1);
-	}
-	/* block must be double-NULL terminated */
-	if(!block_len)
-		block_len=1;
-	block_len++;
-
-	return(block_len);
-}
-
-char* strListCopyBlock(char* block)
-{
-	char*	p;
-	size_t	block_len;
-	
-	if((block_len=strListBlockLength(block))==0)
-		return(NULL);
-
-	if((p=(char*)malloc(block_len))==NULL)
-		return(NULL);
-	memcpy(p, block, block_len);
-	return(p);
-}
-
-char* strListAppendBlock(char* block, str_list_t list)
-{
-	char*	p;
-	size_t	str_len;
-	size_t	block_len;	
-	size_t	i;
-
-	if((block_len=strListBlockLength(block))!=0)
-		block_len--;	/* Over-write existing NULL terminator */
-
-	for(i=0; list != NULL && list[i] != NULL; i++) {
-		str_len=strlen(list[i]);
-		if(str_len==0)
-			continue;	/* can't include empty strings in block */
-		if((p=(char*)realloc(block, block_len + str_len + 1))==NULL) {
-			FREE_AND_NULL(block);
-			return(block);
-		}
-		block=p;
-		strcpy(block + block_len, list[i]);
-		block_len += (str_len + 1);
-	}
-
-	/* block must be double-NULL terminated */
-	if(!block_len)
-		block_len=1;
-	block_len++;
-	if((p=(char*)realloc(block, block_len))==NULL) {
-		FREE_AND_NULL(block);
-		return(block);
-	}
-	block=p;
-	memset(block + (block_len-2), 0, 2);
-
-	return(block);
-}
-
-char* strListCreateBlock(str_list_t list)
-{
-	return(strListAppendBlock(NULL,list));
-}
-
-void strListFreeBlock(char* block)
-{
-	if(block!=NULL)
-		free(block);	/* this must be done here for Windows-DLL reasons */
-}
-
-int strListTruncateTrailingWhitespaces(str_list_t list)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		truncsp(list[i]);
-	}
-	return i;
-}
-
-int strListTruncateTrailingLineEndings(str_list_t list)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		truncnl(list[i]);
-	}
-	return i;
-}
-
-/* Truncate strings in list at first occurrence of any char in 'set' */
-int strListTruncateStrings(str_list_t list, const char* set)
-{
-	size_t		i;
-	char*		p;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		p=strpbrk(list[i], set);
-		if(p!=NULL && *p!=0)
-			*p=0;
-	}
-	return i;
-}
-
-/* Strip chars in 'set' from strings in list */
-int strListStripStrings(str_list_t list, const char* set)
-{
-	size_t		i;
-	char*		o;
-	char*		p;
-
-	if(list == NULL)
-		return 0;
-
-	for(i = 0; list[i] != NULL; i++) {
-		for(o = p = list[i]; (*p != '\0'); p++) {
-			if(strchr(set, *p) == NULL)
-				*(o++) = *p;
-		}
-		*o = '\0';
-	}
-	return i;
-}
-
-/* Remove duplicate strings from list, return the new list length */
-int strListDedupe(str_list_t* list, BOOL case_sensitive)
-{
-	size_t		i,j;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; (*list)[i] != NULL; i++) {
-		for(j = i + 1; (*list)[j] != NULL; ) {
-			if((case_sensitive && strcmp((*list)[i], (*list)[j]) == 0)
-				|| (!case_sensitive && stricmp((*list)[i], (*list)[j]) == 0))
-				strListDelete(list, j);
-			else
-				j++;
-		}
-	}
-	return i;
-}
-
-int strListDeleteBlanks(str_list_t* list)
-{
-	size_t		i;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; (*list)[i] != NULL; ) {
-		if((*list)[i][0] == '\0')
-			strListDelete(list, i);
-		else
-			i++;
-	}
-	return i;
-}
-
-int strListFastDeleteBlanks(str_list_t list)
-{
-	size_t		i;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; list[i] != NULL; ) {
-		if(list[i][0] == '\0')
-			strListFastDelete(list, i);
-		else
-			i++;
-	}
-	return i;
-}
diff --git a/xpdev/str_list.h b/xpdev/str_list.h
deleted file mode 100644
index a5994b3..0000000
--- a/xpdev/str_list.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Functions to deal with NULL-terminated string lists */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _STR_LIST_H
-#define _STR_LIST_H
-
-#include <stdio.h>			/* FILE */
-#include <stddef.h>         /* size_t */
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define STR_LIST_LAST_INDEX	(~0)
-
-typedef char** str_list_t;
-
-/* Returns an allocated and terminated string list */
-DLLEXPORT str_list_t	strListInit(void);
-
-/* Frees the strings in the list (and the list itself) */
-DLLEXPORT void			strListFree(str_list_t*);
-
-/* Frees the strings in the list */
-DLLEXPORT void			strListFreeStrings(str_list_t);
-
-/* Adds a string to the end of a string list (see strListPush) */
-/* Pass a pointer to a string list, the string to add (append) */
-/* The string to add is duplicated (using strdup) and the duplicate is added to the list */
-/* If you already know the index of the last string, pass it, otherwise pass STR_LIST_LAST_INDEX */
-/* Returns the updated list or NULL on error */
-DLLEXPORT char*			strListAppend(str_list_t*, const char* str, size_t index);
-
-/* Append a string list onto another string list */
-DLLEXPORT size_t		strListAppendList(str_list_t*, const str_list_t append_list);
-
-/* Append a malloc'd formatted string to the end of the list */
-DLLEXPORT char*			strListAppendFormat(str_list_t* list, const char* format, ...);
-
-/* Inserts a string into the list at a specific index */
-/* Pass a pointer to a string list, the string to add (insert) */
-/* The string to add is duplicated (using strdup) and the duplicate is added to the list */
-DLLEXPORT char*			strListInsert(str_list_t*, const char* str, size_t index);
-
-/* Insert a string list into another string list */
-DLLEXPORT size_t		strListInsertList(str_list_t*, const str_list_t append_list, size_t index);
-
-/* Insert a malloc'd formatted string into the list */
-DLLEXPORT char*			strListInsertFormat(str_list_t* list, size_t index, const char* format, ...);
-
-/* Remove a string at a specific index */
-DLLEXPORT char*			strListRemove(str_list_t*, size_t index);
-DLLEXPORT char*			strListFastRemove(str_list_t, size_t index);
-
-/* Remove and free a string at a specific index */
-DLLEXPORT BOOL			strListDelete(str_list_t*, size_t index);
-DLLEXPORT BOOL			strListFastDelete(str_list_t, size_t index);
-
-/* Replace a string at a specific index */
-DLLEXPORT char*			strListReplace(const str_list_t, size_t index, const char* str);
-
-/* Return a single-string representation of the entire string list, joined with the specified separator */
-DLLEXPORT char*			strListJoin(const str_list_t, char* buf, size_t buflen, const char* separator);
-
-/* Call a modification callback function for each string in a list */
-/* and replace each string with the result of the modification callback. */
-/* If the modification callback function returns NULL, the string is not modified. */
-/* If the modification callback function returns the same string item pointer it was passed, the string is not realloc'd. */
-/* If the modification callback function needs to expand the string item (make it bigger), it must return a new valid pointer */
-/* (possibly, the cbdata, a global array or a static automatic variable). Since the new pointer is not free'd here, it should */
-/* not be dynamically allocated by the callback function. */
-/* Returns the number of modified strings (normally, the list count unless there was a failure) */
-DLLEXPORT size_t		strListModifyEach(const str_list_t list, char*(modify(size_t index, char* str, void*)), void* cbdata);
-
-/* Swap the strings at index1 and index2 */
-DLLEXPORT BOOL			strListSwap(const str_list_t, size_t index1, size_t index2);
-
-/* Convenience macros for pushing, popping strings (LIFO stack) */
-#define		strListPush(list, str)	strListAppend(list, str, STR_LIST_LAST_INDEX)
-#define		strListPop(list)		strListRemove(list, STR_LIST_LAST_INDEX)
-
-/* Add to an existing or new string list by splitting specified string (str) */
-/* into multiple strings, separated by one of the delimit characters */
-DLLEXPORT str_list_t	strListSplit(str_list_t*, char* str, const char* delimit);
-
-/* Same as above, but copies str to temporary heap buffer first */
-DLLEXPORT str_list_t	strListSplitCopy(str_list_t*, const char* str, const char* delimit);
-
-/* Merge 2 string lists (no copying of string data) */
-DLLEXPORT size_t		strListMerge(str_list_t*, str_list_t append_list);
-
-/* Create a single delimited string from the specified list */
-/* If buf is NULL, the buf is malloc'd and should be freed using strListFreeBlock() */
-/* Note: maxlen includes '\0' terminator */
-DLLEXPORT char*			strListCombine(str_list_t, char* buf, size_t maxlen, const char* delimit);
-
-/* Count the number of strings in the list and returns the count */
-DLLEXPORT size_t		strListCount(const str_list_t);
-DLLEXPORT BOOL			strListIsEmpty(const str_list_t);
-
-/* Returns the index of the specified str (by ptr compare) or -1 if not found */
-DLLEXPORT int			strListIndexOf(const str_list_t, const char* str);
-/* Returns the index of the specified str (by string compare) or -1 if not found */
-DLLEXPORT int			strListFind(const str_list_t, const char* str, BOOL case_sensitive);
-
-/* Sort the strings in the string list */
-DLLEXPORT void			strListSortAlpha(str_list_t);
-DLLEXPORT void			strListSortAlphaReverse(str_list_t);
-
-/* Case-sensitive sorting */
-DLLEXPORT void			strListSortAlphaCase(str_list_t);
-DLLEXPORT void			strListSortAlphaCaseReverse(str_list_t);
-
-/* Create/Copy/Append/Free NULL-terminated string block */
-/* (e.g. for environment variable blocks) */
-DLLEXPORT char*			strListCreateBlock(str_list_t);
-DLLEXPORT char*			strListCopyBlock(char* block);
-DLLEXPORT char*			strListAppendBlock(char* block, str_list_t);
-DLLEXPORT size_t		strListBlockLength(char* block);
-DLLEXPORT void			strListFreeBlock(char*);
-
-/* Duplicates a list */
-DLLEXPORT str_list_t	strListDup(str_list_t list);
-
-/* Compares two lists */
-DLLEXPORT int			strListCmp(str_list_t list1, str_list_t list2);
-
-/* Modifies strings in list (returns count of items in list) */
-DLLEXPORT int			strListTruncateTrailingWhitespaces(str_list_t);
-DLLEXPORT int			strListTruncateTrailingLineEndings(str_list_t);
-/* Truncate strings in list at first occurrence of any char in 'set' */
-DLLEXPORT int			strListTruncateStrings(str_list_t, const char* set);
-/* Remove all occurrences of chars in set from string in list */
-DLLEXPORT int			strListStripStrings(str_list_t, const char* set);
-/* Remove duplicate strings from list, return the new list length */
-DLLEXPORT int			strListDedupe(str_list_t*, BOOL case_sensitive);
-/* Remove blank strings from list, return the new list length */
-DLLEXPORT int			strListDeleteBlanks(str_list_t*);
-DLLEXPORT int			strListFastDeleteBlanks(str_list_t);
-
-/************/
-/* File I/O */
-/************/
-
-/* Read lines from file appending each line (with '\n' char) to string list */
-/* Pass NULL list to have list allocated for you */
-DLLEXPORT str_list_t	strListReadFile(FILE*, str_list_t*, size_t max_line_len);
-DLLEXPORT size_t		strListInsertFile(FILE*, str_list_t*, size_t index, size_t max_line_len);
-
-/* Write to file (fp) each string in the list, optionally separated by separator (e.g. "\n") */
-DLLEXPORT size_t		strListWriteFile(FILE*, const str_list_t, const char* separator);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/strwrap.c b/xpdev/strwrap.c
deleted file mode 100644
index 00fff9a..0000000
--- a/xpdev/strwrap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if !defined _MSC_VER && !defined __BORLANDC__
-char* itoa(int val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%o",val);
-			break;
-		case 10:
-			sprintf(str,"%u",val);
-			break;
-		case 16:
-			sprintf(str,"%x",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-
-char* ltoa(long val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%lo",val);
-			break;
-		case 10:
-			sprintf(str,"%lu",val);
-			break;
-		case 16:
-			sprintf(str,"%lx",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-#endif
-
-#if defined(_WIN32) && !defined(_MSC_VER)
-/* From FreeBSD */
-size_t
-strnlen(const char *s, size_t maxlen)
-{
-	size_t len;
-
-	for (len = 0; len < maxlen; len++, s++) {
-		if (!*s)
-			break;
-	}
-	return (len);
-}
-#endif
-
-#ifdef _WIN32
-/* From FreeBSD */
-char *
-strndup(const char *str, size_t maxlen)
-{
-	char *copy;
-	size_t len;
-
-	len = strnlen(str, maxlen);
-	copy = malloc(len + 1);
-	if (copy != NULL) {
-		(void)memcpy(copy, str, len);
-		copy[len] = '\0';
-	}
-
-	return copy;
-}
-#endif
diff --git a/xpdev/strwrap.h b/xpdev/strwrap.h
deleted file mode 100644
index e52986f..0000000
--- a/xpdev/strwrap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _STRWRAP_H_
-#define _STRWRAP_H_
-
-#include <string.h>
-
-#if !defined _MSC_VER && !defined __BORLANDC__
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-char* itoa(int val, char* str, int radix);
-char* ltoa(long val, char* str, int radix);
-#if defined(__cplusplus)
-}
-#endif
-
-#define strset(x,y)	memset(x, y, strlen(x))
-
-#endif
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-char *strndup(const char *str, size_t maxlen);
-size_t strnlen(const char *s, size_t maxlen);
-
-#if defined(__cplusplus)
-}
-#endif
-#endif
-
-#endif
diff --git a/xpdev/threadwrap.c b/xpdev/threadwrap.c
deleted file mode 100644
index 782ee30..0000000
--- a/xpdev/threadwrap.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/* threadwrap.c */
-
-/* Thread-related cross-platform development wrappers */
-
-/* $Id: threadwrap.c,v 1.37 2019/02/18 04:04:11 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__unix__)
-	#include <unistd.h>	/* _POSIX_THREADS */
-	#include <sys/param.h>	/* BSD */
-#endif
-
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-	#define _WIN32_WINNT 0x0400	/* Needed for TryEnterCriticalSection */
-#endif
-
-#include "genwrap.h"	/* SLEEP() */
-#include "threadwrap.h"
-
-/****************************************************************************/
-/* Wrapper for Win32 create/begin thread function							*/
-/* Uses POSIX threads														*/
-/****************************************************************************/
-#if defined(__unix__)
-#if defined(_POSIX_THREADS)
-ulong _beginthread(void( *start_address )( void * )
-		,unsigned stack_size, void *arglist)
-{
-	pthread_t	thread;
-	pthread_attr_t attr;
-	size_t		default_stack;
-
-	(void)stack_size;
-
-	pthread_attr_init(&attr);     /* initialize attribute structure */
-
-	/* set thread attributes to PTHREAD_CREATE_DETACHED which will ensure
-	   that thread resources are freed on exit() */
-	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-
-	/* Default stack size in BSD is too small for JS stuff */
-	/* Force to at least 256k */
-#define XPDEV_MIN_THREAD_STACK_SIZE	(256*1024)
-	if(stack_size==0 && pthread_attr_getstacksize(&attr, &default_stack)==0 
-			&& default_stack < XPDEV_MIN_THREAD_STACK_SIZE)
-		stack_size=XPDEV_MIN_THREAD_STACK_SIZE;
-
-	if(stack_size!=0)
-		pthread_attr_setstacksize(&attr, stack_size);
-
-	if(pthread_create(&thread
-#if defined(__BORLANDC__) /* a (hopefully temporary) work-around */
-			,NULL
-#else
-			,&attr	/* default attributes */
-#endif
-			/* POSIX defines this arg as "void *(*start_address)" */
-			,(void * (*)(void *)) start_address
-			,arglist)==0) {
-		pthread_attr_destroy(&attr);
-		return((ulong) thread /* thread handle */);
-	}
-
-	pthread_attr_destroy(&attr);
-	return(-1);	/* error */
-}
-#else
-
-#error "Need _beginthread implementation for non-POSIX thread library."
-
-#endif
-
-#endif	/* __unix__ */
-
-/****************************************************************************/
-/* Wrappers for POSIX thread (pthread) mutexes								*/
-/****************************************************************************/
-pthread_mutex_t pthread_mutex_initializer_np(BOOL recursive)
-{
-	pthread_mutex_t	mutex;
-#if defined(_POSIX_THREADS)
-	pthread_mutexattr_t attr;
-	pthread_mutexattr_init(&attr);
-	if(recursive)
-#if defined(__linux__) && defined(PTHREAD_MUTEX_RECURSIVE_NP) && !defined(__USE_UNIX98)
-		pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE_NP);
-#else
-		pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
-#endif
-	pthread_mutex_init(&mutex, &attr);
-#else	/* Assumes recursive (e.g. Windows) */
-	(void)recursive;
-	pthread_mutex_init(&mutex,NULL);
-#endif
-	return(mutex);
-}
-
-#if !defined(_POSIX_THREADS)
-
-int pthread_once(pthread_once_t *oc, void (*init)(void))
-{
-	if (oc == NULL || init == NULL)
-		return EINVAL;
-	switch(InterlockedCompareExchange(&(oc->state), 1, 0)) {
-		case 0:	// Never called
-			init();
-			InterlockedIncrement(&(oc->state));
-			return 0;
-		case 1:	// In init function
-			/* We may not need to use InterlockedCompareExchange() here,
-			 * but I hate marking things as volatile, and hate tight loops
-			 * testing things that aren't marked volatile.
-			 */
-			while(InterlockedCompareExchange(&(oc->state), 1, 0) != 2)
-				SLEEP(1);
-			return 0;
-		case 2:	// Done.
-			return 0;
-	}
-	return EINVAL;
-}
-
-int pthread_mutex_init(pthread_mutex_t* mutex, void* attr)
-{
-	(void)attr;
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return ((((*mutex)=CreateMutex(/* security */NULL, /* owned */FALSE, /* name */NULL))==NULL) ? -1 : 0);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	InitializeCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosCreateMutexSem(/* name */NULL, mutex, /* attr */0, /* owned */0);
-#endif
-}
-
-int pthread_mutex_lock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (WaitForSingleObject(*mutex, INFINITE)==WAIT_OBJECT_0 ? 0 : EBUSY);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	EnterCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosRequestMutexSem(*mutex, -1 /* SEM_INDEFINITE_WAIT */);
-#endif
-}
-
-int pthread_mutex_trylock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (WaitForSingleObject(*mutex, 0)==WAIT_OBJECT_0 ? 0 : EBUSY);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	/* TryEnterCriticalSection only available on NT4+ :-( */
-	return (TryEnterCriticalSection(mutex) ? 0 : EBUSY);
-#elif defined(__OS2__)
-	return DosRequestMutexSem(*mutex, 0 /* SEM_IMMEDIATE_RETURN */);
-#endif
-}
-
-int pthread_mutex_unlock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (ReleaseMutex(*mutex) ? 0 : GetLastError());
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	LeaveCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosReleaseMutexSem(*mutex);
-#endif
-}
-
-int pthread_mutex_destroy(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (CloseHandle(*mutex) ? 0 : GetLastError());
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	DeleteCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosCloseMutexSem(*mutex);
-#endif
-}
-
-#endif	/* POSIX thread mutexes */
-
-/************************************************************************/
-/* Protected (thread-safe) Integers (e.g. atomic/interlocked variables) */
-/************************************************************************/
-
-#if __STDC_NO_ATOMICS__
-void protected_int32_init(protected_int32_t* prot, int32_t value)
-{
-	prot->value = value;
-	pthread_mutex_init(&prot->mutex,NULL);
-}
-
-void protected_int64_init(protected_int64_t* prot, int64_t value)
-{
-	prot->value = value;
-	pthread_mutex_init(&prot->mutex,NULL);
-}
-
-int32_t protected_int32_adjust(protected_int32_t* i, int32_t adjustment)
-{
-	int32_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint32_t protected_uint32_adjust(protected_uint32_t* i, int32_t adjustment)
-{
-	uint32_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int64_t protected_int64_adjust(protected_int64_t* i, int64_t adjustment)
-{
-	int64_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint64_t protected_uint64_adjust(protected_uint64_t* i, int64_t adjustment)
-{
-	uint64_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int32_t protected_int32_set(protected_int32_t* i, int32_t val)
-{
-	int32_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint32_t protected_uint32_set(protected_uint32_t* i, uint32_t val)
-{
-	uint32_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int64_t protected_int64_set(protected_int64_t* i, int64_t val)
-{
-	int64_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint64_t protected_uint64_set(protected_uint64_t* i, uint64_t val)
-{
-	uint64_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-#endif
diff --git a/xpdev/threadwrap.h b/xpdev/threadwrap.h
deleted file mode 100644
index 29638b5..0000000
--- a/xpdev/threadwrap.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/* Thread-related cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _THREADWRAP_H
-#define _THREADWRAP_H
-
-#include "gen_defs.h"	/* HANDLE */
-#include "wrapdll.h"	/* DLLEXPORT and */
-
-#if !__STDC_NO_ATOMICS__
-	#if defined __GNUC__ && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)) && !defined(__llvm__) && !defined(__INTEL_COMPILER)
-		#define __STDC_NO_ATOMICS__ 1
-	#elif defined __BORLANDC__ || defined _MSC_VER
-		#define __STDC_NO_ATOMICS__ 1
-	#endif
-#endif
-#if !__STDC_NO_ATOMICS__
-#include <stdbool.h>
-#ifdef __cplusplus
-#include <atomic>
-#else
-#include <stdatomic.h>
-#endif
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__unix__)
-
-	#include <sys/param.h>
-	#include <pthread.h>	/* POSIX threads and mutexes */
-	#include <unistd.h>	/* _POSIX_THREADS definition on FreeBSD (at least) */
-
-	/* Win32 thread API wrappers */
-	ulong _beginthread(void( *start_address )( void * )
-			,unsigned stack_size, void *arglist);
-
-	#define GetCurrentThreadId()		pthread_self()
-
-#elif defined(_WIN32)	
-
-	#include <process.h>	/* _beginthread */
-	#include <limits.h>		/* INT_MAX */
-	#include <errno.h>		/* EAGAIN and EBUSY */
-
-	/* POSIX threads */
-	typedef DWORD pthread_t;
-	#define pthread_self()				GetCurrentThreadId()
-	#define pthread_equal(t1,t2)		((t1)==(t2))
-
-	/* POSIX mutexes */
-	#ifdef PTHREAD_MUTEX_AS_WIN32_MUTEX	/* Much slower/heavier than critical sections */
-
-		typedef HANDLE pthread_mutex_t;
-
-	#else	/* Implemented as Win32 Critical Sections */
-
-		typedef CRITICAL_SECTION pthread_mutex_t;
-
-	#endif
-
-#elif defined(__OS2__)
-
-	/* POSIX mutexes */
-	typedef TID pthread_t;
-	typedef HEV pthread_mutex_t;
-
-#else
-
-	#error "Need thread wrappers."
-
-#endif
-
-/****************************************************************************/
-/* Wrappers for POSIX thread (pthread) mutexes								*/
-/****************************************************************************/
-
-pthread_mutex_t pthread_mutex_initializer_np(BOOL recursive);
-
-#if defined(_POSIX_THREADS)
-
-#if defined (__FreeBSD__) || defined (__OpenBSD__)
- #include <pthread_np.h>
- #define	SetThreadName(c)	pthread_set_name_np(pthread_self(),c)
-#elif defined(__GLIBC__)
- #include <features.h>
- #if (__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 12))
-  #define	SetThreadName(c)	pthread_setname_np(pthread_self(),c)
- #else
-  #define SetThreadName(c)
- #endif
-#else
- #define SetThreadName(c)
-#endif
-
-#else
-
-DLLEXPORT int pthread_mutex_init(pthread_mutex_t*, void* attr);
-DLLEXPORT int pthread_mutex_lock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_trylock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_unlock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_destroy(pthread_mutex_t*);
-
-#define SetThreadName(c)
-
-// A structure in case we need to add an event or something...
-typedef struct {
-	long	state;
-} pthread_once_t;
-
-#define PTHREAD_ONCE_INIT	{0};
-DLLEXPORT int pthread_once(pthread_once_t *oc, void (*init)(void));
-
-#endif
-
-#if !defined(PTHREAD_MUTEX_INITIALIZER_NP)
-	#define PTHREAD_MUTEX_INITIALIZER_NP			pthread_mutex_initializer_np(/* recursive: */FALSE)
-#endif
-#if !defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
-	#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP	pthread_mutex_initializer_np(/* recursive: */TRUE)
-#endif
-
-/************************************************************************/
-/* Protected (thread-safe) Integers (e.g. atomic/interlocked variables) */
-/************************************************************************/
-/* Use of these types and functions is not as fast as your compiler or  */
-/* platform-specific functions (e.g. InterlockedIncrement on Windows or */
-/* atomic_add_int on FreeBSD) but they have the advantage of always		*/
-/* working and being thread-safe on all platforms that support pthread	*/
-/* mutexes.																*/
-/************************************************************************/
-#if !__STDC_NO_ATOMICS__
-#ifdef __cplusplus
-typedef std::atomic<int32_t> protected_int32_t;
-typedef std::atomic<uint32_t> protected_uint32_t;
-typedef std::atomic<int64_t> protected_int64_t;
-typedef std::atomic<uint64_t> protected_uint64_t;
-#define protected_int32_init(pval, val) std::atomic_store<int32_t>(pval, val)
-#define protected_uint32_init(pval, val) std::atomic_store<uint32_t>(pval, val)
-#define protected_int64_init(pval, val) std::atomic_store<int64_t>(pval, val)
-#define protected_uint64_init(pval, val) std::atomic_store<uint64_t>(pval, val)
-
-#define protected_int32_set(pval, val) std::atomic_store<int32_t>(pval, val)
-#define protected_uint32_set(pval, val) std::atomic_store<uint32_t>(pval, val)
-#define protected_int64_set(pval, val) std::atomic_store<int64_t>(pval, val)
-#define protected_uint64_(pval, val) std::atomic_store<uint64_t>(pval, val)
-
-#define protected_int32_adjust(pval, adj) std::atomic_fetch_add<int32_t>(pval, adj)
-#define protected_uint32_adjust(pval, adj) std::atomic_fetch_add<uint32_t>(pval, adj)
-#define protected_int64_adjust(pval, adj) std::atomic_fetch_add<int64_t>(pval, adj)
-#define protected_uint64_adjust(pval, adj) std::atomic_fetch_add<uint64_t>(pval, adj)
-
-#define protected_int32_adjust_fetch(pval, adj) (std::atomic_fetch_add<int32_t>(pval, adj) + adj)
-#define protected_uint32_adjust_fetch(pval, adj) (std::atomic_fetch_add<uint32_t>(pval, adj) + adj)
-#define protected_int64_adjust_fetch(pval, adj) (std::atomic_fetch_add<int64_t>(pval, adj) + adj)
-#define protected_uint64_adjust_fetch(pval, adj) (std::atomic_fetch_add<uint64_t>(pval, adj) + adj)
-
-#define protected_int32_value(val) std::atomic_load<int32_t>(&val)
-#define protected_uint32_value(val) std::atomic_load<uint32_t>(&val)
-#define protected_int64_value(val) std::atomic_load<int64_t>(&val)
-#define protected_uint64_value(val) std::atomic_load<uint64_t>(&val)
-#else
-typedef _Atomic(int32_t) protected_int32_t;
-typedef _Atomic(uint32_t) protected_uint32_t;
-typedef _Atomic(int64_t) protected_int64_t;
-typedef _Atomic(uint64_t) protected_uint64_t;
-
-#define protected_int32_init(pval, val) atomic_init(pval, val)
-#define protected_uint32_init(pval, val) atomic_init(pval, val)
-#define protected_int64_init(pval, val) atomic_init(pval, val)
-#define protected_uint64_init(pval, val) atomic_init(pval, val)
-
-#define protected_int32_set(pval, val) atomic_init(pval, val)
-#define protected_uint32_set(pval, val) atomic_init(pval, val)
-#define protected_int64_set(pval, val) atomic_init(pval, val)
-#define protected_uint64_set(pval, val) atomic_init(pval, val)
-
-#define protected_int32_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_uint32_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_int64_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_uint64_adjust(pval, adj) atomic_fetch_add(pval, adj)
-
-#define protected_int32_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_uint32_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_int64_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_uint64_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-
-#define protected_int32_value(val) atomic_load(&val)
-#define protected_uint32_value(val) atomic_load(&val)
-#define protected_int64_value(val) atomic_load(&val)
-#define protected_uint64_value(val) atomic_load(&val)
-#endif
-
-#define protected_int32_destroy(i)
-#define protected_uint32_destroy(i)
-#define protected_int64_destroy(i)
-#define protected_uint64_destroy(i)
-#else
-typedef struct {
-	int32_t				value;
-	pthread_mutex_t		mutex;
-} protected_int32_t;
-
-typedef struct {
-	uint32_t			value;
-	pthread_mutex_t		mutex;
-} protected_uint32_t;
-
-typedef struct {
-	int64_t				value;
-	pthread_mutex_t		mutex;
-} protected_int64_t;
-
-typedef struct {
-	uint64_t			value;
-	pthread_mutex_t		mutex;
-} protected_uint64_t;
-
-#define protected_uint32_init(i, val)	protected_int32_init((protected_int32_t*)i, val)
-#define protected_uint64_init(i, val)	protected_int64_init((protected_int64_t*)i, val)
-/* Return 0 on success, non-zero on failure (see pthread_mutex_destroy): */
-#define protected_int32_destroy(i)	pthread_mutex_destroy(&(i).mutex)
-#define protected_uint32_destroy	protected_int32_destroy	
-#define protected_int64_destroy		protected_int32_destroy	
-#define protected_uint64_destroy	protected_int32_destroy	
-#define protected_int32_value(i)		protected_int32_adjust(&(i),0)
-#define protected_uint32_value(i)		protected_uint32_adjust(&(i),0)
-#define protected_int64_value(i)		protected_int64_adjust(&(i),0)
-#define protected_uint64_value(i)		protected_uint64_adjust(&(i),0)
-
-#define protected_int32_adjust_fetch(a, b)	protected_int32_adjust(a, b)
-#define protected_uint32_adjust_fetch(a, b)	protected_uint32_adjust(a, b)
-#define protected_int64_adjust_fetch(a, b)	protected_int64_adjust(a, b)
-#define protected_uint64_adjust_fetch(a, b)	protected_uint64_adjust(a, b)
-
-/* Return 0 on success, non-zero on failure (see pthread_mutex_init): */
-DLLEXPORT void protected_int32_init(protected_int32_t*,	int32_t value);
-DLLEXPORT void protected_int64_init(protected_int64_t*,	int64_t value);
-
-/* Return new value: */
-DLLEXPORT int32_t protected_int32_adjust(protected_int32_t*, int32_t adjustment);
-DLLEXPORT int32_t protected_int32_set(protected_int32_t*, int32_t val);
-DLLEXPORT uint32_t protected_uint32_adjust(protected_uint32_t*, int32_t adjustment);
-DLLEXPORT uint32_t protected_uint32_set(protected_uint32_t*, uint32_t val);
-DLLEXPORT int64_t protected_int64_adjust(protected_int64_t*, int64_t adjustment);
-DLLEXPORT int64_t protected_int64_set(protected_int64_t*, int64_t val);
-DLLEXPORT uint64_t protected_uint64_adjust(protected_uint64_t*, int64_t adjustment);
-DLLEXPORT uint64_t protected_uint64_set(protected_uint64_t*, uint64_t adjustment);
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#include "semwrap.h"
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/tutorial.doc b/xpdev/tutorial.doc
deleted file mode 100644
index 4f13c2ba0b02db75f708b131a98fe53d7a6c0118..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 183296
zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;>-*T42g_T0RaYvWJU%C5cl8z|NlXvaf}QM
z@r(=%35*O3|3|@)2!S_C4>I^FaI!Ek{1Dm?ibMtm0WihFz;I*|0|OsJQdUydBil!|
zU{Mr;lSPa{HGz?#A)En>kMyBPV{rce=ZA~oV#5^VfEgFq!4w0C24N5nA1wk>0L4$B
zdJnln1hCO(7#JA(JQx^am>3vf>a%__F#KR-VEE?6z`(=Kz`zs)(T|VLV_{$@2xDNV
zVPs%<6VAYJfPsPG<qrl1CI$wE*FPZoiJ?^(7#Na%GcYJHF)%d!Wnj3#z`(%&lYv1L
zVgw2a3x_okD8g_Kx_e>jU^K{Fkm4t)Ad&$b#vm5VT$p~47zo4oDnA(*#26SDVEWK$
zkoj#K2=ie2(9H#f56D~?hM5E76H9~a1F40X2Qo*A4dFhv90mqEHU<XmM+^*dtO$3(
z+yl}}4(@#i(FOD0D^Pl2U|=xF%(V#kdyo;7p6=N*Fu>BCQ6d9_9y0@j=W_;z3W!!P
z2{I>!i-E!FCj)~40|Nsn{edJ7K4)M!!^Xf6^bf>iU`R+|U}#}P@Im@OG9dqgX=r)}
z*$d*s{D+HXVz|k`z~Gc$l#`g3qTrmLmzG+TnwOlaU}Rumq@b%1P?V~hj1UbeEy*v+
zOw6%T;B_v_FD}+C$Vn_o%P-1Ra7iso&B-swP0cG&D9<d(P;l0F*4E~As#FNdPf`dj
z&&*3n&B@^{%1?4AuFOl$D9YE%OD*B$5mpHCcUFkWS5Pw4HC9rH$xw)?QV`)4R`7@n
za1HYD^z&AT$x%>>56MrqG&V6burN|mU=%Ur^e;;-D$7hQ=M+{5aCCPKa&=QcQUfxF
zQN&nO6pum1V1x7wIm0s&OB6DT6%rK!puVxkYN|0YrkX%ZHG-QOkY7}in3R*M5S(9H
zl$@&IoS%}4-Fy>b%r}LYZ_F8<Q3(rl1=P5}Zn`NkrkjCGH{wJ!4`vNGZi7pT5=&Ck
zGgFJPhLIV>78AT7Zw|Ia&ydqMGrcIWBr`t`t6Ap6m}LPm%ZM{1u_!&YBr`8vAyFZ?
zBrz`~u_#3$s5DQvBr`Wv!6!4RD6yzgK_gW!T~EQ$FW6H@A;3S_GeQ%q)fU89Z3(qn
z&yX{;7-TWXSbfi6e}w(uOaQeUSCCl}VV9)=%q}CSU0}y6IO8|l(g0$%DZc2iG=!LK
z%o$penUh%s@<}3El2UL?DlREXOa{f3f=^;)Y7w?zvowTQXNK20a0WKgGuAWY^h+%%
zPEIUHRe)!bpwc{Wd};Uv2Lxe_8%rZ%ECFY3kR?W(@WRa}LP5hhKer%14^&9OQbbyQ
z5xQrQ$};RufR+U2c>M`32|!LT<_s*s8eGr}Z-LhsaE3S1GeL<RSV5)Wnp>I!&Ovx$
z1)B5mTLa1YdM0{?oNh(=xeB3qnH35p`3m8gc`5njSTnmNG_&J37@FBl^o$?|yZ8r#
z%mtZ`HBg|r-V$%1Ky$r`o-xEws4MXr49(N{4Tk1vQ>4%?$w*ZQhE!R3sU->#0WPj#
z&}>(U)d$cFjn5)O189ae)idOTRt(AcDXCb@Gc<r^VnYKwL1JhC&BdmAMx5@cdF4fk
z1y~J(W>Er$LG!4oo-wC$K5oOHS&@KY(7b4>XTs@{S%lMN&`d?ZFleqa)idRE%gjl|
zX&N+d85-gZG-&2B)idJ^&QH$9X&N*O5ikv!hfMX%IYTmvQWH~fng`7}1k8hG9aB9E
z&hVndf|Ar?Y~_fd0W`}P8sYUTIL{d4tJ^(`i%YTA>xKr<%tOEmaP9#W?4YPo2(BzH
zNzKJpbQl^y^9X+P48fViSkH*lu_!qsvm`aSq_haT0}WxB1YgU;&=8zSjKQfow;(eo
zwFs;03}KlBzhU4^VytJv=~SATlcErkpPz%>I9N8pR}C8)g0qRSo++neK|xMtGNe=o
zwa7EmOL4Z63=Lt~2EXCpY-6lv#_5t;mYIwr3}JZ&zfs^kW5OAnpHm8I4q*2(EW_Yy
z3K$xKGYqK8ajnQK2Djbtn+nS|_)P_88&G}YoS&DH336j%jsmFS&xBN!*vdsiSRTS}
zG&m2L=o#r5a{3pff?_2v9h%M+d=rz4^09{oEcf6y9GrVVh8uB0T$@^i&rnzv!q*Bh
zGy-QKkfFvXnFx=;MzE{|GFX&{7uM6_4avwXRw#k?02RtJb8-}t^UG3;6hMvNoK)Rn
zNCyWL3P>G8P`@%avm!M`H#r}Y=M++q`ii9>%?j`~nzpu%f_G(3W`%+?hzZgRs(;=6
zLZLC3TBP8dpOcdcX^Lv3Cnsy_DPVC~VoFL;YH_hbVo_>hu|j^DLS|k`YEf!&i2|s>
zmy}<Up#U-%)^LD2DYZx;H@^(j0xro{@X5?8tx$kD0m4J5%S$Z>H8-FJ=qd1G=|=Lp
z<rjgiDJU%}$S+O>xuXO*6m=9572sXy%wmO<)U?dJ)D(rpVui%KN`>V7+@#DrNJ)^N
zX2r{!4^MQ(;KG$R5vgG0O#+ugsd;6YMfrK4-Wo5jYeiyiK~Aayy2fHFSj$d9qd2uJ
zwJ0%1AuT7dEWfB&QwNkd{DXDCUI(?)6f|-{u7SzxDIm;6w!c^*GcP%(G$qwa!85NU
zHAkVs!c0fOH@_smC_g7r!OX&2M<F1;JhdpmSx3RwGXQFXV~{V%#E^_s1q=@;B<JT9
zXBL-$V-OTykPa0rCFy_z*IA(m*3HX-b@PHkd^8nuGV`)iQy{|;mHDMb3ZNzyL=RZ1
zNI?TcC#I(=q^4w+<QHi|{0y?FpeR2pHMv9~zepiBF*`LaGbgoJ0Ya7*r>20SKC!eU
zKR2-?73>Iz(+i67lT(X}^>}$5^C}f!W|V*i7)rqX(_)3((wve^tWlz)fD)QIAiE*P
zB1LI2XruxhDk-T&pp>G3mfxT$6cqh12k61mCcK{oZF7PLBX~U(Qt}n@@=Fv_^OEyR
zi$LK4$(EpiC`m2KRhV1=8^r(x;S@au&k}`<#A1b{)YLqM+)9Piih|UlOz^-F*t2Ds
zMJ1()IXRUIi8(n6u!12!1r%0^NLq6elTve1QxN7)(E<4{KQE_Jp`@rZr&0lKaY?>H
zqC#;&YI0^;X0k$YX;N`&2`E3ovQIHQ?ut^=@{2$=r7EC0eu_eJVjjq!NvR6pNK8yl
z234)8IhEi<l3!Y)keriP1hN5=>87FBU!IX#l&YhUT9KGsl2d7~z{?9twCHwZ7Auq%
zLp%?*q$FP<GcN^Hp+nu2k(ytWT9TQZn4?gTUy_<vk_pOu`9%teC?z8_^}zB5#2VDd
zo&pLiyp|Q0B$kwda}QR-6{dj-AZSug%`C}CEmFWps7N84U!;&(qL7lGTAVkj1fB|@
z8o`MH6kn++pro4#j%ScMUOZz}yq<Z<pdvaoMIkq_C_A-8A-@1*MrmGVNoH!XLQ<td
zaVb~?R4ON?z$<i6xtvxCY7oLp&|(E%S6B)zR>;jyDa}bNQb<WH&P>na^+?SrC<bNQ
z)CzD>oK%`#te{a2%9^=}l?q9zkQyR4vjh|+3i){o`FW{uqjeOZia^c!%$!PvqSS(-
z{FKt<OwiCCsE`09xzxmBkX%Y?QfYcRC=~J(67%vwp{mIn3Mu~K*&jKdqU7%km_xHu
zQwzXFmO?RfJgXR7hvsA^=9TdB5H&~#N})xmpjuD?R?LG2av&pkpwLLp$OlzSX`nuT
zc}8j;sKhNxEdn>j67v*NVGT1-HJy`+81IFqPLL6a3aF`40VbDUqyRP&5(D7)Qvg+)
zIFy6kP@G(pSdyHf#|s}DgtR-LuC7$b%qz>!DN8L@NK8u1OUcgz84FDz;Hn)|X2D$z
zNz3q91lMQ~F_5-Iuxnt+8(iL^7b?)U1;TdFFmZZ*eu_eJMt){;szPQOxcE;lEh<XQ
zE78v{%1qD91LbV!P%<coCMFew8q1(!CM7j71>_2SXu}{iEiJ#O1Qd!eKV+6DWacU0
z3{yl2mQ`9@l9`s7nxd!R32_80+(FH>d{Bzc1&^;nYb$6o4IUUe;36MV(4)l&a@s6O
zP0q;6EG$he2G^W<paLMX7_1k=k;wX>j?v>KcVLzm>Z`oe)D&<D2Cl-P#ww(NDi+X0
zLuMW%0ul=nlQMH4g+_iFsIGu!8U<|a15oKvmReM)kd|5wORvQWDfyZpPiBHE*+d0!
zJj0_Nq$M@47}Nt*NL0wkOwUlr0X1a7l@Pdk1X*7RN-?Plxrv#1Aaj#)Qggv|ivqaa
z2R959MH#6IIhnbcC8;S2MTvRo;MQSUVlv1SP{~(NlwX#al9~c80&)5!GqqTcm&oB~
zUcY>BQcFq&<?=Le?F0%!h4P|IaE1pBU?Ykc<a!%a3wfp~ROXk06{mt&MaT*iAPEUv
zbAyZlkAuU?Ed^&#h2X5MtpIDFA^B4ytuznZnlA<^O3q0vE=~nCLc!6Uh}0J@&d4v#
zNdYyAL0xx9sDj$1AnU-Q;DQm%0(I>{*$mV&1Qq3=LIIY~p%ok?U_lbF)+9^=WX1sM
zQjo{N7Qp8ez{v?bNDWbf6j$Jsn3kWDlV1)hUtk_f%*iaNwBqG;&PW7}p{IiCBv3D0
z!BgK~K?Blg2CD}*GC}DK)WFNnNiEhy(gPANE-3;j%uUS8EPxLD>Vur0Sd>|upU3N)
znwt-r<j6=(EYJisz49T$2)w?DB^jx?iQq;DZ*XRMUSdu$uM4Q{3NjVs8D8+<e+g`c
zq_8-@s6><3B{MNSFTc1XGr3qn0~9eupzd_BCND2qm}qN*f*NEHG>UPD3Q`@89zc#c
z>G?&OB^kNJyr7^dE-6Y)%q`}1tw>HS09mY%k(if~lbM&!>ztogl9-v7T2!o{QCOM^
zE}e=~ONw<AKrQ;z6onj6uR%v4wIo?jlb6>czZ}%b0cGw~@a&I*GdQ+ENfMq&5zz^4
z4ntxF(rQCWuz9JVHa=)J3DlK@mfN6c0VO6x?3Yv)q=L&Wq%>S?#mnnnlvt1fZv7!e
zy?dyqCU0<lX<mwc38>wXo|*?9UI0ZZsKcOJ0v=FIP2mM~t%`J^9Su-o&n?XZH7+yr
z^NM->QcKG7i?Y#$!NYNo9-~4^W>IQ#2`HIB`-C8U-l;`-sX4m2pcZ;TQGR++Vs0+T
zN08~V6!4glLP}9)S!z+SCNC(><d!C9DCFiBrMB|&x|F7ZYA}%ZVFg-VBDiIi52={Y
z5(_-&;UNx*n6kv;5{2BvEKnM#1Qn~uAqN?7C`v6X%`8e)K#C4<vmq}(PZw+pT2~NM
zJSy<=dgdv>k{!e<uv$cx2F+C?C0tOCPa(0mxHK1>>_BY|P~QOL!DO_01|$Y)QNSx!
zJq1v=KNZsR)`7JU&=i3i(coGXnt(u6KD>MYrG99rL!uy2p(M4U1QJ2e!a)<%Cd~tf
z6UY%@AHmZyq@N54-%8}r0ySeZ63bE*^70i@)6zg)T!;+?MVWaeX_|Tp(AorJf{_;@
z0-7k#Q}A?kbyY}9%mp=f^V1LwR2_xvy!`S!aLNER$8sT^z+!O82=9GjjGciKby{L_
zDoBq4X!NVJB(+Gv6)}`itOuE|1+}MAQb8#(MIkr8xFn}i0h|EJ5{okPON$jiDHN0y
zK*<LbEa34AXiCpZSAb*!NF5DptLZ3|fYvnVmKLY#z<r`nP@0sJS)7rY0&0#KT3VPX
zl!HcPlA-<D<is3M#}yO~x}FgV8X$%`+<K7hAe%My6p)IZ%wn(^MTrHODLIu2$r+$p
zA3T%*4ca^fa0v=3RzPkqPEF3wOHlyF3^+F?<`jcElL{c`XzKCudX`KoR>;f+^_LR!
zz*T!*K6pGLu>=uXi3-Vx0W;LN0@v2X`MKbxM|nnOat3q+3LITXc`UIkF*66eiUHg<
z1y_M+)g-7Z4Dkj$5rT&TAVXS^1b`k7lZrtz*ok@RrJykf@CY3!5fm$EI0kqYYl7n1
z(7?c0&rm@F>~%=mN-TzWPR~%&iZ>WK66k29;FMUL3YoWb4DjUj%?FM3W#*)UOB-yZ
zo|OWqGp7S-(CC1M$nta)l5_Gw$sngVH8opDAuTVtBu7UfH#;S>NJpV47fdB*fGJQ#
zqoYuo2ch!|QuDyVATz;?G|)O1Jq5T6ovajsQWJ9^!IoN4lA2cxN~pY!Aa&rT0B>+=
zZel@3eo<<%f(AHlKq;XZAqZ}<fnxyD9Rsy6L3NR)0&h@iP9`{lK%L#hoMHuy+|)#H
z=LlRqf~AV!)<YHPfW}e4!(1i#;3x+d-=M?`N`ASC6`8rExe9ruxk;%-AkqBN5^&^#
z5+jCTnhLzWsl~;hm;_r{%o_q)c~O*_lL%_!!s_~B1&zGKy!_&v)YJk^c;Gl&LE=;a
zQqL9hLMG6Pk%ENRx3na+BDEM=4&~>;MleBrT&Ql)un>4)6x8VR%>;F8^3zIS3Kjf9
z6hJK~(CCc<q@sqTOGvtfBsE<_OG^VpF`$tL3K>wO>VT39B>KQzMb7|dq=HowoXkLD
zV#TSDk_a4@;9(?Ct?v&S(n4gT{5%D}5Z$Ci&`=_Jt|;b3ngJ>Xjaeyx6GKj7X<l-M
z0(d+D>R;pv5<?egqzhC`frpaAGxLm%6hPSutGdiw(412ys5s3p0uAToWF~`oIr*Rt
zD<}kwjTBsbd{A{m8%p2`B{3P46cs?@ba|Bud61R}D5ZcbRVW6v7ZQsV3Npd1B2eEU
zIXkrk&95lt<yFEu7?6GzbXcVbHXy{yi-=)RlLS7A0ItnJ&0<hD0Mx4k*R#<66eQ&I
z3_)$A0!WVmTbm&mR4O9UEVP#iPAGbY@Nr0R^nyoMpr(U+Yb6<}#i<HGAwI==@R<#$
zJZShJ2Q(5~gp{qorYgWK(@{t&Em0^g0Zp)gy1B&)X^BM&#TlT1g8VdyyHiV2F+7r-
zs>jO%F$=P|1=I!yl_21_=M9Doqk(H!uqr)6r1T5QFwnUSZ2o~}7f^IU#=S~Fi8=s0
z1XjZClbM{FSDeZoo|>dvoLQ2}&hA{9UY?o9?jGR7j=YplDWjyMz)D{qG9p~8SCpEP
zkyxUaoS&<o4A!9!T8l(bktjQRK)A6HyALk&3(Ad+^dOd`<rk%=g4P-$8;w;SWGb}y
z(JcpM7u@DUj7D*P0g6^+%LpqLWoHi!_w-|T&d<$FElSQz%)uIJ<>lpiMXAN9plJfV
z#1crj6_@LmfM%ZcOUpC!kgX*`wJ1BguXiwb<~lpGMBf!OMOILhS)59YOHvX`64UaN
zON+tL2TK+DCE5BZ#qlNCsVS*tdWppaND&Hh5s|t;E`t}};MQSg1u>4wg=qpisvNR-
z$;iOKKp)(?$gDsQA;KC!kwe15I9^8uP_=_R1B$eEE(f%B4%Dtm%mWq1pb?L>qQu-(
zaIX#AUV;}CpdvXHG>ro;WWYU1aODeH*9b4MK;<5K{ehgTLD?TZ<c!t@DTXwI9RobU
zQ(T}iJ%z-QlGNOSl44LX4rw#xR4Sx`7n!Ak9Gjb&o0$x5Dj>BE!NY9@iA5!u$>0%p
zbO(X#$t(s{y`ZI|l_2jYfo5XC%^8pjL4(53fjv-#oCsP%T$}-N1JucIFTe(IiuFK!
zUA&726;Rgx!b%=c8qCeF%FM}0)XOhQ*N0iFpI2N^gpoLKDinpx{SaEf2=Z!T9=K@<
ztIM3B{me=Q)aXV`1ncIdmX?4fWI-_l3LZ$O1v=UYit(Jxq-2Gh%<NP|r2z`#RB)04
z&p$!BEudDMFT@WD$vK&+c_oNGBh2agj{ZLSnE^S8d8sApplRn6XbYn_Kdq!Zu?W;R
zNJ|9`I~D6GfL3LK8l9kl$zphi7c{?>3Tpp?Cjdb%26e~XLp?zrhc1$U`T>z@zz!}(
z>B&RKTdY7~3u<veTmxHsmsthQ2)y9I3{WV*20J|U{b3_txrup+>EKKQX?!B_Ays0f
z0+JANjc8_~o0M4s_fj#hV@W<JsYBB;XpjV{H>v>YZi3p>#k`(*#U(|h@O;V}0GR?-
z0L^NF#;kaKGQp!7aEG~oW``6KGgFFrgE5EmctLdl$aguJd7x=~kP)B|2eqw017D6s
zsd<UTydH_5`~h)+YguYuNilCwYGR6hcu^*(<D8S9oLvkG##9C9%mgIrP|FlpL#h}w
z;h&jTl3$#mpb-$@tf>QS?`ec*=J|zyd6pHB7Os(jHcB5G)XN1oeZd(V)MQDmC`imp
z$;?X!$FM?DVsU0NEMXQymcoPl2bwZY26YTd@)e3w!Q<uN3{jp~smIF;YJP#|=3w22
zl6<HSKm|mq0xb0^L<Bhd`zmOlO@@I+5FpEZ{gc4`8{hnt)Ev<Cz5=4S1tnD2$Tw<{
ztplGtgk=IN1#Hb2oP|k60jNoXR`p>mb|5N6^>}&U%~!J4Df99=`$WJNU=)L<u|dP=
z;K5;VKol$F7o{iWWmbVp255H=(gy-H>XJbvbAC}~DyUfp>PS2LL}-ATurQOraSUox
zLrmih%LL7FgH?eRsFbBDfbu&+0a$%XVo9QIBDfGK1FHwkJCqdVLk6D{!MZ^cDLIu2
z#mR|~0S1U3NM8bB9H_Jhc`!URNdc+TgA|*fG=-!d930Te1h88Wa-i%4D!?Gs7-F;@
zKJ{Y7%j*aph6c^jD-`9ImSpCEy5x}Z2^3sT&Mum~PM|3d@EW7M6os_RyhPBx8JKFM
zfqT%LVsd^SY-EbpIVZCqDIZ*oLyabs=|RaEGQ<ye4M<BtPHF|T8&M4AgX2b_C^bD3
zJkgYyp9dZ&FUrpW2LX7aP7Z8Nz`3-j7&LK>C^B6VOA<j{Qt-@xK4>TkGy#y4pAOcY
z3+>#)eTZdP9$Ypfm9QXwUSck2J`7&|x#i?1f@hlw@-y>FKq&$mGGJTW0zyGTphUv!
zo|>PVT2fRAmMAI8OwZ4Q2*AeBi@~${3K^N8^3NkABtS<Y!q*3~5CoJ`f<b$Pl2eO$
zeVv?x!KQ@fWr9|)z)C(|-_%6Vj2@`?23ZSr36|=_H#M&mp)0?%I2Aq_fjotiQk0lJ
zDQ{9rQGS7bN`7*-Ca*7K_&yV~P7cxo<Mo3KsDPp)u>=$pyaAxWS0ojIB?|fqp!AMN
zH;9-I0?m8FhGmL*gFvH*aL4clmn4>e7E^+jm%yVc7(9~#O1a2FAU^U`5_Hf7xrzjh
ztw7fgKr51*O3>0gu;Wl`lVVWM(u$WC+}qTzurRX%DFm;LO)XL|;{`9EgNQ>`_!;vC
zmf&ooff7ItXzm%@kcam!3QN%2Xt))M^6~~kH+F&Mc|g6S>`ch|Kjb0=Y0?_Jq9rG_
zq!^`)fhqvaH9?!Bpt)!8JOxGrrx-dd37c$3wg}P>1h44OQvkaS-quHI{DC&gLE2I!
z;93(jo&s8FnVJV~6T%w6@RlEBauHPe>L`H9PEZC`fQ-fHAdSN4fETa9lL=&IOaU}#
z8(0Ewk*4M)Cl(ZgCKgj6)oe;;8hAq>*eT#H2towfGJ+4P7wbR^R#376wLFpi4x3a;
zEkX?-9nf$_Za$<l1gelhL5pEBq$L5ZXPiO70$$h&TCWCkFL;<fQ2|ue=BFu?r{?77
zLYAGRrsyc7m4cR{<%637x}aJv57h7gB?@Q_0g4YuSm?W?7H5~_7l8bdQkq->o8$mZ
zx`3t>LBpUR&mpQ#SlYBw;0-L%hmE0t7juG!SyNL$`9i@r7}TZ$ZKYALG}X7X(D!xK
zQSb{f(E;tWGys=P5dnH&BO(k9LH!1p^TFD|nMX$<I3Kh;tyo9FBS1GaLPx<f$TLDm
z!4X7&>Ob%@P008lxLpQrrRJ3sL(KI}OvW%5G}4#~YW^ws2P;JADeyXhR>mg7$05KD
zODjrERe-gG6mlSgJ&+iHk7(+_b_s&ANpfNyXn`Gg;1RU0Ehh&WY`I8%I?&WTEH&#X
zI4Xep3`iD3i(-(*z!H6En1Dh)1>9#S$w!RQf+7+*cY|6YNQti)G`0l}Ku9|Bc5wwQ
z3IoS7(#k7P*nl!m3P?G`O3-8&Qr92Xt}EVfG8RsO+S{NxKh$ls(C(-Xbd^nhT1hHo
zeG9n53|>Z*nV$y=MQEp72gC*i3wTDMM4=$RxEQo14KmFMo8p45d4P9sKwboC0(ZQj
zE0r{gVJoRYQ+%*|37T61XXsSuG9Yk@04-^QtSW;qwSu_~RB$AgfJd#9QWZdp+0sgL
zK$D=LwIivy1v&Yko-eq!0NzPjsmF_L!x?WdD9u49cZ3zd`+I{@(=5!54Gk?#6=I4Y
zy8w;!K+sTBM*)kP3<X9J@JJ`fyU>g&s>cf%n}kxJScmq|p$phk6x{tnb)l&|1u~(8
zluUGBi!>n%NP<#R6g(13bilb3YKH=3Dh<+H1g%tq7qA+TQBFg>l$;z*$N)fMGN`%%
zjSGXbEF@Y%aSRzMf>aTp7y!*}lq5n{i-MJchX<f*XTY@p*bSfp)Yu5znXRxegC}(8
z;%!iNg1S<Vmp3#IwEC<xFR>&wr&0&BrUx8v;Ms=KV#vaW^yFkvS^zD%DT4Jcplhlj
z0SQYG3Pq{Kpteq4x<YD2YH}&Ks|P71Aj!Bm2ekMb<m)`hx<F9-IUTexDlab;v^YDr
z0J4D>Eet>loWec*ctJy?;OGLC%>_l7sU@H_7zK&R*`PTmNSH%{3moRTsh|ng%;H>d
zuz(j*gMtxMP8OBsfv3j6!H8Z`5FLP!nk+4~96ZOLm{+L-ozg8<fG-izQvkafw2B|p
zxdIQZ!^=#t!%|a9A&Ybpb3ijpkkMU86E?LhF{czf=%G+h3f@2f%3MYHrRm_!3z<a<
z<*7*upaFM1(40AR=onEzgX&YT^`P=NDODjq3A|<|1u|oft3#V!l9QR23~F{MDTuh|
z<R>NOD1@XYXXNGQ<b(EoEBKV8=;<hU<|XTif`$ZfnNyxwP?Qfc1~xJ+5)Kjp?+qvd
z)#dqli8-Qr3V!*pp)qjFJhK=Sy`cVC3Mhq!d-^Gqg3I94Vg=|zV^GP3nEJ^t0%cgp
zc?0m2S`0~H@K}eYd0j{YE)|-sp`~rH9xrT=3AVu#)b7RH^$A-~0Z(P<EnraM0&V&$
z0M&w^;7?R21}%Y5&;U*8B!iaOB`4-+f~H-eEfq)-%u9jH<{%H<LMAwkjo^iLv7Q3%
zLeav|2&qss#V8QL@}L3{yv_@}$r}`m=>CRnY!wBk&6L!V#LS#xXbFw9bC(yyM#(tf
zv71uRcpkJwDu$#okR{3ad71f$G7!84KRvZ1IYURGpcG6c7nFk5ZY6`4I;24wr<#xz
zKcMBGpgIn0HoS|DFdQ6!$)!cbsm1zv5E^b(W?pegYGMkg+Rubcq$Z^*BqnEMrk16q
zKvyh+90(du1-Vf#5tQ*jjru%TnnW@lw9+C6Jh%wSllf_&o)UZk4#bzp1DyVOsS3%7
zWvPiJR^YLQ^wbj2DjslwSx^dL!)N`#MFVKc7M`Y3Q=kD4O}wB`06B*jHc}Mk?1S7<
zDF)3Ef>uaE)^~zdaYL5=I{QT6Njhfc7A8nZ$5_uuR0lq7>Fg5$soLO4ffu?A6f)<F
zv_f11)PM_f_R$3OMc|EHq(lO)U&=E<1DE;Gtv-+}0`e5Jg#xLBK#P>hp(|Q4^U6|-
zOES|zixoj}h1Bqdl>DF(E7(M&V}K`?$;j}`ywse`BzADm6!)YaXf&@pGcPrx5L{}Z
zjou;2h_Zu>O3@Ex_jPk7W>zYxD6_aEKL>0qXilmWy%US6K$M*wGQ_6fo0ypwo|#9i
zU7(RvP+J{r8JZtZ<WT0dKp~5(EI=;{QO8PQ%^~m*3ao$xwIK5pK-066Qb8+r;T!hy
z(-fRxSqoHHW~3&jq!xkurl7hlu>@B5gJKml2n<R{kcA8I9xu2(4^A_Xm22@ysp*+{
zkm*-V1@O=@tTcs}MUcW2)cu0U!)MaK<{&aHQcDqfR!DkIeiCSDW-fR}Ul+au36XIj
zt|%@k$|)}bEg&n(OwKKUmSMcSo+Ypn2joG}!hrOA(E1!m<HuQ{pePl#niD)42MS$q
z<po->3UAJXi{nIv+|0bp+{7GENt6iMoR+6hkXi&DM*@vKf>&<9T3!li`S~T_@)T73
zf%{AtE6YK%JH@H#MX8|N1?oYA1{+FCK*MaA$&fK{@PKeS<Uj$1Y4F%lm<(B=nllBt
z%7V0bL9Hy%GMl_~Q27X7s0^9S0S&`KhB84tm%LO3h&kYC4vnPL)B;T%1@PJ+9nhlq
zlziAY7m_+q8Jz+uq*14qK*<SYI%v^{LMEtX3tI4;pQp#03^~F8#rdHAe11;q6ot&Z
zf>KZ~AHMD$R3?E_1*kI$ZVIP?*5!hh0fLKoy$nzyaq$m^_w`}D*kUUMaJ8lZnJURn
z%E&Cy(A48ift-4PVn1YZHNU75IRLE`K&cHJ*RV1lW;XP=8j!a^>&)~)^J6KQMPRkQ
z!OoB{DF)XaNErp>7f`JOiW0bu$bkb*<lv2snN_Je3ZTAzN@j6(aY14-Xs;V+{WQqy
zI7X;)6G3fvJzkIjpoR~MA3<y4z*!sFk2(s7nc|#Euzx_VE6zv+ZD$0TQ>>s-4AQCz
z3TJRkfTFf2H95a1MFBLk1yZj8V(6FVfhbLID1fRTSj`Aa2gQ24#n5vdP+SHQOf8wB
zkPF_k4VwN2nF%Tc!!z?hCqaP5m>`Q-Cp)DUW#^=V)*^uyEKLTtF%wHbooqc`NU4M2
zbBHjqx54{ujg1tL3oB4IMs84mVhikF4M^bt>AOPADu$#fh!A{9Ah;=!3tAV4W)^rb
z7F2eEiaZ6Vc@W=f>VX!TgN~vCwYQPk;LcxCDmV?~R4Sz8m*?f=C#IyPSn)y^1-pd=
zpv{D(f!FhZ+8TPGb&Sw+z4Q@viGD=^XeCHhCU_+X3CcyGc7kHXIV>19>j)aA2aWkc
zm+~qkmSCNlOD-!$aS*5`L=zL`hOX)=E=q>D5_xfa8o0?;oRm}y+Uu8J4B8)DX~oT*
zTvn{0o1$P<P@Gy+mRe+$n3tbdnVVl)?0{yxm40$raZ!GLi9Xm6Q0FO+TLZLfOCck(
zM4>3Pq_ijxv<XY0AhEc(9F(|0`>J4@3p5qTw<|d#H8~r!Vjb=?Ug()H;JO^C(go+7
z63~|PT+nvOR0R!aS+AF&i74zrQGjT7fs+wrp)mM#1yEHT;NuwL<{#u6@8TNltS}8U
z?2ufP30^%98gc*`0O@+cdo$pYM?p_vGPqSXMMq&Wc!+Katl|V26y)jT8t?4y8{p~V
z8l+KNQlzOc4KlF~?%_i#nUvJx<f6<ZSPpguXHZZr03KW}$N{aD18;Kz&qRUB64=-x
zbY&}~0-x;U?5tp_XJ#-(lQ-DM)ippPH!~+E6S4@q7-Tba4Fh;hWpQaSXp|mgDToiE
zAsH1MqR>`CY6^6E4ipB+rh)TqQECoo!)RW*LMCXzO=fPYZZT-s3DnMq1XyvlLUD3N
zYD#HNY7ws!$Vq9S4G^h$$(1?^DWI*(nfZAjmq9DhRE0zZ@b;0!5=iQWY?lTNLBsTc
zod+@<;Y650pm{6>WLIkPf<ibsw*c(i;*z2~P|HR^16)SIi&*gDR88LEJaA(p4Xm~d
z&eK42)X{Z-(;{?I1XS)rot6pRx|<3~VyVUG>#4w%9H_Yo?uLO&IxAk@+{|LoqG*hA
zFdwu#p{TT=NCVWe05{U0tfJI15DSzbN^?r`6E!q>GxJI~D+=O^z%y(bpy|mxO$E+r
zu*L^C)j=d-5u21+QV!Y#4;jMG(>3Hx&PXiM;><6Oho&+OumEWFlO`wO)C-+u1J#SD
z&6~_T1xOzZoN*xe23)xNg(!rj78Qer3{CY63=}lLQ*H`IhL)z9Q#3&nz@X|0vWpg)
z$>HM{;Fv@Y&-^q6q}C0h#S3jR!CFl4wslEm0cblDsK!VIZJ!6PFaQ<PnfZDdR=nUq
zg|vmr@-tI36*xJkK}$c-lCwPBs??%<&;W6EY9**-1gnR%qrmEsm1pMWrlw?qx`Lp%
z&Pmk;g>7OoXvs@<Y9(Y+9o(Sfg`PA8PGfk>J80vK#PZJ3$H&dn$2AzdfgY4g^3p-o
z1ZZ_;9%x1voc+o(b5fE)^ZW&%Wpzd1IT7%7k6h3eXNAe2kw#F$F9x+jLA(DETeBd8
z{@994J%!0ydRkL7d7T`cy@P!mgFV1*Km-IRnn2^knC?j|C@9J=C<2FHL1GDLvj=#Q
zI;aB%-H!~l5q$;@n&u|POaf<8aFGqp=o9rJBA|q%$?NOw;u!=gq7!p+z`Y&N@C4jS
z<l+<5)Pby!0w36jXq$p2H!@Petwv}K&+F{r>+eFmsi0jokm5KMw4AXhGpV!$vJnrp
z*aL+;X#5gkH>iH#bqn?J32+Png(|3EC&C-xr5)f%PgDReSIR6)RRD)CWR53K0k#1g
zEDBkcg|FPxfThV~q&gTqm!{<xftqD`nHAtp1GLWp>OX**@EYL8Gqe){+c5#Iu)yUY
zwD+K)2^w++jYy<qg2h2)A$SK2m=BI?MEUK^3yNj50v1%W#TOUkWR`$@tO42?nwJ7j
z{fGtwIHaMmpNO;=7T$%n;^lSn_xIsUO9dS_04^{Uv_QH*m6RqYr!Ks_2nh;x1(g-)
znPsVY&{P7c<RF9SkOK>fd2{mf(mB&|QuESFGLXyz#W0F_5EUR#fUE*<rw5y=qo8XD
zvIjIE2k!pyf|kR?mvE+~B$lM&GZ7>YUONLa6yyg?qriU6ECz)!DBD83is3YvS3zcg
zBq38D@YD*aXB0ToQ%ll7(qK1ffm0ZY58>LuGkKt6Ez)4y7gAHe%3%d=T4G5_5!4u%
zE)=6c@`&7o8ekwN@Rovu9ps{-)Kqvc5^5wUeP|*@B}iTY+|5)#%!p*>p*s$=ga~&9
zhBR^m9)V7UoM8g$K7!*BwCoL9m!^WclSmRpso<pz$&h)xM6hyryEVT^50X#u)*YZw
z0=bP)<pFM^fM*hQ6u>K}vq1$Etg{NrbckFQ6yk&Ez(Z@#<c#9Xs#I`$BrQcp0Tjv#
zAQ4SSIxk7h$$?60LR^ivbb-4XU-1Inxr>yE;q^VJ>_+ZvgG&W?;|}U%a1S0F^9ovN
zc{-rORp6^qK<z4Ue;?|8kb@u@5#b9*@Ww~*2?*dVj!6Av@H!MwS&qwbpn4VAf#_}n
zjTt~~f(B+melf&}IjMP&Rv=_#0iP;fkP}gz0bZ?@2RR1`xp0G(9ho_)ASTpQ(5NEh
z%t@5S8L0k-tuz4-KP4(4CqfO-*aa-nfzv!}hb6dQRt)Mrl;&lofo9oLK_dX*;S5k3
zLmkKfjc|ZH4LY(5lpLWWADP9ukmL%QZ~=FlQ1wBE@!;d9sYOMwVM|DR9nvKPR~>K@
zphoLK7np%uPq<+Q=}v*vqGT_yFLlvt!~8VpkT15O5%2~yP^tyDTc8;mZx%ta8#$9C
zLM=hH9aPYR(gE0X)Bzq?BGBXIft}#V>j<3^1Wg6$mnG(8rhxk~px!oU-#utQD&(wB
z@KIQhAywEZW{6=G=sC2|0eA4iHPGfm@EJ_teHA77pb-;LI)I#53)^N63I~vD5t#=z
z#0cuggI1b?y3XwW!R(NJ1SoStnV<pD#Jm)Cc38>ftgQ{22{ATe_l2I3#tzy#&(4l0
z&Y+VRSXAbLlq%#FC)*mbvx5)#V+W4_fY=}@u*K;h7EIc$C^gk7*ae#cBp2yJR~O<k
zO(7{6Y$Z4af|3{LTvh0N6w*2m_&7sxX%ei`g>9$<g<pPY325M01G1_N+!#hId(Z^e
zCeRHwNCs3Yfa*!eq6pCF8)(cOy|I*El$%&$#mmcS11q=e^lb8r?euKGv)OjMpyftI
zpd(zM$0<T4TN0C!ic-r!ZTl2>Ee7fnLJM-ls0g$zpPrno0}2Wqh1}w@WKA7~eCVk+
zkl_?;LpL~j1>khA134~HM*$j1ptbgSDbQeroqq<Nl?SaI0{a;nf}nVYga{~Di@=LW
zKv@cOU|CXWI@AczGBQx>Iu*3Z8ypaN3edw1LFqOrIav?v4n4@IN-A%9a<U#cJ?Vk>
zjq-wg2~`3SfE2p0=?|o!0-LUY;<{8&KMAx<2GSisJGL!3IWr|SuLOM50cbZks5FHp
z3y9}HCPEgTB9>1=dRm|}6G4+Mpm|i-%nfM11{9~DV`L!qfeKRaCM!s<7dC+gN<m0N
zmf+**P}bgn@;az81O+TK|AS_PLHkdUwz?>QrdyLBr!RtbUX^5kh7ObS^U`uMlS}mQ
z-ShxCF&MHX2YTEuFKE^qn&@&td+^giOBO+cTzR1M3>r9x%|pS)PLM_$plvl!2tqmx
zkm?59!~h-31nC!pLKWIOgyu0sX$Cs@1vK~oTIvD`J+Lc4Wmi7@NG6D>h$U;_W6D6C
zbkKnxdFh}!6dGO%;G;s(Q$G4KU+6*-JzmiEAJCak>`sZv*}BC!plv!D6ZI!)f?L`O
zDd2<z8m<5h_2!p=+l1ipN>I4ur0TJ=!%o0ucgrs-Pb^A7F(k7X;vR5#fa-MQpo0Z(
zPO2Vg00&$oL3@ChXJCPfGME=Zop{jM7HDqNV`qnZ2W%m7u)~gw1SL)I!7vIrpw$ha
z^LP>!K<i#XSs2N6lN6i-^nDdFQj0Q664O&Pk$vg{IeijT)Z;jH1>7$L?=H(P0xuLr
z5=es_OoOn0vZEDfIN2FQg3tc}&0m3fAK<bV*;mlLR=VK5R>kF+CCM47pwk;c$qybV
zlOYlc;5-iMAr?(Rc0A}@zlpjN6*NFyMQ}`mavdnSCFZ4|nhcJXNgxYAo9YxmHsDkX
zN)(_IM?vTEfrf`sLQh8_0~{Ejd<}|#{4@pF&<x0*h-3yTUchOg%t#M1LJ2yIp-4{w
z)T;sq2U2$nI`o3#bnw(Vc&%J!o&w05pmF3((2jsSg;db?OHfe3SK5KXmIsz*6xczF
zgg~tvNM#7il%NxuK+DThi*i9{+rpYQ$%#cpnThGCx{!$xeNdd}rlo@WsF|Q-Wl&*|
zqN89?VUVb!0A4~gIi@HkZ;GZKBoh&B5!~Qn&~iP<fn1;^1v!<-(FzKnVo+%WI*vCp
zPhm3He9!?&Q$YPlq?8R=rUYIN196c8^k7)%peVRgPy||VUXrgcF(z*kcy=Fjm_!O>
z))sUWm@a6rI1wTP-IE4B)(^CzAABMksC)pGo8aBE&`3yu99jYm-uygJOv5LoL2d>w
zJFEmv<fl#n7YESu6+kwCmL{Quc(H=U#F(N<nxMiDl+%m#6u|46L5e}K3|?`al3!W^
zSy~MCNlCr})XxxK7K5r$P~BAuJ{lJq0?;)IkOMK1LQapJ-7mi+l^uLkONeuTzGnca
z6<m^^oDVv{1RTl1zMx$_0saBTItp$eCL~9LhUUP14BW{EbYLnpfq|kN(rZku0L{Fm
zCl;mTfOc*{>!}P-J%wJz!(0bFDi>VYf{I*FWe(c!1v(HIdL$hv5Bj+2qT8qgj!%?z
z9H2!H3Yp+j1i@{f^rF;6aQibe4{Sg92*XMR4Wv*)SzrTN<_<s60-6jI(82(;j@ubL
zC|L|%){8C;p5_H_hX)OSKvuDW%XjET7tqv-0>mN>kcT0wcT@5~Wi}#ngE9!D1Ocrg
zNlq+I)hz}cX;T6k{mjn;XG-J@<pgT6f)8^B-M*3!S^}I{0#3RRQ$WkZGeGqnIG{80
zK&!<-r-XnmP0~|<RuRyY1m0Kxwh}4X<wM2;A*SUQfh#l60UW6cX*sDCpy_&0#szOG
zg&)lZO6L#_AdiB|&SH?g;E{@g63{W+;MoLNQgBKI?_~r<7$`@8d&j|vxk-r%;Nc9&
zU=z4~n^BomlnF^Cy6}b!xH(b@4*uN4;%vC*6~JDBg<fU}_~d9%E20=wpavA>gV+k}
z;jrlh@D5v8Rs$tR(2=3gEuG+qEY3*H$x+ZqEJ{xXXZysW^fI(k39|VPstIf$=%`6}
zcxZy_DzIi)69QT<fO05kGje`WF>LV>=qxe#TnE@JkmHae-w{?GfC@{<oCsVUcw7^H
zz7(VsL$Nri5>#b?hs?ks4zen-D7{!OKPgK=1KRV`1P$dEgO-G+mq8@peNfbN>j6t+
zpl%YV=!JI4pp(G*DXC@pd8IiypeBT0sLvEg89mu2AjEKrCU}u1IHQ8c`ynw4t3s2J
ze5}9@Y8NCUT|fY8ok1@k067)I5TubzP@@2{gA0`RL8r`u(<n+}0LL@zECEns4qCKB
zr}jYmQB%?~i;7G1(=zi?@<8Ptay1QWWh$^kddrEhbInrnQ{fA+6%z9l($bQ0vXMd=
zbLazPKB`TS18hLPNCLMBp@(QgsxMGk30cJg8jA&ufosARGiiW&p+&IijLbAdVgXN>
zfwCN^*_@i1lA3}N7_cM?O1`ju0jz-vYvfJ_)nlo;pb@nx;G9>iqfiVwQyi=bJQoFP
ziUh}dh6j0uxPsC*cv?9>50pq#!N=ugmVwUkMOPo>>gZB~MIR^!Bf=V5iWPxO0F{8C
z&H7*$K^z3G&|t+tDtI>^iZ?+;E|QyyA-mlmMJ=Ql2L&l~CMY>0H$O!~6BZ1x9SNWV
z`yj&^pcClwi@+0BsSw?MA)sAbMaWj5Bxy9~W3j9N)Tk>i2DJjxauU<QgORWl30l~Q
zbSg@Deo;<}etJ=UX@P!eF=+2=YI122sPHRJ1#gN41s$Tgae?nd#N5dOE-k<r0^ABi
z^s(XdZm^@wAfwEX@l8;?gYy+wJGkuEQ$RT=5|T_|!>fr3plQK)U&jc@vN6yupB(TA
zD|i|nlD|Rg{y`}`QNh<S0;C?Q7L*yl27wYWsM(I{B2Z@u<N}C$ph*^-$dM9HDx`e@
z*_H!74hnRL%4C>HApHsu4^DyYREExN<m7-G8;~IfP>UM6<qOgc2D=NiMLW4DADjfi
zqspMYC(r|mL2d?_t`7?`1#qnhYAAx24nZu{V`t|<xu*v-PL&693CIliDK4M`jNsS#
zK++zl)0mf@lM1R{KqodJ4k`hK7NUD!0I3a&!Gji{g`}xg@J_b^J0g|jf(`<Lo|2kh
zq%awDIv;4QVsSC(_5#@T6d>DRl^LiRGubDzq$DR*!8I=>Gcj+9jsoluy^;*j3cwQ3
zA@5*c=q6Q`Ku(NL2Ss^io<c6<?A^&Z5ED|tX95%zmrMbb_CCQ*3L2o*J|*D3G5CUk
zyb=YFA)ukcqT&)gTo+}48Ya1*_Gyr3Fle<f_<{*g<qLMNQ)W6Pj!nu;S3q^CFUX}}
z`#_y|Yz{>XQ9vp=@PIrxr$ZWJ;KoQQI9N*Z6_P<kOfu+d2~ddUfg0UOkoy^mK~a*I
zt^mG526|i^D6EP>SB!$kixi;!7f>e%QbK};#!?laU4_Z817JYGsE}Wjl3E155CM{&
z!I!8Yf(M+*!DBhF=?qZ7LMJ8^it|BhJHb;Tpd<m>eFW;RmZgFwb3kX(f(kEi-T-$M
zO7dYltHDtSu^XZRybuRebb)&|phj<EQ7UK$BzTAk>@-kTD9r<%{RnncaY<1r_+l%C
zq|6fCw9M3;6iB`VA3zIIjCAh>)T>~nU>}1j2uGw_5fJymfR>4aFZ2TKxC8kCbSNKa
z_z!$Ed{JsK=oo#_05oU<DAfvbF$rQRI>Ze~i5)am4OwafS?^M;paDLZ3$~Rj6LLO}
zrXKhx3eY4%F?0ndqCiFzl8MR5`K5U!kfIp8Zy6NCNcBS|*zKTMIgtB6!GKZ_V9)iS
zUQK#x5jc3tGgC@3iqQ_^1r13c904k+4b8xNC80V&Bh;WXL&0OopfMQmzDH<SfN~+Y
znn5)Iy4w<F0!oz`l$urqItm_qMlEDj@8rz9k|_$=sg>X*pQU-=jwmSV!43vBG(aOs
zNV!i>0o0a+t3WKs0(E0jQq#cQ4rnff?s$TZ@jFF^xauf``v<w`D7ZkV%)AmqGf=3O
z7#o3?TB5d&LE!_<7-+Q`q{X9vGOi77j_dh5d4Y2$sPa+(Z$kz(0AL}B7GSuI$;W00
zN?<ysfLG6gdOVP>6}Z%a93%v;;E)$MAvqM}Fi1iJB_T*H2w#T^%0K~-N(C}vh3tLk
z^cvV@#R}loMWTY9kEat@1Y|D4!_f8s*uU8IB_b&X_pHIAYmoYHa!zK_6wp!s;6gMH
zv>yT#Gf<bY<Bk`Qb3v01plS$2LyUtQ3Jl!{2kIVZfLsk8+W}n(109$_s86ZPOU#9d
zg4cYb=ymb&fsL~v(msaG@OC9QU4X(Gr?Hg^8hXX~pt>(76}$#|GKz~U!38;Vd;`?h
zM>K;-N(9L90E#UlQvtlK>5O)iXl^2?jiR3d+KT{Qg;<%Jl%E6bL4sCj!gZD>RzjyH
zz?CVe^Ng5&0A+Ge@PPOJz^cJCh0?r~)S}{K@cF+b`3lbPbs!K6^g!pSfSI6uHR+&p
z@IeM8D!|WT2Nzg5sTH6)3_NB48nXix^PmxM(C(oM<ZIYqlNRU|x^h8LVtOv<)-=eb
zY*0}SuBkxD1+q~)7h`N2)EG?8&jYW_&&V%VC`Jw$P*VjGbl{tTAUPIZ6+vZCG9qjq
zS^?@9v{h%2`NGUR(1lESB{`MgIRVfDC(wy#sAUFd4JoK_$ZZ9!=K_r~B`4;A>_Q%>
zhDRGBb%QfIqUK6U%}6ZE1hu=s6?rD;;G$g6Fm}EI*t@Vw98y)ls`sK)1yFMavLY7J
zLexX;V<2omSPiO{5aRG|J0$T!0~s9q@TP-4*g^%+Uii$sbkG)?6wnE5;8+8<o)U91
z)4^B5q1A`*K@zZ1=vWFk8G&LQGF34d76%~Xryxf(NB~qbmuG<LOz<2&s0Rri=Te9V
z$%2+WLt8iS)nh2}1MO4dnEN3$Xh9WaGVVc_L~vpNEq(;K8dQFP1_eNDcu0aPQ*dY&
zL#I|jSCQp|8m8bn9MlDZ#BmDvRs>K}57A47C0pp`XGA2HrRJr85)W$Bf=UIvISG;`
z!0SWw*x3Uh)f8yQDYRJvb`qv7XlWN(j)KN@k*_iUw;w@0PZVbqB!bQ(ElDi``HWDp
zn~VtSoJvsCgK`?`qF>mo8Yr~kW<y)dpk6Vk9E4WM5Z|U2!G>GG`#({OU<Jrz9B3gv
z_!fxFBGB1!(A#mWcy-}tRe*OT@apD62j?o0=ks}WJ>kNzYau|bWytM?&}h#us^r!6
z!KMyYsX(ebusRpW+9%NdivsY?V31BFr1OuMMn&$R!aNJw-T;~dP(VZ@Qqu+0=g3Vg
zDOS*M_IGpBQE>Hf(^2sEbpy2x5RnrM+rx?MOVHdOXnYqu+mC28!dwk%6o6J9fU^X$
zjj)M-kbVU`l?Ec!BYNEkPl47HpeFW|)U?FX9MH)yIpD$z(a-^%90fl;7IYUM=s2C!
z3Q&0t%A2r7RM1QX9c)k0M`~Q?LiVXa+bp1oJm}gGtSgZ~kp*%JxcLZ5fAaD1#U&}=
zIVBJQvJ~MuP!xbpKG%h~2(+07z7!Ht@WF~r&^bg<UxJN}k55iXP0m3n??5FKq^%A<
zH3T*+R|%dNf-I?ptlWcFk~mxhayK;Jz!q?UYBk8BE%05$ys$-C3dNOqC5aWF#sau&
z0nIK78lVyzlrLc(0BJx|42n_E++$9vCMd!|Lo?vEFQf*B-8~2?-k_N!GZ`{w4w*NC
zISy2Uf+jgL^Yh?|kvAB;Neo=gfHy`!XHFq&QBojwpc;eF3p%<g6T0df<(g#3GIh{u
zxV(Ju_A+o!CJ1sWV&xR@O?;q44!>7fK|?PyFB8%j1*LlMp%GwZpd<J~d{c8h^D@DM
zub|KXAF{{`y+@fBG@SsN6w*!21GPO;K!qRd_GXCtQ!>-iKnEj(@8^I{u_>T-cA=($
zr=5yH$GyWhBZFE_7*ho)(8G31(3j?9L$2}30bfg|0jZ!Mt0RguK~o8-Ir#;kS^zu+
zm6QrvAPByOBnLEt2TJw4o_XLi!;-)^9D=XfK^*f74|>pqa%oN~=yHZs&^1AzqCXF`
zG9m@ut15=}K*9ZJ9q?ozWbz~hbT%RAR*g!e0uQ=f4dQ$Su=9CSVV6ExDTKTDg2w7|
zQ$dq=ygaaS4|FjU*tB%exoD8fsChjnm4PN2%fOeT!md07uNDFM4>j0Pf&{S`2)Zk@
z0JNMAbfru&<P<8<8Ug50*r4%kP`*Ll%m6-dGZl0|4kY!1rU4;GWF@B-ffgg>fX^NV
z&BlY4PrxU<z=N$Rso>qDpdqB<%oOO&PoRMmtQS~=_H@DT!2~5q*t`<-oS#HU#FiF=
z2cAGPxuEtxZoh+04?<XkY#?YVKN)&lN)qS_Gf!|G2?|PBzDA@9q*cnrR@~5qtDu%?
zg?@TzCTOLlUIttke84_JoEKbfVK=upA2bIHDRr#4L0ei&^D-;+(^E@8<GXsvU?He^
zFfr)J6G~+asrfQNcSmM|?zzkbojZtXxN>G1sB!?^!K@J<?&)W2q{*$Ipr8;8x~)XR
z(7?bz)0$g3H3wN)JjgZi@eqZj;Ij+BDz)Is^HMU?czGQmHEmgH5o8<)m)jD-&1c9o
zF=&4%Xp?+WT4^!ph+fd-G;C5Fe2^q;>v|gGCRES?A0?@flW5`P4tOC6sN(~gsRNr(
zoSFkVy9PX^3foZ%$~A~Y0IPEqK($Y?4!CItuC^e-lL;E1C|1w_ugV0)YyoHw8MInN
zQlbf3>i|B2hZp0{C&+#2h`~bi3F@L$UGQ)zXi5Nd*($V21?gCV>sQ#aQgEXaS{I@h
zmR7vH!H}*fJBAC`+2f&+#}2x#88mXE3qDodKUe`Imjk*0JU$+@-dG>JloYg)J{7cQ
z1#}#GPNgPT6?DOCd^|gpg+&!;)iTHmr(hT8r7s}MK-$5H46=wCDg(9LKiDWfp4~rK
z-w32E-Z$9AKR7;~-8WblG!_JMo{N95iF<rJdl0yPkeH(Y9f$<UgNNZjC#!%Iy7@SU
zfXo6FNjMboz<MsAvmlG|A;$?rx`5C+89F!w8nVC}Euaf^Q6dIXo}?Cm(hzjT6QoK9
zwP2tv0_bj9q{xE12jl^FzffmLJV1~6LXmay5At#Ja{;M<HDo|7vHT+NcnP>*0pA)A
zT`mnWFx)Z3+21!lo;^IVBso79tdN~O-Z$7eKFl?U9nmXBEMHe(XGfmh!VD)^TZr@!
zf+k($Sus5Yk5o`KQIx6x9`j5DT~vw`JdVj3un9DfyW<^w0z4eqU0j_Nz$`>P43_nb
zurOl>4c3G2WCx87K{8V@Sk^Znz?mI<F+0dppgoJl8E6Lh21OVc7_j?#1_YzY!1V?=
zqsU|$!>zP1Ft#v5wKUTNN!A2iHaD}N7-|>fF#Y@@kV}J%;cfskQH<ne7zLvtFd72n
zg#Zf!gAoe@g9!@*Llg@GLp2KnLk$Z9!vq!vhKVc;43k(G7$&nYFic@#U|7e(z_6Z$
zfnfs+1H(oZ28K;63=ErD7#Mc5Ffi<4VPM$H!oYBqg@NH33j@P-76yhJEDQ`cSr`~@
zu`n>)W?^8s!@|IDmxY1hI|~ED4;BW7pDYXvzgQR;{<1JI{9|EY5M*Uw5MpIu5N2gy
z&}L;|`2GC@!)u1uPj6g!dSTCv4U0C+>YLTjH>>Z)B9KVVjig0Mv-)N+FbElV2{B}F
zFywkLu;h6#u#|EzGN>_eG%{y>Vqjok<6yMYVsz4C3guvgsVK-`VEE4fQYQsgR|!#v
zqyi)-&YT4bQ$dbKR0%#ojz*YCAa&BtUJ?xcUJML@UJMM0UJ}R-5d*m`(Mtxq`#{Fy
zcOO4UKayn<5I2EDQ60s=jiibbqAHYwk;mCfg~8v8nIX`NnSp^F<kAcd26j`9Mi7%h
zjR7g{vsf4ys-STWiZ4S}28M~O3=HpC85ly@7#J3^F)+xmGca_pGcY`1XJ82CU|`t6
z!N6e6$-vOW$-wZElYzmBi-BP}7X!lwE(V53ZU%-`+zbrgxfvK-co-P|g1igEL~?$^
z)Pv|RAOeQp!WbYLH-|_)&p@WYFbW67XcQUT9D3=2IT%8-OEK^s<6vOgz_Lw|fs0)d
z!c$-d^CTd=35*~f1ET~310w?igA^$Kk4!>~8;EhE<gg9_78V9ZMn+IMtHa8`pv%g@
zpvTI<pwG&{V8F`20LuGDtPBjstPBjktPBi(tPBkPtPBhRtPBjntPBhxtPBi=tPBiA
ztPBjrtPBj@tPBi2tPBjjtPBi&tPBkOtPBhjpykITRtAR2tPBimSs57Cu`)2MXJug6
zz{<d|nU#TI3o8S|c~%C73#<$b7g-q?Ua~SUykccwc+JYd@P?Iv;Vmlz!#ijh^nsOu
z;Ug;p!>4EWo?SeAarf5U3oq_Iy!+m>dz0ZJ^-z&Qs0afCq=ffp2G;~=WhSJSxW)vQ
zBUnqsLeyb3;|U`nGmy(?^imyP4T8JGN3Vx))mM-Z$cDHO)%7}{@Z@G=VBle6VBlqA
zVBlk8VBlwCU=UzqU@&E4U@&82U@&K6VDM*SU<hDiU<hPmU<hJkU<hVoU<hG@)C*y3
z3=H9H3=D;A3=BnV3=G9=3=Ab~3=HLL3=9=)3=EBI3=B<d3=GX|3=Ff`7#QZTF)++!
zV_=xa#=tP2je%hSv~F3%#=x+cje%h=8w0~WHU@^DAMai`w&U1_B^#zK*|6lojtd`u
zer&q%amU9EOE#3iMTpC!kT3wHW;PB+)G&ay6?U-@ib04Oju3TdX5b2Y^f<y7)54%y
z9n@Aps>yN3J|yj)fTU|YX%{`MA*VwIHBdP3XJcSEz{bFEn2mwq2pa>#A2tStzibQ)
z|JWE9#Ml`a#Mv1bB-j}kB-t4lq}Ul4q}d_u09keh203;H1`Bou21|AZ1}k<325WW(
z1_yQq21j-Vh75KFhD>$_hAeglh9-6fhGupKh8A`PhE{e4hBkHvhIVLMqLZD0p^Ke?
zVF^0}!%}tzhGpyw49nRW7~b5!e)9Uktp}HHJ-GG$$@|wAUhjp9)Wb!x?_-O9NZ3qZ
zCoV=o{==0jKxq_z3k^9uAt^+a4QwwBQV4on5=tFwSivsAojTM&;k<^OfnhB>1H%z^
z28N^T3=GHE85r)dGcep|XJB~1&cN`Hoq^#II|IXGXuIzzI|IWrb_NCp4h9BB4h9A$
z4h9Bh4v<X@4D1{X48|M`3?>{545l0m489x;41OF84E`Jp3;`Sr41pXB3_%=_wqpnf
z14AeW14BLs1497^14AJP149u914B6n149J|1H%js28Nj&3=Fe47#KEjFfe?3@$JEt
z2gj~FxU%!b&W)=#PT#rl#l{C$9(2M*N}(dS(?kg;$eo0H1i!)l!Cq1{LF90UDoR_N
z_&9^49!`kqG)O&I`bk=#aNW$oz_5jbfnh5L1H(2B28Qj>cKuEc28LZ63=CH|7#OZ{
zFfd%>U|_h;!N72bgMr~L2LppNCj)~FCj)~lCj)~iCj)~SCj)~yCj)~8Cj)~eCj)~O
zC!}v+!^yy4%gMkH&dI<K!O6f7$;rSF#mT@B&&j}$z{$Xn#L2*r%*nuz!pXo;!^yx<
z%gMk{$H~A@&&j~hz{$YS2<=}qb22craFSR5U*rbIJ6fnh%83Yw9G>`u#LRsz+-9Uf
z<nWk*Tuz{;34FBz?mUiOx8SOSAg+H4N%^QDpaTled7KOk^Enw97H~2!EaYThSi;G`
zu#}U5;Up&m!zoS%hSQu3439Y(7@lx4Fg)dCV0gyK!0?=tf#C(T&-aRxf#EeL0|P54
z47eB=*tr-OIJg)Xc)1uD__!Dtl(-lel(`rfRJa%zY`7R0Y`GX1?6?>h?70{i9Jm-5
z9JwI<MrSSt1{W>{hBz(;hIlRph6FAKhD0s~22j|7+5#UBecZKf*MfDs)?GLRY76vS
zfQZz=MY1k@WMF{S=X!kL*uoPdkZ{?`3s#33E>JUUAaVrFILw313|#Sn9&hBuJ|yjW
zL2Sn3LiDtToDLZ@L1CND#lTR`#lTR(#lTR>#lSF;i-BPh7X!m&E(V4vTnr3TxfmFx
zLHqSHxEL5_axpM$=3-#j!o|R_m5YI48y5q^ZY~CfJzNY77q}Q0E^;w2T;gJ2c*VuQ
z@S2N(;SCo9!&@!}hId>H4DX?110T5<7(Q_^Fz|3QFz|9SFz|6RFz|CTFbHuoFbH!q
zFj#UkFj#RjFj#XlFa&cmFobY3Fobe5Fobb4FnoOZ@an_kS07&8^>NqBEiV`BdI=Vp
z1Q)4;iWFRZ2#Mov0c`OD2|*!<9G(z_m@$(dw;2i$IXq?{hdS;Y4Y6rCB;}%|NMchH
zdVJ$cT?{&)@C@f>U;veYpz)e0ZU%;EZU%-@ZU%-jZU%;OZU%-5ZU%;0ZU%-rZU%-<
zZU%-fZU%;KZU%<M+zbp$xEUChax*Y2=VoA7!Og(15<2Fynwx=P4L1YBF>VHi<J=4k
zC%73HPI5Caoa1I-IM2<%aE+UR;W{@1!wqf*h7X`P<z`^`#Ld9)g`0ulD>nnfH|V(0
z4{ipApP)3s!@wZI!@%(Q*^OrxPF>jc?81!;>prhr@Od3nqz5We2N%KC2tW~ogm%6V
z?s)ws2$sVWuMjh8A?na#3_YJi(i;mzEgmzG(+VlEi9224N;?eNpfDBXVPFvBVPKHv
zVPKHqVPH_^VPH_<VPH_@VPLT3VPLT1VPLT5VPJ6NVPJ6LVPJ6PfsE(5@-Q&C@h~tX
z@GvkW@-Q$Y@h~tX^Dr=E@GvlB@-Q$I@GvkG@-Q$I@h~uS@h~uS^Dr><@Gvm+@h~v-
z^Dr<>;9+2x$iu)eiHCt<G7kg8S{??5bvz6V>v<R$Ht;YoY~^8K*v7-au#bm<VLuPC
z{Q*#)0TR+@M2L&MV2C=j*n^mHOPG)u$gu@U4T%svXy)OH1N2maFTbLv2HY_Yas3NO
z+QyyMv_Rvspg6eC!@!`+%fL{}%fN7&mw^FPd)DzWFr4ROV36TwV94fYU^v0gz#uHZ
zzz`?Ez_3Mtfq`F;fgwkbf#IMa1A~+h1B0v(1B03n1B0tD14E=R1H%eo28NZw3=F%3
z85n*b=R9&apo$%C#w$3Bfq{Wy4v|I^>FO8AZbKO&eu6B6(r-nPLE+p&)&pg;GB9wd
zF>t$yF|aZ*aH%nJyXiqja~T;KKqI^OMt)Jph#4e7`RV`<1H%m-28NqF3=Fq;7#QyG
zFfiQZVPLq&!@vMa7Y}$C7#{L4F#P6WVE6+X$LC>S_{YP*z|70Qz{1PGz{AVHz{|_P
zz{ktLpvKF<pw7#{pux+)pvB9;pv}v`pu-DETY9_<4Enqb44%9U3|_np4Bos93_iRJ
z41v513_-jM3^BY646(cn3~{^+3}w6w4CTBG3>CZ#3{|`g4As003^ma7`T6zT&#ymU
zICNpxmR$=j>^ijT_2<`<;39QUkpi#?Bu8qBgL5%jj)dfq4Psz9+<62#f@ls=ht-UI
zqJ+#qE+x=&F}@s+JBLGj<_fVH%~j}S3a+w;K?juI>v$O$>UkL$X7VyH%;IHWn9a+;
zFo&0cVIeOA!y;Y=hE==_46At=7}oGIFdX4!U^vRlz;KM0f#C!%1H(yP28L76GUE&{
z1H)Nf28QRn3=A)L85myjGBCX2Wng&C%fRpklt%a%82I=Y82I@Z7}WU~7&Q187&Q49
z7_|8q7<Bj;7<Bm{<&Hid1A_q{1A`YI1A{jo1H<RnPhVgB{QB_g-RpNRT)%t$=ffb8
z-p|d4n|H6@T?!Y0W)B<`B)oVf!7+svUf4$7AgN=D1Xw-6)FBN~hh{FWa7T|Hd?^6p
zjzy3ZjK>}LQW(xuqyY+FA3g>KUp@wg06qqWKt2YBSUv`ZI6el3cs>S(ay|xz3O)vg
zN<IdLYCZ;r8a@VwT0RB_P~A|^$H36Q$G|X)kAYz}9|OZ2J_d%ld<+Z=_!t-#@-Z;1
z<6~f0&&R;9fscXV1Rn##Nj?UKQ+x~zXZRQx&hjxZoP*Xc7x)+$F7h!jyyjzIc*DoQ
z@RpB(;T<0X!$&>_hEIG948Qpp82*6dpre2I#{&`df0i_HaraRQtPU;iAmLsCks~tP
zA!+PC)-*<qw18f6;EY#j|FsR`65OuW0)^{eJ_ZI+eg+0Heg+0{eg+0feg+09eg+0<
zen{Of%g?|d$IrlE!Oy^8$<M%G#m~TC&CkGK$IrlE&(FZ%#m~Ut&CkH#!_UBw!q32v
z%Fn=%#?Qcz!Oy^u$<M%$1#Lg%@G~&v@-r~B^D{7X@G~%U@-r}W@iQ>=@-r~>@iQ<i
z=VxG8!Oy_3lAnR$AU^}cA$|si!~6^kNBJ2Tj`1@v9EY|+NH717%i@k<KZqReFoKr<
zS7mUU5d)FKV+Ow5i7)r#j$uezdkjhAXlWO{e8H9W7<52wx|94245#=R7@qJmFg)dF
zV0gyQ!0?=(f#DTD1H)^628K`k3=E(785q9sGcfQ7Ffi~6Ffi~5Ffa%RFfa%TFff36
z(4cmqhyVkFr~m_lz5oM*fdB)8p#TGekpKgOu>b>ui2wtGtpEdqod5%ay#ND4xBvq~
zga89WqyPg$v;YG`i~s{eEVOMIFTlW%Ai%&-CBVQ?EkND!f3-ZeSj1ia8$s0LiCIWI
z?3BZ1F0OD#j~{#~08$P)K+MPE4tyyLXDZSFg>Q`j14FF<14DxV14E+#1H)ti28JmD
z3=C5R7#P+HFfgnWU|?7;z`(FkfPrC?00YBjX#0Pw00YA|0S1N(0t^fn1sE7E2{15R
z7GPkwCcwaOU4Vh%od5&FdjST94+0Df9D)oCoPrDtT!IV?Jc0}iyn+l2e1ecZgn%Fe
zgP<S-gSH?8gN`5rgRUS0gPtG*gRvk3gNYymgSQ|9gO4ET{XY&RaGc-?Gf3R^D}vRb
z<snG8i$Ub@n1LMb5cB3LU^9;zX@S)8Uj^b4+^*LGg{!Y114F7H14Ei114FtX14E`D
z14EV|14A~nf0rxBz>p`%z|bMcz|bkkz|bYgz|bwoz%W6OfnlN`1H%GA28M-#3=E3|
z85nj6GBE5GWMJ4M$iT2qkbz;pAOphzXdm&AAOpi;K?a7qf(#7z1Q{6a3o<Y~5M*F@
zD#*a_Opt-$ryv8vFF^)|-+~Mb!a@uTB0>xdqCyM|;zA4z5<(0Nl0uMvCh6sWstUFk
zfyD3|Ww0FXFoKr<#SnE^Q^_xaDGfQ5pvNM<+>bNoLS5Aeu^G)(=;aHpw8x+W>bFZn
z`|hAVd!;x7L$f#o!!2<Jh6myd3~mw(3|<lp45uU*7#>S7Fg%f9U`Uo^U`UZ<VAw3l
z!0=3(f#Hob1A~_w1B0I&1A~Af0|O|}*eWqF*eNkE@To8`sHre8q^mG6EKy-#uu^4U
za8zYrxUb5<@KTk5VYeCs!(}xFhAV0e46*7A3^nQu47KVE3{@Ho43jh%7$$2lFwD|m
zV3@7Jz_3(<fnk{j1H)Pk28MMS3=I1<7#KV>85kyLGB6y~WMDX^$-wYdlY!x#CIf@E
z76XHh76U`I76U_#76ZdJEe3||S_}*pIt&bfIt&c4It&bPIt&cGIt&cI7=AE(0mF}P
zJ~Dh{_`>jl;RVAFh93-1!J?0@Fg&_){?V1AyN>QUx`|=+M+9V8%<zkWfq~zYqtQu=
zF@~cNw6c(af!9fkG0uyL0m9=m<!JQxVqpmMVqu8kXk-vI@DgEg(qe##fmQt%28n{r
z0V#rraln)?NF!unVldnOvw-9nSPZ;CBa5aSjUYQXVCxYXSU?V8U^C-rjOA!#V9wxR
zK&%dAZ~%?X92aI_xGBuQ02=Eu6k%X65@BFy7GYp$5n*5m5@lcr7G+>~D9XU_UzCBt
zLY#rYQk;QdzBmKJ0&xb01PKO)8ff|er43NJ*docma9fgrVTu$3!#pVlhFBQ}hG{aO
za7OByfr1UrC30wmVr8G<HZo9QND9R?l#w1HIVdAND4u(S)1fFbP*sdf3=E*LA0Fty
z5E}#UF&4%QMh5<t3ruk>7no4Ti4fyQ3{s$YIUvix@Isb>K~;`{K~0W<K~A25L0+DL
zAx)lvAzhw<VYWO2!wGo?hKKSD4DaL_7{19fFt8{vFi0veFc>K?Fc>Q^FtjT$Fmxy|
zFicipV3@DKz_3Yyf#HDy1H(fF28J9(28LWk28MP;28OwcXlo5o7I+f5D3nNL-=M(*
zrfA5ap>v2d8f63%g~PxAi)}tQOOk<skr^^#C<BU*HHr)jClwhO9w;&}Fe))H=tIkH
zdnE>j2TBYK50T38?Wzn6JD}w@tjq?L*B$B%42RVj7(6r>7{WCm<u|D829?{OG8<N2
zqhx!EIVgFCNDfLuAW{!XkiG$@Cn$ki21OZ>9CA!U8UBX2ijf5p*Noh50uUAhhy{yv
zM2cXL2GyZSnhXrd(0UY9hl1))P~8ctH$ipg4lM?TQ`!s+Pqi5s%yl4jsDlmzg9o%O
z#hplr3|=CY;kE}QPH`*y00|xliJJqFA08xV37-n1XBud+Hv=qPFmQvKbs!-DP+KTS
zhk+py+9ukh!@!W+0+NFIKOIVgDcl^e^nep6zMaUxAg0174)Z<Jv>XQ3YZ5Gs3=G&X
z$2B(wW(Eco&MZDDB?dMXP7Kemxv^r3Z4gEm<GjYkzyyLq*W?%&82)eGycwbdgC%^;
z0Hgrq8e(aYZ_H9kQrCDu>S0(Kl`DhFl||*6Tw`Nk<YLZYNc_f}!@$4-YXA1>FfjD%
zFfeS;VPM#(!@#gthk;?A4g<pr9R`M%It&c2bQl=ebQu`fbr~3Bbr~4sbQu^zbr~4K
zbQu`Jbr~2MbQu^Lbr~2Y>oPD*(Pdybqszc>R+oX{oGt^y4_yX^pCEmD3=DF53=DC4
z3=Hvl3=9c+3=EU>7#Jq&F)(b>V_?{<$H4GTkAdO69s|P%Jq89@eFg?OeFlaG0|tg>
z0|tic1`G^03>X-=4H+1C3>g@B4H+1W3>g@V4H+0-nJ_RYn=&w{m@+V^nldm%nldm%
znKCd$n=&vonldmnnKCd;G-Y5oY|6mEZ^pnNX2!rEZpOf1Y{tM~W5&Q>YsSD(Y{tOw
z{nPtT44)XDL#X=@>N<ov5222OsKX4O7<Pjg+ZaAEtOGGtGaOzHLTsE_j0{&kFtC6(
z*YJb)7G2f?_b)>^7&)B1gc%aOgc%qhGN7^+vhEbtI){k=)PU)L@RiW`(dwx3c50~n
z$*M3ui-DIA15$e*V%|M?Z<xUel;1b&Ffi<Z#yf{D0|Tcn1A_!8&U6_VnsgZ$nspf%
zI-v3UOP7J+w=M&NkRAg=Qv^~uQ3FZj5E3`1=>-{j9+06Yg9+jk5Q*X(kN^V%N=Z>O
zFeSwx$p3txc$C#+V3?xEz%W&hfnhl`Kg#PfFevCVF!<^-Fl>e9KNCX+22(=@hM$li
zgpeql8XcriN0GtJL5Z9yh@lX&0zyH^G6)4BQDh1rVmL@v1_r?v2d0D;2PRnihXK@I
z8nJPXlJa>#@j1bWfnlN%1H)P)28KgM3=CI{7#N-yF)(~LVqg$4W?)b=W?--}W?=9!
zW?+alW?;xQW?-l=W?<+sW?)!t%)qe8n1NxRF$2R<V+Mxn#taNMj2RdvnlLa-GGSn7
zF=b#lV#>g9)RcjN&kU{ahtg6bvJp58l!11o!c!|s7~tlhv{v82bu*xaD6#~2EeJTx
zvobL7w^*>mwOFvg+Ws1l{+~1`PC#`cs4fK6fs4%;7%rPJFkCTXU=TECU=T8AU@$Xh
zU<fg1V8}CPU}!XFU|3+zz_7)ff#HZb1H)}|28OTZ3=HfR3=9Gm3=C2h3=C!#3=EzY
z3=EML3=Fvz3=GpP7#KEMFfi=0U|=|Ef#zaz;*-ecK1y$DgmMu5e;sgofW^NSB>rVU
zab9J{z))?*zyON-m1YbKzE%tjVO9(b5mpQgDOL;&sa6aOc~%Sz1y&3U<yH&~)m97)
zHC7A^>#Z0VHdrw*Y_wuvxMsz`aNUZ5;ieS>L#Z_bgNH2xLy#>4L$@sh!$eyKhR3!H
z3@>dN7`W{i7#27%Ff4RnVA$cnz_8PSfnk>e1H(ZF28Kfp3=Bsc7#NN^FfiP7U|_iA
zz`$_Zfq~(*0|Ubw2L^_(4h#&x9T*sDofsHeoER9EIx#RTb7Ell>de6K&6$Bg(uILR
z%7uZ!!i9ms(uIM+)`fw=&V_*?&4qy>-Gzan%7uZU+J%8(t1AP;Hdh9Qv#tyb=Uf>W
z&bu-&TykY#xa`WnaMhK8;m;3-KMY@>_&vk(_fOt4+-JCc9|RfRGn{|V0D{Ls#2<z~
z3`ZFD{MoZ@50re*unr^v%7~EG)<j)cYm5uj8iS6*@<VoLn}PS1$8t2X1bBgRDY(T5
zYI{N2g%A_wgWBKVU2Etg$%ye`NJ|f*ev&rKM#M-j8+2S4)<T80I9)*b@u39+!!HX4
z20=>(24zbI1_Mh5h8Rl*hI~r~hDJ*UhKZI84C^cz81`B+Fr2YuV0dWB!0^SAfq}z{
zfkDcOfkE1efx*WLl5Rk0r2?8pZa~vRi8UlmP(0i-$P7T)T8>hvqi|3*gQIX>gHj0$
zqv&}G69v&IGAJC7EF6Q<4|Kd2RO-WWx+Wy2gJm-q<61HpVKO=l3{s%H%3{mFz-kN0
zv!ML?7@AL|?HL#x>=_v99T*s<I5050gXY2SjtmSx92poELi68D7Y2q|E({Dzt_%#q
zt_%!{ZVU`YZVU{w+!+|wyE8E8crY;NdN42?@IWj3aaVUlmewc+yoZMbdaZ~O=qP$n
zVgN-3H;1}<aJvn+3~sl<f`E|)I>yVy0GkvrU=UuC!XUCFg&|snF-C<Ey#HSsRNh^4
zWng&a%E0j2m4V@nD+7a&8v}!|8w0}!cLs)!?hFhZ9t;ee9t;dz9t;fp9t;cu9t;cz
zJs247doVD3@?c>2?7_ew?#aL);mN=t>B+#L@5#Vm;K{(?;mN?@>B+!Q;>o~J>dC-R
z=E=Y?*^_}`iYEiZ7EcC-t)2`Fw>=pc?szgV-1TH&`0B~P@XeEfLBWTCLEVRe;l2+8
z!!sWS1`S^Z27O-!hIn5FhBRLW1}8rT25&zGhC6-?3{U+S7_9sm7+m}r81w=d81w@e
z7%~DF7%~GG7_tHw7^Vg=FiZ<zVAvnPz;Gadf#GQY1H-cb28QPW3=H1_7#O|>FfjZN
zU|`?~WMGgAWMGgBWMI$<1kF`_`o#c(uRz2jhF=V~eq9GK&qJu=AnGu~VTSz-AQFUs
zF>D73{$f}UqV_ZFhxPLVj9}$4q<q#kgz=%JFaxY~hRAmqz~mwP+4?X(aw-2u4<?E}
z`v}q1jF1P{DqL_rqE=vV1?5RlT%Pn`U^wf+z;M-rf#DuBZl8NFFuX<2v)^G!3`7&j
z@$o_Gz~j~fG7*kfk=Q4X0i9$K!uEyxogirZ4zxENZWe^WwgAic-7hR+Isy<42$J&}
z2LpIakAX?(ng(d#4fm)XLYDmgJ;(w7K?cFFG-yo?1B#FgrjRVA5bAgzO5YC@Cmf*o
z1?6EwPX-1fPX-1{PX-2CXx^Rb$-pqplYwEWCj-MuXrBG<iLd{kIRRuSG~94^`Eko+
zc2H;l0|P_<U`jcIJPq)G;`4_m1B1L51H&{g28QWg3=C(z7#QAqF)%23GcZJZGcd$>
zGcd^eK+5HOXyk&aTrdeGvY|AXLgA!=g`fnH925g^bD)MoC|J8j2GZgIjq;491<*lP
zNEo#|VBiMTwV-+yRJVfaRZyJ@s!u=oGcf$|XJAkYU|>)VU|^UYz`*c0kb&WKAOnMA
z5Cel#5Cg-MAO;4(U<QVz!3+$NAq)&IAq)&<Aq))VAq)(MLl_v2gfK90hB7ethB7eR
z2?f=ukaz-<6u0G31`be01W-7*TarW?K;+adk;+iqhMV&o97a$AHwUT!PQh}3Jbczy
z4$iWK<_c!Gh%5tx6sWC}8OXpeBangNP9P+Xxsn(d43ZcayptFh0+JXQN|P8E8j~0p
zW+gE&EJ$Kt*qy|{a4?C1;YAVy!<QrmhUv)+4C|8_7`7%eFziicU|>yQU|>&SV2Da#
zV2Dp)V3?l5z%VC;fnh}o1H<|h28Kf^3=CgV7#O_M85n}o85p|K85pLfGcbr}Ffb@(
zFff#4Ffi0-FfhE$U|{%>!N6dc$-rQf$-v;5#lR4r#lXOk&A=d>&A_0N&A_0W&A@OY
zn}OkRHUoo34g-T;4g*6)4g*7d4g-UDE(3#XE(3#R9s`3(9s@&U9s@&49s`47J_CbB
zJ_Ez-d<KSP`3wx#^BEX!=QA)o$Y)@9lFz^pR=~iJSir#Wpn!qlQ2_(P;{pbTHw6p~
z9)%1HL4^zq!G#PAA%zSK%L^G8Ru(catSV$+*j&iK@S%`_;a4F8!|y@{hChW23|opA
z7`7ELFnnkD{(<2I!v`ezgaHOWFg!qm5E*1qkO(p##s-~Q2kY0v#udOT$Pg>hc>KNC
z7y`Z67~;Ix7#IW$yo4E$MIu1?@<}KILu?oWLtGdGLthvJ!{smrhTCBb42Izh3`XG$
z3|qq)7(5~v80JMVFz`e&FyuutFyu!vFzk$EVAvJO!0;fFfk7jRfx#z=fx$P5fuSji
zfuT8yf#FgV1A|I514Di^1H;y6w7wt8x*rq{?p%S=??KUn!oi*8iIhPx4L66#ERWj&
z6dByP9JdTS<3ky+{I3kp<4SOrBAlfFF9{f=K=JZFnt{P1hJj&D3<JZ`7zPHhSOy01
zSO$jKu?!4zVi_2A#WFCQiDh6o8_U4p7stThAIHE@7019ZDUN|*avTH0t2hRR*KrIC
z{P7G7rtu66X7LOR@$n1{3GoaJ74ZxVjqwZ&nF&Of|3sF{xRVL)SVrl(<2K+KG&sQ&
z3Ws6?a9fHZ^AKz`l)xPzAO)~ESB1x~3V6_$zXf%)M-3k9FdfPa3{s$YDM?^pc%Q()
z@F9VLAvuwOAvckMfisDL0aOnNCowRHB{484CNVJRClQ^8QBpRM+4d{QH!w^j2c~?K
zCKv)3eLv6|KyFZ+g6evkBnAd2q&h#O1<61^BsK$Xjt8<bGTCerphY{7^-3r%CTl!E
zh4X=clLTly0NZ+=J)kqJP~FLvghlKI##*4^G9JLd3Tod4CNVIiB{4AMAhq?Hk{B2|
zk{B5JklK9<lNcD5CowSOA3+MVOe8h~k(_+wIe#McpeV~nPMs(+Xe&F&>i^Ly)eOF|
z00tgVe6B}o(;rG=V7QjVz;Fkteg8Fyf#F*c1H+VLd}BW-gF2aKkdg(843Qj^NF{#R
zA!zhyG|rLw`=9|t)IL8-smcwC)2Yb}4C|nMxP#FC*_9Lqh9@Zu3|~_i7`~-2Fvz7b
zFgT<!F!-i1FnFaS`flCnXl(+N${sfdrGbFb^uf)+Z5r;GINW+rrr2&HCD$Rq<N__|
zxcpxXwzf5{<??@C1_ovoCjOT7$inOYC#o=k*E=yX!rO<c;FSR2`5ysL{PjTl-x3)N
z44o!OE4Yx0X@;U95H8rANLpx>ku-eFK1H69<C*~j69dCf=0-&Zwx7%xj$rGMMHl0|
z#sr#5;9`I;5GJc~U}RtrHDi<l9n1)s9FRsZWe`kR1QWF^U|<Htxnu?dgA{b^r4*C~
zkX_r3%t2Y6hkxB2vbF(alNR@&JV9#wFB{77&jO0?GU#~QJ5bz%4zh;D*J%D{U?8w<
zV5sMRP@KQdU|{$F9cwkpWMJro#XpE1&Hs3}jj&I7I;8VID87xM<Lh2o3=EwKETCA2
z;L-d)?DIb;&b_l37<{rA82q5~E1cQ*%7CF&Ake=4&tV$E?LSsfTysI^(<*Zq7&;Fi
zEr=P-|HD52gW|jjX}(kfY0k8>f~dY=r^g_#GDs@}NNxWQ>HN<Inj6>3V_?vR&XGsu
z;Vb(``+uO#y2yB_xBo!#9SvO<p_I?S(5Zklelc495Bu^T6z9rF>tQ-a`~M`4{|)K#
zpBc0UYEC`_!(8ZEsPKZ(@*gw<P3*A|>{Ct+>Ha?`z9XRP-5!GCUW2GMA7p%Bh>)~x
z{|)W&e^8twuW|G&9L@iv<$s}}-2Z0*#kUu9J?jck+}D7n(4iT7wEZ{i+kc=qM_$AH
z5tIg?(GRAE)^H!#$;bq0Wj{Ide{Kvzc>IqA6yKkq>(#dwF)(xrjQ0OXEB}Xf{SS(B
z&>n^DMGOoFiWnGTi%08!(&B$e_y1Us<36UCfg!D!fg!z^fgz)qfnjzr1H;^628MaX
z3=GSQ85pEX7#LJb7#P$_7#P$`7#K=Q7#Lbg7#OCPFfhz4VPKe5!oaW?#4crESX|1$
zu%wiMVQDD?gL@eRgGU(y!+|mehLdFs47wEz4CWOK3>Fm(43-rP3?Y>a43U)#4BM(0
z81`2&F!)t7Fho={Fho`}Fho@|Ffi6IFmTl{FwCxDU|3qiz_6@_fnhnQZBom?z*)<{
zFr$`%VNopu!@@cShE;V846ExH7}nG=FtF7#F!0wiF#M}$VBlzAVBl<EVBl(CVCZaM
zV3^dvz;M2Sf#GHY1H-Kb28P=W3=H2J7#J8D85r`L7#J#>7#OOW7#OOX7#JLy85lg9
z85ou}Gcc@gW?+zLVPH^fVPH^dVPH^hVPKfl!oV=Sg@NH@3j;%3D+5DfD+5DTD+9xp
zRtAQBtqctNTNxM*v@$T5wJ|W*w=pnWY-3=!-NwMc0IFL-Cx{?0=;RRuk37~#282Ea
z1_sm}KxjM8<3ag74jSKcKzaWUQtb%}V>owo{TK4MFN{6Z*METG96686l#G`Dq?P}B
zhIIQ66yLJY@_Ys;?mvw7|457fq22xi#W`}_J*#vy|C1K~Lp%S2;(InyJFRoe==d*b
z@jtZlKdfyYUdF(%AE}M5SAnk_Xoa^585kH)I4CEx<{>MiKb!QiAJ9$-QrCYB>HN<I
zif4UjKP<SCfuVECAYaTwMlvET9grITLp%S2;vClh-doAQu&<JVVSgn9gMSqRLu3^L
z!`3Q9zudo?fuVB+QSC#NCFCd@MNl{>1q6x=3WwZ&DCh(rMg|7j#{ZDc|J<NB4S<fb
z{0GJFfzkSZB-Q_*IA^FqjIqtB!B_8(uK$CL`@m@SDMLE{vw-4zE_6KgA1LmT58xxW
z+$E!qrll6zmj6S${s+bRe^5L_$I@rkj^=;T%KxFA|3UFR3u*pj5p?c^r5>~vn5e!$
zXAe<LLR#i<{AQ2lf1LZj*+B8kT9243`wxnD<lqF&QNj76^*^lMhtWg5{s+Z319V=r
z9W*zpFxvhnt^6O_^*<=iJ3#RcofE$RV#D)0bdDO%AI<-;d=I0Cdj1E+_eJRXhtHt6
z?}0})1E^n!;Em4z!{Qv79_sV|pg8~1z`*boY5hw<6TUvc&}tBn*7hT3{pXNw|FeSP
zx)8d~$*!4!q0?e?{pU!k|3PtX-;7w}whWX85QRQujT)RkTK^-L{UG*Gum3^uy&P#>
zqa<`q<HQyQhRzd2b?gWImQm8`fDtwS#|DaL<n^mJTNoHVv@kG8v@$R_v@$Tnw=ys!
zAgyU7vVO>b7a0r;4CHW7CJ<5X3;_*RBAbrH1|?Tc1_mxQ25vV)P$>>MN0_$pKcwq_
zZqPdAt*s0U+n{TdP1+b3P|n`2{{sqDXdt8X0Z^1d6%0xW_sN(eDX(M81q>{p_%>}r
ztWCevhOg~ETK|LUd}KV->wi#uUxw~SNN8tZNNi_d$Zls~IN1*B3lKFH*trC$gg_~s
zQHqO!D;lt+d>WJq{4CQI8QA!d=1ibo9>nLrvVr!XaJ4fqgts#=#J4jrfYLx_I|D-&
zG#$L{U|@LH!N4HW$-p4m$-ofO!@$to!@#hnhk@a84+8^dF9Smg2=_5C-0Ndtc-qIn
z@T`x4;d>tg!;d}&hM#>542=B@3{3qD48r{k3?lsu45IxE408Pp4D$U943_;23|9RN
z4A%V&3~v1l4DS654DtO83<>=V42k^=3@QB#45|GL3>Ezh43+&13|0LM3=RDZ42}H^
z3={ep7$){JFih%aV3^s@z%Z+yfnk0>1H*!T28M<G3=FIK85magGcauGXJFXe&%m&y
zpMha-KLf+Qeg=ly{R|9u`WYDR_A@X%?Pp+k*3ZDeFoA)AaRLJa(*y>F?g<PGlO`}Q
zOrF31-cIv_;RnN4h7SxcLGT&Fk83}!T|D}dVF%F!!;fpA<RIbfCBfkD#mWG>?>Eqk
zl_AcHl_Akff`LKIz)Ok2l%o-LJx>frBlyl94u3BOhCnX{1_n7(jz)CtU{z2PSmL~x
z(D(arfHZ*3hukm>yJ-@-56A<Q&rh{8Fr02@V7T7Sz@Xm2z);!2z_7K0f#Ezf?m_Wx
z+{wUT-HESmKv@P_4)QAu<L02~K`AXzu9idLpy+{FfrSR&a>B^%W(`00+M0n6+BoE3
z;6299n8C<+fr*VDerGNd_=Xfx+XV3T-%!l|+@LsZ>||ir*~!4b)y2SI(Z#?prHg@K
zZ5IQ>jxGj<(_IV<GrAcVHgq#EX!bBLXhHKoDDQ*veJV8X*Yq(k+=Z3_p!^TY`?&An
zAyVcsa<rmciE|%W<}NY^w+xE18_0Tab5Qi4aKO14W(bN53g;|L35Z7FfCTViPSAPo
zjPN7g6G1ojBJOT80;g5bdSwPiMtHjB0jKK=OpF#RZ2T=2EO9LsEU+|h29`rh^J1WQ
z0+rFA@)=e(gUV%CnG7nAVP)|)<VBflk=?!=nG-hyiATAz6eQEom>%dyHSt6CVjcOv
zn?p^k0jc!@)7Zdf#|vY_XpwKEAER!3jg5hkpP8Qle4aXpk@$@n_3jZ)0S0Cj)c7Od
zUba&lFgL+y8oQT)3slE~>Q`9Z3aVFObt<Snh1I2?dK6ZNg6dCL-3h8UVRfeP1O^6_
z+Z#T>yaA$@CxA#O#-q#zssu#gQRV}ZhhjX+mOzz&C_KuhfaIYVk20tVFtrp+A`zhb
zlnBJ|pi7a$pg8M-ws$~now*Yj80Jl2U|2qZfnoOq28KNo7#L1Yz<0+7%H10%oYlyi
zK^7r}6vG^3PB8LaF(}Fqs_=!Y0`{DaC9DTWPFE0Xz?Rc#>t1ZN2?GNICn(P6OkiMu
z#rra7-0wn){}a$O@OA<N!@CI#4DTl}F#Mdr!0>AV0|V<s1_ri?3=HfO85sB{GB5~C
zWMEL8$iSdBk%2*dA_K#!i3|)ICo(W>n#jPgcOnDBzKIMB`zJCmoS4YKaC;&H!<~r?
z40k6oFg%^e!0>Y-1H-S03=F>~GB7YtVqlP&#K0gsiGe|G5(9(ABnAevNem3;lNcB*
zCNVJBPhwyQoW#HoG>L&BViE&G{v-y5f=LVvWs?{fdM7b3^i5)5m@<ihVaX&0hNY7j
z7}iW;U^q01f#L8Z28JV(7#RM%d4Br}!*O(i;m;e83`hb6Kfld@K!{{XZ5Hm{0qQP(
z%KHk?et<0~Z^Pmg6rZrT1jQpP4y`9LFsy{eB`6+2afot_(+1?C9i=URstk0#0xZbz
zD1#{h(I}<tVvq<7qi|-yL_stP2P8mcj3X~GGBc1^=MQ+v#lQ=SOIUtH&Wp(T5S9nG
zA(!WP8g@h~Ltbfu$264L1JszrS1XLR|NbLg`-7vs%D@FHTd7s9;%Ph~M<gC)$f<{N
zWid!8hH}%83}ZkknLrYtQP825B88P1gbWyD0vH+OH(bzH*zmwsaRUdt(gqH8<p~Q|
zRVFN8Rowvc+bABUAyCP{z~Dlm-#9Lud{y~#*EzwSCWciE-YdC5O<7P^mWP3XA)X<G
zA)g_c!IHt4!Gyt(!GOVn!H9u@VPsisJWxI!FpEtF%Etp{vFSkhc)%<+8z>(Sn8oG;
z<>LXf*kYi3JYW`E4wR1v$YM(dgMsn!09tG~P(B_oiwCI9WjRodJy3gdKw6mtXz>6w
zeJmLU%;EuR`dBgyn8gFs^s!_ZFpCGM>0`+-U=|Nh)5nrwz$_lHrq6&_3>pO)kT%zV
zT09_4ACQj+%;EuQbAfz3U=|O^a1+SK17`7nG<`rm9x#gsr0E0l@qk%8AWa{Tj|a@+
z0crYxd^}(l4@lDo<l_Oec)*%I17tBMum@m7zz{s?H9!^*P}2wG=K=EZ05yFK2WFfL
z6wm|I^f6=@FpCGM>0>xB<6NLP9-yX=;lPY@fqXnbO&`O78Rr7|cz~Kdh66Ls1@iF#
zHGK>RW}FM;;{j{>43Nb}12eY>s*OPdY+I?Yx`_eX>L$=3Ne|FgJ%N@{WiXU5lrR)9
zSTX1`=ra^E<TI2q6fq<-q%ssU=rI&Aq%x#1WH2N$lrZQqBs1hQ<TB_pBr{Ypq%)K=
zWHRJ2=rb@dtfr@<t-$AVAUnE%p`5{(!H7W*#rbIr`3yx2=?tk1dJK6CsSG7xr^+%?
zzIqI6_=+<yFlb>ojkxeEU?^e80EcxVLkdGNgDx~|L7oDIFM7O%(8!+S^o++a3{R9Z
zfFLB%6*HtVB!UxS27?|r`5`C3Vuo@CeTEW-e1?369EM^BeTGtKkb#2hIz7DsI_U*9
z4}m;U&Y;JT0(N#H11KRTGn9h!6D$W6FcdN5Go&z-G9)vUfIU#ckj<bEj{SHB5F3>5
zQW?s?o-bwq?PCP(#RTP8iq<|7TQq=HA!GMeE<+|mGT8Z`#GQsxFhGig6o!0;a)x3C
zBL)L7)CU(7B@C$yMGTn?72tfxOUrzyhBIm9GUPK<F=R62Fyt^KGU!2z2z>@fd}J}C
z!s8>40Tk**V8^28KhRD-T!BN5`TOaaVEw2NI28;9@XCOJVSwVY1e^##F$qdq$qb-^
z0(br@gjN8=$0d2@(_xix5JM_M8iNIcIfF5HtcGrL`-8+{3kFbYi7ulxs6HMbi_I9!
z87#m(`T6uLDD-d^6p&&*l_7(n5UEwj!0?t<&I2{B<ZwDC30$ufgWCf+NDhKH6I989
zS_SACAGB*5dm&Dod7#~VbgPa*V}#fpo6C?0u3j-KV+ICQT2`_;3=9mQ+8@?+C<E8;
zpjKKjLnT8V1E@d-HFEUet?ytIaafxiRF|YMK$<$Bsu|SOL655l8rrpxR*4o{j|<er
zLygB|hB9!=5Lcj4)Y==4nnf6t8Mqi288R9889+e{@uLL;gTu%FObiwbJPd3Me&B{3
zC~M>}Fff2N_kfNtVqysNVq%E*U}VYl;AAQG;AAQB;A9D4V02()U}6Yh;9=lo@BsHa
zQova%ok4*CG#w$%z{tR+!U#U3QI|n@$p;3JB{mEWY77j*pyQ96y<`}?J!BaCy&x7a
z_%SenP4vTRA}A}1GcZ9+WaM^3Hj$A*2xOue?9?QPfqo3kc+3NhX^S&3L(F4BHIE5m
zp0k$}1Nhh_CWb^WDF!zN7O;74SltI2supKpftbgPY92EK7s!1v9F2)yG7LTptPG%#
z^TBEkXaHD*ft7(vjRn;Z77>scU_XML6$>&=iouV84Qv|rPy-FFiZHM-aH+APn#L*y
zGR@gbi~)A)6xelQ3?2;ZVDmh%x(+mSDZ;?cz@^59Y95;a1Ly!Mm|>uUsQef>z$RgL
z8E8mQgn@&BON|}XBz7?duqQ!D4{{zB*ryT<E)1Mt^IWjH3^eW~!obPErN)739tRHt
z$eW-evl6|;7;G3E9X|bE$Y8_3!yv}s0&Wu~GL$mpFqAMTFa&^m&xs7_3`Goy3<V4s
z3<?Zx4EYRs3?+~Z10~xSQW+Q-J~6a0@GuB6crb)8_%ir_^@E0fKwZ}&22ef%jkkch
zqznw^4Ezkd$BY;RrZ8);@8JsIdm>mN$|Jcz#zf(Sa*X;1trk5Aqcx@uAb&tDfl`tT
zPFjrUCy5n6Hrd87#DUTzV+;ci0}o36RbbFy2xmxTNMg`rU|<kn5MU5qlENUeB!wYb
zg)v5jQ4wS+B+4+)D1(}=#t`AKh(VB1je&=OgTa*{7aSsq48;tY48;tfQ*g{U8e=&c
z^%z1O7BMI?>Oo_slA!=xtL1>pgKP!{1|9}GEk-9TCXm7Z8Qd7s9TqVdGJ<jvKT_z0
zFhF#cgIgw`?g{9qFbM`{FA*$9sfjSyG5qsi#Nfzi2aW~Mz(Em1HaPB587dh-`YRYp
z7?QxF9Vy^4i3gPGV>lWMGSbr080;9r92PMILiK~<8PqKT^}<1M<^gq05d(%lcnUHa
z7#bJ?7(y5r8Il-5Wgr)W6GIMo17tRX0z(KxDg(%F1_lKNF$TVt3rwKX$53M+7J42T
zCnzRB0mHz+;K$&^z{pU<2+1=};K7bcH1ot6c#p9%Fdk3@n~P~CvUze0!l3lQAjiPV
zz{(K9;LqR;EuEPdBp4VN)EGp-@@gpZpt6>WL6U*L<pe`q%L%YLQ7q~}WhfVe6a#<D
z1je|Q35+1~#K3tJ)jUwy$i*Pdz~2(V6xR~L1X2g89hewU)q%=BE(RF}{uTx1xE2Lw
zkU9x0=7CBzE(Tc!{+1WaaV;;v>LjtK1C>@>3~~(oEgM+kS~jqN%#*^R4pbI#F~~FU
zw^XpkwN$Wz)JbDe2g;jV3<?bVEe>pPEe>o93^okT42%pyOrX+4fB`eU6c{`i@)$tv
zG)M`;#h}Q*-;%)?*OI}=z+lCY1j;u|R?vI{D@B~a@t(@Sz<@jLg9?WueGCko3=9d3
z3>*yq|Ns9F5(9;G6axc876StV=oHsU3=9mn85kH085tNRGBPl{XJlXqWny4h$i%=P
z!_2_Y!OXz$gqeXMn1z912MYs(H7f%{6DtG5OI8L3CpHF#>1+%PAJ`ZeBH0-jR<ScM
zd}n81aN%HJn8?AvaG!&LL6?((p_Y?@;WQ@$gB}+HLmd|b!+9<S1{rP!hHP#Ih7;Tj
z48lAN3~@XR3|n{@82EV^7;<<S7!L9>Fi7z+Fv#*TFsSh{Fu3wFFhue*Fs$HbU|7k|
zz_5#-f#Enm1H(;z28LVw3=D<>3=BpB3=GWz3=Ay-3=Bbn3=F}73=9ti85sTxGB8*O
zGcZ^RGce2-W?)z#%)pQ!!oW}?!oYA!gn{9S2m?ckC<DV5Q3i(Fq6`dE#26Uni7_z5
zN-!`?lVD&tAj!b+LXv?&Rf>T@O^Sg*PMU#1UYda+O`3rrU7CSmwlo97326p~htdoT
z@1z+RzDYAMu*fhlNXjrU7|Ad&7|Sp)w97CsbjUC;OqO9_m@mV?ut|o2;eiYT!$TPc
zh8$T2hFn<&hIUy7hPko~3~OW=7*5JEFg%cDU|^JEV9=LiV6c;8V6c~CV0a+M!0=Fx
zfq_qffk91yfnmEM1H%qQ28P{A3=CJ47#L!e85nAn85la085j;LGcb6lFffFxFfdf9
zFfdG3VPKf8!oaXhg@Iw63IoG_6$XYRRR)G+RR)F$stgRrR2dlFsWLF=s4+0qs4*~X
zS7Tt<p~k>)N}Yk>sX7CLxdsD+g$4tIg9ZbGhXw;fpaug&kOl)oqy_^+tOf(aCJhFL
z%^D00J2V&=_G&ONaA-0xaB4CzNN6%J$Z9e$G-)z0G;1<2bZ9a#Ox9#z_@&9f@LQ9C
zK}d^%K~{@_VTu+5!&EH>hUHoe44bqV8057X7!<S_7<{!E7`Ey#FkIJRU@*~TU@+BX
zV3?rCz%Wsdfnlv41H&Ob28Jto3=B{77#P0mF))beGcc&>GcefbGcfq*Gcd&JGce@p
zGcZ)>Gcfe%Gcc^yXJFW*&%m%xpMl}1J_EybeFlab`V0&c4Hy_E889%k7&0&%F=Svk
zYRJIAXT-q3Z^Xc0Y{bA&Y{bB@*ocAQvJnHr6(a@)L1P96A!7yxGh+sZ5Mu_0JYxoi
zMq>ts1;z{vTZ|bPju<mA+%{%l_-f3+z;438AYj74AZ5b9U}nO=;Az6Z5NX1|kZZ!g
zFx`ZKVWSBH!!8pBhNC773=d5h7=D>BFbJA5FesZcFc_FJFvOTLFyxyuFf^JnFibRM
zU|46$z_8bpf#HlP1H(g828J)D3=AA*3=C3c3=Gm{3=BSI3=F<z3=FAe3=9=!3=Gv~
z3=B8S7#MDvF));vGcc5zGcd4NGBB`OGB9{pGB9*oGB7;0WMJU7VqlQAW?*ozW?-nd
zVPKeI!@%&)hJoR$4Fkh>TLy+7whRml?HCxA*)cH8bYNhZ<-owe<jBAv?8v~N=)}Na
z<ix-*%b9^;y)y%Yjtc{Wt_uUh0T%{_gDwmVCtVmA&blx#Ty<e!xaY#aaNmW2;kgR~
z!&?^yhEFaG42G@@3`VXD43@4847RQe3?8lw3{zbh7^b;0Ff4UtU|8wOz_7)Yf#JI=
z1H%tj1_pUI28L;F3=GrV7#PmFF)+M!V_;BnXJCkSXJCkNXJC-`U|>-2U|_iK!N3sj
z$-v;`#lUdKi-Ez)n}OkjHv_{TZw3Y>9|i_x9|nf$J`4<xeHj>D`!X;%`Y|v#`7tm|
z@nc{R^k-mL>d(L+8Nk5c62QPv7Qnzz9>BnGIDmoSNB{!^XCMQEZy*E1oj?YLCxHwM
zu|W(BaX}0WeL)NimxCA>ZU-?i7zQ&i7zHyhYz<~$@CadGm>0spz!S>AkQd6pkRQsx
zurri_VOJ;v!-G%;28}QV2A?nn2H!9ShNdtEhUPE^hD%`#3@YIa4Ef;<3|qq)82*Pd
zFnB~TFwBWyU|1T#z#taMz#tyUz%V<KfniQ01H-OJ28J_{3=C%@85sPc7#RGc7#OOe
z7#Jo+F)&PyVqka`#lY}7ih+SYnt{PInt{PAnt>rcnt>r9nt`Drnt`D)nt>rRhJm3Z
zhJoRI3<JZ57zT#qSO$jNSOx~pI0go;I0gpcI0go>I0gpAI0gp&I0goTI0gorI0go%
zI0gpqI0lA*I0lBmI0lBaI0lBCI0lB&I0lBsI0lBMI0lA}I0lBkI0lAUaSRL#;ushf
z#xXD~k7Hn1AIHG3JC1?jU>pO(p*RMHYjF$=cj6crUc@mle2HUV_!`H+@GXvkVM;s$
z!_;^NhIR1_4C~_=7!D>dFdRx?V7QXN!0;r2f#GWc1H-oj1_rq#1_p;D1_s|G1_rNW
z1_tkB28Q5d28Qlr28Nzw28OB03=9$}3=EPf3=C2!3=B#s3=E|y3=Cx{3=H)t3=Hp5
z7#QBCFfe>bVPN=?!oXmZ%D`Zp%D`Zg%D~{2#=zj6#=zi{#=zj0#=sDs#=yXt&cMKx
z&cGm?&cINa!N5?J!N5?T!N4G%$-p3y$-p3+$-tnQ#lWDI#lWDQ#lT>a#lR4i#lR4q
z#lVn~#lWDH&A_0X&A_0M&A>1_n}K0YHUq=lYzBs9*$fQfISdRDISdSmISdRBa~K#N
z<uEWj&S7A9lf%H^najZ7mCL{olFPubBA0<-WiA85s$2$!&AAK=A9EQPKIJkn{K;it
z*qX<{uq}^)VS63}!+|^ohS+=thPZqNhKzg$hB^5R40H1t80O_OFf7k!V2~+bV2~|f
zU{Eh$V3<+Bz%a9bfninw1H)nvUC6*NyO4olX(0oHdl3VJM-c-<co74`{vrm314RrB
zCyN*u^hy{Q^h+2REK3*|f=d|~LP{AJB1;(<_Led*>?>tp*k8)P;9thT5Lw2+u(gbV
zVOtpk!~QY`2LEyfhJbPghNyA|hX0@ggDV&q7%LbUxGESJ=2S2+%&lNxSYE-v@UMb_
z;Xmkzph^Y?&PoP`nUxF-vnm-F7F9AZEUaQ+SX9Npu%?QEfu)*(fwh`}fvuW>fxnu8
z0d~(dR}BM0dkq6a2k5Tj8U}_*H4F?FY8V(U)-W*Ku3=#KT*JWdrG|mwYYhX#chF(x
zwG0debqoxJbqoyEbqox4^$ZO5^$ZLS^$ZN2^$ZNl>KPc8*E2AzuV-M8XkcKFY+zte
zZeU=T2)$2ldIJN)$p!|7n+*&M9~u}KBpMkQ92yxI;u{$l5*is85*ry9vKko}wl*>_
zY-?m-IMB$zVA90EVA{mMVAjOIVBf^RaH)xb;c^oL!|f&phJ<DYhQwwDhU{hrhLg<<
z45ykI7*01cFkEkDU{G&iV5n?iVA$Hiz;M2Wf#F>X1A}NQ1A}oZ1A}!d14Cmg1H;Z%
z1_rJ+1_p~Z28JnZ3=C`A7#Mc6F)*BNV_=xk&cLvtoq<8KgMmS-gMp#BgMs042LnS&
zCj&!jCj&!D7Xw307X!oHE(V5sT?`D*x)>OKbTKge>|$VG>SkaN>1JRM?Pg$*?`B}I
z>SkcD?q*<c?`B{~=w@I@>}Fs{?Pg%8>}Fu7>SkbQ>}Ft?*v-H&shfdeRyPB~f^G(e
zh20DctGgK(Hg_{HZ0TlT*w@X#aHpGr;chnr!?SJ%2F4x+2Bsbc2H_qChOQn4hVC8)
zhRHn)40C%J80PgbFf8w3VA$Qmz_6!>f#GBi1H-!>28Q=N3=F?|7#P@k85r1m85jh5
z85q=h85q=i85pd485mafGBB*_WnkFU%fPU&mw{n_F9XAgUIvCcy$lR@dl?v>_A)U1
z>SbW~-OIqh+{eHm+sD8l*T=x1(Z|4G-p9aT(Z|4G-^aiZ*vG&S)W^UO(Z|4$-^ajE
z(8s_~*2lom+sDAr*T=vxrH_GONgo5l(mn=;HGK>Whx!;84)-xI9P49Xm;q{_gT^vJ
zH0X@H2J%HDFwDUek;G6#j0kz=NMYE8DS~M`rW#^I2Aes=xS2dP<i!PM_>d<;p6%4|
zDF=hD0wYF>0<SRx=N(Y5QG!uVfeEYz!~<c}+yv@TViOTlK$rtj0}=rp>c+sp(0~vD
zjejFV7#PrX4WtOf?;tmW{0+jWJ_YrPsU-rj3lth4dq8*w0~=Bpf_mBz5s-U8A%+kE
z=|UBO&OJ1M)IeexrVFGF)y<&(x&)&xG?qa;5Jpu4>dQmafXo5OgD|QZP(NRTNmqdx
zoLWFU5Jpu48UvuEh$K>oLF@vFfZPo7H$ns!Vh9mfh#^FvH;*(RL|8$&f`I`^gbhQ4
z9Yq8=^+L=cMg-($(1CBLZstTW8Ki~_LxdYegc!Rp)$n12AxH!@3_&8OVF(gI4MUI!
zY8Zk<P{R-;f*OV(5o&}Xy1yVP6XXj}ssv%wbO;&=B2GjADSW`X7-1ry(Ic=314sm9
z7bph7B5*aJktKu(NDZn8C{$5JK%t5%0t!{Q2-q%=E=;>XqgAMOp^AWX!9*;Wbro2^
zITxe@gi%8SG}47lL;@)^AZkD&Ab)|}gAf7Pg(?E_7pe%zU#KFm)B-UFIZm;QKzsqR
z9pnQLMs+i23=UIdB`DW`{SLAnq=p!gnPln0G<nn<P(b1idD?{!q(%d!Oi*nG!l-Ej
zG-?VdH$W}~@jw_=4QND_ToDbVyaO=@BmzpkpwK{wfLw?w0?RuHHL$#c5P{_#gb1vp
zMTo#kT7(F!-a&}K>K%j#tlmM0!0H`@2<Wg<R5wF!3TZ&7;R6LL0|Sx>KZb|^hKL}F
z2y&SKF_|0@NGyXw9u&hM42n}k%N#V84H7}LPH~B7A;l>~4M+rJGAJ|<BCt3`h`{0$
zBErBxj_o=awu3}aZ3l^<+71#ywH+h^OHmN_fJ9&^3LyeZQ3w%Oib9CMQWQc2mZA_M
zuoQ(5fu$&f2rNY*L|`cjAp%QL2oYF{LWsap6hZ`+q7WiN&@_e+5ylV^!4MI}5D~)=
z0j(B9qy$i?f@X+OMI<qFNnwacV~EILh{$4yfYvFZ+9i*nMgc=a5ko`?Lqr)x1UU~v
z!jKpdO^nnF5<yPAkbDYCy`Ve_!l=0tG)F^U5d$PQLu?0$z}$=w0l66z@(>Z^&;W@*
zY9de`1l2+yjOq)}ToT0ZpkM~^Kp0gGXr2ku{sE~0@jw_=4QLLE7!im$AYXvY0AW;J
zpt&nzL?GsX{0=e$gi&>Y=DZ;O0@(%f69}WK0nLX&)PT$Z$%8Pe8qi!Bc_OIoF_1ar
ziJ-Pp$TtVm_TgbNB!z?O6j160Vbu5n%|v1okwMB|5H%nXP-+3?CWHtmZJ>&PauY%X
zImbbC5hEgtVLM0!)pn2ws_h^VRNFx!AipEr0}_GNry%!0QaC8*f_NZ|8XBOPR%{}c
zNG^n^0g1p|2oiyq3=#pE3c{%7faYtliO3<D3{e9T0ht5x1wsVocZ3Mc?+6i?-w`4(
zze7Zj<AQh*c?=hVL{MD_5<zw$Bs4%GppXDzRKJ5}ps|T4AlU^`0}_GR1rmXn4Dvh3
zR1iir2Q-h3O+*pNWQZD&2+U-J2*}N#kVlAs>_QcRg)>AAa;Oq7qJ-fdkO-=KKq9E_
zA<r&l47)%gsCI!wQ0)SVp!yvog6emW2rP|3{0<U<wO2tRkoW@W0>u>wqs9(sT>!Zv
zYDoTqm;(}l`3oX~9Ad<as9=~35}}sKuyBUB2V^oVoFO9Qxmgv>&5)1>#SSRcK^Qfh
zL8~VqYC!P?k_TZ_HK3Ih#E3x50rg5iW`HoNF3^e$OcB&t7^H?g5!AYyd~-myBl?3N
zbEs)DqE|a=GI9#X9vYabg<2xuo7Ujtkf4$sWHM^J&tL%MCRlz4xey`(%ee><Sk8rr
zp!*ACGHSd-=80hDfNY1f*+6X)&>A2RM%5*mgg)C25&@-Egvr=NP*X2<HJIjL>cVsn
zrY=koOmi^RV2WVs8f>-?ta~s+3{wO%3^CPUieTy*ias4!H;>v5D#t*j8u_ISX3E4A
z8Ek2FVB;N9gMezQ?}-cyAdKoB#Uk_?1SEnQs@O$P!x_68OmnEEix^)({0^#5LH-6|
zR9zZn=za%@pt>2m2&ylztHCq}Qx~RtFm+*yV48!e22%u6*TCA2=|W7A!RF?H4KYmH
zF-0)L5K{y*R58_HieTy*SlcmOh$({UW=u8ML=2Jo%aGg+5&@N>p!y3T0xDZjMPO}y
zgc{KJ222g6dj>WP2iA6MA&=Zk0)-(lAqFYuK_L$+<3V@^0|!zJE@=jp^B@se3?f8e
zF$fZYm;;J0kQpF6gTWffoW2$Yh8c`7krgcr3<wdB$uJR!IiS%MkQpF6gTV~R9G+H?
zdq5%}U7)mq5P`V|Ap-Ijsv3|B5h6TjCPR9WFkK*Z5chyuUu|s+3?Pge?-Sb?7$9mu
z?g7bzFshouc95HqV+SH)gk(EH1Y{1#W`qdLUl0*YbI?T~qedV%gLHr}s(Wm^(A@(P
zK}}KEMNm@|OpO4%*AEjx^q@f^qq;zG0gBV18XAxk1xlHq)C9t)De87NdWr&xpr$D7
zBB*HtrUsFsU?PYV1riyGx*%Z)%FCee17XxK1f>s55!5gQslgOM4GowYL>R(E5Mc-s
z8Px^Ll|wZ&Fh^V&SQr?zSs55UvNAC2V`E@g&d$KFiGzWmg_D6Hjf;UHjGKW$golA)
zKMw;#EiVIuHy;DTA3g?#6Z{Me)dCC*K7tGkQbG(2y*dmG#byi)S6vwxbOIR|wt)`W
zXlG!UJb{7X$Rq{^Z}2%33=IAZ3=9Db3=Dw`3=BaG3=F{x3=E(nR6`jU7(l0xf=-u;
zWME(boi-57z`y`H`!be+fguij88`z2===iEDFnF;3=AMEdKefOmN76etN}$03j>1-
z4+Fz4VFre2G7JoJ6&V=zgLa(jFfeS=VPFu_V_+}^?anr1U^r^Qz))(<z;M8Wf#IzO
z1H*Su1_lKm28KJK3=CUAJ6RJL81$1E7y^<Q7?vk7FiZjM08M9LkjP+QD9vDCc$dMz
zV3f(g;FZO|z?sd!P?^KPpqa<O5S7Qkpp?(RFgu@tA-sTr;b8#-gJ&TF!-_%%hL42|
z3|osB7-EYV80Hi+FvyfJFw7`nV3<|Pz~ElSz@S&bzz|%?z~B$vaX6=jf#F{b1H;T(
z1_qXT28RFj3=HiJ3=9_<7#Kb`FfbG}F)-LQGcYV`W?-1u!oZN#%D`aK#=vl?je+50
zI|GAtCj-NeJ_d%weg+2N2@DJ;ConMVo5;W*Hwh9aprbRx85kH67#J8585kIn7#J9m
z85kH+z$bh$Fr<S|d1GM6WME(bowouyzbTJ_fgzuP0elE*Ap-;W#1_ygHl+*<3}p-q
z4A9M&;0xM8Cq+~<Ffc$jLNe4bFfi1EvJL|SLn8wNLlXl7Lo)*dLkj}~Ln{LVLmLAF
zLpuWlLk9x`Lni|RLl*-BLpK8hLoWjZLmvYJLq7up!vqEfhKURe44@MzCNnTFOkrSP
zn99JwFpYtMVLAh(P63rupp-tFfq`KT0|Ucc1_p+C3=9mQ6Z;l0Fff2l8C%4_zyLZm
zZV3Ye!%_wYhUE+l3@aEI7(iv^D(ErFYZ(|A)-f<JtcRv8P&)QyU|<0G3FHot8#XX7
zFzjJqV7SJ>z;J_sf#D|fWQ?B-3=Bey3=BGq3=DdV3=H~=kkc~!85tOg7#SFP7#SG)
z7#SG)p(kjpXJlZwz{tSxijjfg4I=}?Tj;48yi5!XW=sqW0Za@GK}-w`!AuO`lQxQ(
z7#NzE7#QX-F)++yVqlmLJ$++869dCvCI$v^W(EdHW(Ec+X2^*gR?G|xnam6f&CCo8
zt;`GzZO~IXmN7Fh9A#!;xX;YM@Q|5-;Su!Y4ki``1``$r20s=Ch5!}@hCmj`X&!|v
z3=A__7#KFQFfeRoVPMz>J>laT3j>1;D+7ZWD+7ZCD+7ZiE9BIVNLB`hWL5@-T2=;z
zdR7L82Ixs33s@N#PO&mDJYi*Ec*e@W@Em$N2s;}CgEAWfgDo2agFPDq1L!;y(1{@l
zYzzz)Yzz#O*cce5urV-9g`Og^m5qVnA{zt4Yc>Xkw`>dy@1Q4(@Ub&6Sg|uOgs?L(
zgt0R)gtJ3V8!2aJVCZ6JU|7NqDeG21ParwL&cJY;oq^#aI|IWPb_Ry8&{Ii7IT#pJ
zI2ai0I2aflIT#q6I3OpLBylh>6ml>ybaOB;^l>mS^g~ZCS<k`1u%Cm0;U)(I!yOI=
zhP%)cP5yE)Fz|9RFsO4fFlccyFlci^PC4=BWMGKpWMC-gWMHV`WMHU<o_sQ!lYwD1
zCj-M#P6mb(oD2*np{Jp|<YZvr<6>aY;9_9V=3-#b;ewoy;={$j5XZ&9P{GB(P|d}_
zPy;<RWeyhu!+I_ThLc<j3}?6)7|udZQhCe8!0?BQfkBL$fkBd+fkBEJa=MBYHv@w=
zHv>Z|Hv>ZkHv>Z^^u(1;ZU%-G+zbqdxEUCZax*X-gPy|jjGKYsGdBYRFAoEQ01pF$
zAP?kZ7DFBe20I=Gh6o-8hG-rJh8P~mX)QH83=C6v7#P;^FfeT7VPMz<J;CJ?4+Fz{
z9tH+ZUIqppUIqqUUdX8~y1WbwKD-PJX}k;!nY;`PS<sVSx_B8F7V<JM?B-=)*vHGj
zupfH*%Y9x3hF`o43?h6C4B~tY3=({h6JbCnjr3_SFl>OHGV)S`fq@Nr!bq4V149G!
zbdj@~3=BU&;#v$0@mdTFlc1-Hya$~&q76Asgh!Ww!AO^ZLB)`PA<B?}q0ta>QpN@|
z28L^93=9iw7#MciFfbgnVPH67!@zLMhJoQV=rjy_1_nt71_lcU1_oOP28J{T28JpJ
z28OMU3=HQS85k}(GB8|qWMFvh$iN`v#K7>unSp`Rg@J(|deVi2D+7Z*^n{C2R|ba3
z(336hxH2$&b!A}C^I>4f^kHC_>chaW--m(WnGXZQHy;KD(1||6ye0pIBc}WpRxSBI
z^}y6KqwL`k4pV!CBSij-HV{F!AgO5)W-j?ZwE;>-g!~un5r&Y+;t)1o^Z)+`o#)EU
z5YK>mJg*V>#BuE677W<LjTubA;vwMk&OrBIn}F}WvS2X6A#RLA+ysX>F7wTBs5i$U
z4sk!GJ1w!Q2i;ST>0d(z&`HrCaddMm84Pil0|^HY@Tr2J6Q_+BK(`EoLJDLKa`>A;
zPbtPG4!Um}B#vn>_VC259(#C#?s~><KKAeg-5U&2kL-TX9V?)7r9tAD?!*?(pzGNT
zu!I{(99wvT#3A8{YCcFDTR4Ekv85}JIJR&AiDOGwAaQKr020TRu0Z10{R@)83?I-n
zG1&c!Jv>3`vHKTvUln%qvHKTv_YrpW*!>HNW9;g&``3uU0DP_+Xs<X7gZ9;fcBO;%
zeQ$-H!3Nsv3fg-N+6@WXH3`}^0oo}AItQ%Pkbwb)LHiIuE9*h4^g(OxL2KAS>*YWg
zw2m0GE*G@U6|{B|v>Fh!N)NOOFC`XnMv!L_<UAVC87iQ2Q$S~>tb?A30y+-`bmj?j
z59GWM&{-Xzjs$2-3^b+#8Z!osErUj`LF@iNYxY2Uhd{f9K>LG0JAy!afIz!`K>K|7
z85kTudwD>+cR>4fKs$6mdvZX#a6tQRKs#+fduu?uX+ZmDKs#nYdt^YnVnF*~Ks#SR
zdtE@gTR{6+Ks#7e7#J8-!6z{?FsL&yFlaC^fKT?+Vqjp<W?*0dohz-&z`y`Heq5E0
zfdLsu@G~&{6J%hh7GYqxCCb1sSB!ySsssbWbI_T03JeVUR2Ue1v>6z#>M$@E>oPDL
zHbmemGX@5GYX*kNHVh1gP7Dm|oEaG8+#vY3Hv_{fUj~N9feZ|{f*2T<L@+QkL^CiH
z$1pJD#4<40CowSiBr!0A6)`YGlrb<|Yi3|L*TTSH)ylxIy^Vq4R2u`s`gR6}>MjNb
zp&kYXt6s=CDWI_5#mB&~mydx#K!AZkRDgj&NQQwyT!w*xMS+2VOM!twNST2_T$zDE
zQkj84PMLv0L79O;RhfZ7U73MFN11^^Pnm(iSeb#rS($;sOPPVeN11^kSebz#RGEPx
z3VMcKlQILtU1bJ_XUYr=`6>(y70|Qu)~YZtgsL+zM5;3|%-3RISf<6mutArBVT&#U
z1EU@T1D77;%s4UVxp6kov*W6u=f|xyVqowxWnc(3Wnhr8V_=ZCV_-;kU|`5`U|@)M
zVqi#dVqhqCVqmCnVqmCpVqmCuVqj==Vqj=<VqoZSVqoZZVqiGo#K3UgiGhK^nSp`J
znSsI8nSsH}nSmkQnSmkCnSr6$nSr6o8FI$jGZzMixvmThOI#Tk!rd4c;@lV*_Pa4K
zoN{AeaB*i~@N#Eh@Ns8g2zG~@m!|H)06sJAnFj-dh9?7qz9$2NmnQ>*zb6Ajm?r~6
zv?t^|wKPu#hSi=747)rT7#O`67&yHc7`VL{7$m$PXRUd8F)&Q@VqlmCJ$LPi7v$_U
z7jFiJ9B&4Oa&HEPeclWVhrJmX{`)X6aQHGXNcl1_$oVob==d@)==(A-nD{a<B>OTj
z%<yGknC;8Ju)vpr;k+*c!%bfXhDV^Z<qJt;JbnxeqJ9hvWqu3{m3|Bi%lsG^R{BBC
zZBqzfU{DQUV9<r0;pP*-zz`U~zz`L{z;Hi+f#GQY1H;Pz28Q<m3=E$G7#MyAFfcF%
zGBB_OGBEH4GBAh*GB5;#&UOoAU`PpMU`U6a_XbMWAwdib(LoFhNkI$@=|Kz(lY$r+
zrbEwu1Eu*tK@1G6!3+!&LKzrlhB7dm3T0rp6w1KxER=!aZ72i7$4~}_AE68ke?l1;
zSi=|?c*7VNM8g;u9KskFJi{0mI>Hzj`ob6(riL*v%nf5;xE{v9a1VMOoK`pkgLXIr
zgF!e0LrFLTLuEJv!=7*kh9lt&49pP>4BQcrbK-m>7#RE_7#QN9XU2i@p+zJEgHt2}
z!-7Z#hGmfq467p<7}iEIFr0{FU^o@Y!0;}Tf#F9a14D2W14Bd<14Dfj14CyN14CaF
z1H*(U28JI|3=F@b7#O&s85nq@85rcE85k6z85j(r85oSAXUU~SGccq_Gce>wGcc4y
zGcc4zL(Z22l>uv`85p)lGcd5mFfa(jFff41V^Fy;HHLv<VGIMq%@_uTdoc_Qg0Tz?
zvat*dzOf7p5wQ#mpfVd&cJ#$EFieYuoGVuq$G}h>$G}h*2RT!2KJ*;91JJYM-o`O7
z{EA~>V2Wp8SQO8|uq2*=;Y&ON!}oXwhJW!43`_|O46F$Z4D1OE3_b}A48aKu3?Wbq
zI#cd(0t16a1_Og$1_Q(OYzBtg*$fO1vKbhjWHT_V%VA*HmBYYrB8P$DG6?4~Fg(p=
zV35vZU{J_oV6e?&VDQglU?|IDV5rSwU}(r=U}(={V7QXcz;H94fx)qWfx)eSf#Gox
z1H;=Q1_r@m1_tqB28Mmb3=Bt#85ojF7#MO(7#QxBFfcqWVPM!^&cLw0oPmMAhJit>
zhJgVzvbd;*fkB~;fkCZ~fq}W1fq|=;fg!S)fg!G$fq|)&fq}J^fkC#FfkC5{fgz@Y
zfg!7dfniMt1H--!1_u331_t9!1_rxM1_q~21_rNA28Mu628Os!28QHL28KVK3=FJY
z3=F@!7#RL{F))aCGcd?>Gcee8GcdS7&-L=_hMcVh8r}n)pS8D_fuX;TfnhTATq|}4
z8HQ0j8V1Ct0hS?<UO=r7&`HFbpr;WZ<A<C`e1;!#Vy}@L1B0+S14D>91H(#31_lLa
zZO!eBS<8Y>Ck54}pc6_#wI=A4Qsmmw(3gQB)E82_Rr@h8%!Sr)pwmgkp(m8Cf}T<e
zs_j50m4a$H&<Uldp{JDcKu;<S41}Ceng~6mbYc(#!-il6hE2f?4EsYF7>+<|r+1-{
zTF47p3-v=!BE1H!eKer8P8IZ2(w)$gNtuvp9nfi{^Pwk_?u&$+L>dG=jkGQbati4?
z=t-nP&{`uU8ghcDKlId4Q0WdjDHL0&K0Tg+VSYRVgIxjx!*=K?pqHU1fr3hH&}pDw
z5*QdRrZ6yE2A%Ag$G}jR$G~thpMl|AJ_CbU0Rw||0RuxyB?CihB?H5$1_p-H4Gavo
z8W<REH$YBCoZH60z}v~dAlivp3I_KvFogFpFckJNFqHP8mwLtw><mL4gK{D@`~b==
zpxG8_J_d&6&~v<(3o$UP6k=cqP+?#QQ-Pczy%9R9%MKd3)ns63gpTI^1o5>P7$!qU
zapkljqqa?kkWt!0&=J}<Hjq)+%g_;6Vd&_q0CeQl06OYA1v=vT%@s0RsOZDMpy|WF
zpyLA>eVqm!dHwFgz`zs4z`z^Czz`qCz)%Llkqivok&skppTNN2n!v!|25md|CNMAr
zK-&(wNem2@Nr>|unHg9Z1`e|`{QnQ?WpXfp?s)`VG736(9(1Dt=#+XZh8PAHhI|Il
zm5R9xso)zeiWw9b62a%wD=-9u@A@nO-`J4OP|Og6VM+{xF9YZ<0!&k47)lsQ!S_gk
zZYoS<0No}9y3H_|Vbm?7;WAXy3o}CyLq0<igET`h11R@EQZy)MfNm54UG@vQ7lxFy
zpTgh_HVHFCNXv(g3<V4Y;9E(O!I!0Gf^Vo%U~mER5*a`_75%o+7>020?M^8SF$|8-
zR0$f#1zr6Jxq}Rpw~HAP89+P*hJ1!J1_dnn8g%<h3YL65>Nn6`$@t69fsZ#!hJXM6
z|37!eqx(NUI%H(f2#{bX;>zkom-){xz)<0IgH7qhmUL`#0_h=KstlYgpj)j#^&cw(
z8v{E72k34RhRJMp+;&Y#kFe?c;VR4fiSgeaY;qD@F1%Od&RxJJXKs>-Q{QKqrM$b6
zjFw^3ch=2G@Kx`r@7Uz3{Y^#xELGc&P40+HiWDOQC(D26kxihs4g@nY{B~O-z2V)2
z1K9MfsbiF>$W>d6O|H?rT2`sfL=~G{KKplhwv{C(u*v<e6wr)|y73vCoUWR%HZFJa
za#U(>aW;{`rth5@i|(u!+dg5FGjds@=TUMCBej6i#J0fqdVG3SSl!a<TCIO()vTr1
z%+#*yGPatvLl2vrXH1fbj6hH%Ho04DbrwhTV;Hc>t+7~O?ICzzIySlJfY~<JytU3^
zlbfDZ?SL!HmibI^zR<~*hD~3V&J0(X#jE77$@RK4c&)m7!UCHdTa2!s#EdQ>Y;qTT
zz5Q^x#Y`<B5SN@l#{3|=M`yUPnR%jKG~DZ?#Y1dzEpoO|xXd)n%#Y4n$bmKfYK;HI
zI-T>ojLpm^7Aq3ZS@kqylbap5ASr0it$*0$GQFFUnb=oN!X`JTa%zglg((i$<YWyt
zrQ-5~gWvfyTyh)r?`GhVn_pU-{VIGD*7##L=*w-}E7On7Et|?N=YG-2yM;~8Kxlpu
zF8f~SA1b~u>y9`!eTf!)<woXrT(HTtYLu3*c&*TeO>Pa}zw#ZIuW4bEJM8UV7j>Yn
z6`P!*#hJP#EGY`u<RE1pc9M}ni-D1Wfk7NJ@dZ@^y5kDO<d$Gy0NsBk*fQgvDCq98
z3ruWrEf<&)T4wz7_hMuS^kQVl*I-~|*!}@*1Zc$`NFQiXBS?UOfdOK~0#>*Y3s~9W
zS{ATEj9_C3^kRb;kq>bNP9q99;6@a1u*J0$a6pV;X9)CShZwP(fGZrh;YK)cgDwK&
zh8RJDM+ErbMhNh+#kC0VL5v{5BM$`NMm!K;i)(ox05O6Dk8BWz8?ix{Ev{vQFvJKF
zJklTrH=;p|Ev}_O3}OTc9tn_y8xbJM7S|FW2{8iGBcn-+h&(cyv_M4%q`V+HX)%CH
z4Uk483@)`cFbcK=KuWC*jG#Qin9vgN4^%3FFarZ4XmJ3NCh(<wpc?|21X~XL1($XX
zpwiBPDWT=SUyx!w21clDjLe`F1t^-qc3xl-Y%zf7g_o2De?e+Ndi5BX5c)w&5s(c4
z>rY@7Y+3LJY<B`PTU<*5b3)64KOm(r{dx?{NM?Z6F(4TNHsb@cV2c36j1M3)J}@V=
z2>b!5L^eZ@fd$zd&_W1=L11$lSOi-deuLf8zyc~DSQ1(qeuEUEo1+K57Z;?Rk(rg9
zlbaXBgki8*0<3~9AAW(&5&#wd0;~xwA3#e;8L*k92fi5>WB}AW<kmabJWzF#05K0<
zoh1AMDZ^!+9{6@#WHUi)JV1O{yc@6ywp{oLcB26sTU?6)TSCi)pCDEE%+v$lm5Z<T
z%wU9<k{O_Mn864sB}pi&Em+`2Sb(C!f(2p(31u}0JKP8kcDA?{4t9tUm}NE23it*m
z+=v^TY;i3&I3Y%m;E@$Pa3famu*J2k;DH!Hf=4R&;YL*Ov&FSk@I#Cs!6P0*a3ef~
z*y36|gdj$c;1LN?xDgVfY;i3Tq7WlU@W=~sxDhYJ+2UGWh(nCP@Cbtdq`(3tR#?Lf
zbO$Vd3lB5g2p&*Y=V1mJ0b2M3O0o<L;yB~-4x&AF2b3Z2klr3!gJ_Sf0ky~0klr4v
zLA1weK<%*_(%WM`i1wHds6FOGdV5Sp5FUy$f^2auGJ>E`^!LJu2;9N>2GJgS18R@G
zA-z4e2hkqe18R@$A-z4;gJ_TSfZAg{qwO(JpJlYEk4Rbr*wn{fSdr9=94)m#bpWJ=
zJX&fY!eRxY9$W#c2UmdWL2OA2XGgSx4PFUUfLebQY>-NTgbLjQ(LVA3wU0cY?IRNE
z5eY>5NCMP8l7P04NNAb7Kvak?Ko#N((ksLrhzfBBs6yO9dWF~_0uRm(5w^IN4iQLj
zlHidDMEfWL)IN%UwvR}N5e+H0D>S6o;#xGMAg;iS5uE7))T0|6`+^iXqXQI(B8TV!
z3Th0i;!K^OelRq3!u!FXky*?<g42l6VO2z=4z*!bkjv39B&QNT=72L@j23*Lkc9;2
zXu*dF3%VA3IL9xDFZgg8F<S5;B6X-0d{ij4a2he1v=HfHbgB{&7NZp+A}mHLL_}Cn
zp+X!T8bbu<=zu;VEQlY_2kAk>kf!TsPXH7wkgynC{(}gM!Lj^@_|%EB89zEVj)>He
zH#ZJCkOSm@WXum<B7(iS=IkZHfNfr&0oecu8)6Lh-T=fH%uzO+#$fMkLX5#2jmBvV
z_7aR_W3V^hNHzw0?|@`uuy;O5HU@i%MzS&3n{&8~!P$$%p8T*SJ)9*Q_N3?Ug_-Pd
z8i768k+ie{dy*r`BiNH0NglzT)JXCO_GCtqN3bU`l01Svd13Pi&ZLDaU63%hhAUl=
zkhE~63(V3CXX?b2E=ceQu5>|yM{uPJ5<G${U69}rT<L-Yk0{8%XFC;S*y36gWJYH@
zSs55dm;Vfk<v*hpBB)sj>4@Sg_(;g?xC%ZJN-bOk9|@%vu7ZyQkKii!Fg=2^LL5z6
zqe%-C0t^hW<<XFAM%Sc;Gj-x>u91*Oa5dL3^9ati7Ov(R37LJg)B+_kQj-=)4;qGy
zEMPCSARSH2Siw0YfIWFZjKNG|IE}%c#306CCNrGIU{7Ww8-qQmk!%e1N|Iz_uve5M
z8-u;FB-t43r5Y|{(2^dA3rWGm553|n*|4WzY&~k6Mqp39*m~4BjliCAN$OE!Pqo-Q
zg0p<Zo?@|i1g8<$Q!6%);4}hzN+ro7*i$J<9>JbMv3Ue%q!ORBaE1l(NeibD#3wDB
zMvNvcM3FN%k{0m=AI?Y}opVA&>Ij^3!dYsKCM`s|7~SfN2n(XO`eK{TB(=E)vK9@K
zY6Q*%zL*I<#Jm`EHo{`kPl72%>^v?8?L00fedn<=V&}0lXy>sr={t{w5j&5CK|7Cy
zN#A+=m=_)vk9pbRS|0O4hTAbaT{!EJ&4`m=HiJ%r*-ZLLFwKaa$IYOf$IYbgJPt;T
z4+n#G9tV@Y^H>?N^H>?Q^H`bmoyVhPCn(cGa_VT=i3p2<E;|Vi)?j9MoWmp7`y`OQ
zI|;^M@0XBl4EDYW$;M#s`jTu6_U<pq#$fLPlWYw3z6#04VDAd!G6rY8JGwv^Q6P*i
z5JrRrMGJ%pmu#5B&>*YPFvJ)-lx(BJ(C`K)(xHElvV?@N!B?`8U<|&J4bvE$CEMsg
zA1FIPntj+SQj&&Vu~(wlhF)=YO0ZX;qhrXR&g$r~rQq}NM#{0Jpsb08A+_CT16&+u
z9|wE+0jZ`)=;Pq4rbsXbUo}O7G1%8ulI*Dua_}nrgB)92%Lh5om=P{x(2^dA3#llG
zA1eXrLBoT?h|zomJ@0xnAI<oOD+AyR8`AR8XybGA^l6e>(by{uY^`XtvK7RIlx*1h
zHIRgk*{#Nz&_}z~xEmVS`#O*y#_WOO3}Srk6%vfW*IpsP80<+8m#0AK4Goi8y^j`-
zqlF`F3P%>4=T>7c91-VMvrNEs;x+d25Ol0Q<iu;HNw{=^x@<oG!QEH*^&vk0nHZSB
zN6<4cFyOQk`!op?12a@7Zr5TT&|zX=f$GHVT2R>rbuGNJ4RS3jR3~oNVlU2^7}%gX
zal00K3C6_04%La<wV*-^>RR|kARyOrKy^~%3`CscRoIgRNl6-%HlW8S!qW!m7)8u-
z8>cI<ClZoI&9J8yk~{)RHc*eilMRU;!Jd9d@(A{XM3P59DGKTlc#6XA5h~PQIE@%h
zTA;=Sq(w2Bv=Cu|z5XI8kBlZQL~xEKEksz1CM`r*j8=$<upp{Jv}Ryn09|<s(gwqz
zt0`e@5DmI^5k$i<=z2pK8$^SyUIfuF47z3$#s<-#>lZ;Z41=z>gt0+1=xRz34a1<T
zO<`;h4Z21XM8h!XdRiD8M1!v91ko@Iy0Q|+2GO8vMnN<TgRc67u|YKG%1ICn!=URh
zVQdgRzqB|TM8h!XN?I5jM1!uj1<^1Jy2cU42GO9aB0)3^gRb6%u|YKG>R1pB!=P()
zVQdf$y224e!!YPtSQr~bgRYPT(J&0UUK7R!(V**YK{O15u7`!OK{V)^OArmipsQD5
zY!D5)CK5!$Fz6~u7#l=`uI~lWFbul#6~+e9pzC2lGz^2T28FRfH0WAg5Dmkit7c(r
z5DmJ@7evD_=n7338$^SyBnHti4C7DuP{RW1A%d>8g~@?v&=s*D8iqkvs>0YH8gyMR
zh=yU%HOe6Nk`Fa3puQrE{{zYgUAqdBhhfl_urM}=23@%eqG1?xZ83}uqCwYpf@l~9
zU8@RXgJ{row;&pZ{|`|BiVIM~85D+~OVY4;W5b6U76qtB#T}pwBnot4o3oc71Ioy1
z-UpCTEFWuF7BCzX2C2ral^2^<kaq0Y5@Z_P@&Er2dxaQ4*T^z6aI&z1uiWNj!Nw*|
z6$1lt>Vz2h8L-=f>=t6pLe_(eO@Fh94+~swMiw9X?!UKA&fi3oL)_zV!pkQf8e;p_
z%vvgQ<k8A|SHH2ZTW})rhq&4u`ulPqY)rcQ<=Q37h&7wSB=&up<CV9KGhvd#`#pD0
zIdl0<h+3p}FEnrC;7vWCf{L1<2J-0&C5KEo_J-doPZA2R{S(;cwJbnpR^v2@ck5I#
z+^$WlwD{}tfml25ea~~c^>E(&9qne!W=q0Mv%dLx@qBc6Vr0M}w5Fi1&d#LbBe7;7
z=RjO+A%=u=GJiuXdp0Slew*Vr-%eOTLru}^_>v1bb%%aUYi*i*XsJa4DAYhcePz7h
z|E-RyhXxb*HgomOX?yayX?KFaHW4)*k%lb?aw0y3=-CtNx*0ux?)I%<a!tv+_KU&p
z*d(QEDuN4~a@x){re$2($dI_>`vWVGow!_%EH1<#$-v11!qN<!ETGaE8=F{{A)Abg
zO--{vp=+VRz~G?4z~G_5z!0dxz!0Rtz!0gyz!0m!z_3Y!fnl=-1H%pt28O*F3=ABa
z3=Eu_3=9&Q3=FcG3=B=03=GYh3=AEb3=ESs85n+PGBEtsWMB}|VqlQfVqln}#lSFC
zi-BRe76Zd3Ed~a8Z3YGfZ3c#eE({DOT^Jb7x-c+Ybzxw*=fc2n--UtUxeEisTNeg~
zPc94$hOP_@My?DDmaYs8wyq2e9<B@wQ(YMtrnxdOEOljISn0~Zu*H>u;kzpX!w**m
z2Cg^;2H`jc2C+B>2E{lA2K_h&27@>T2Aenr2B$a%2JbiqhJZK*hQK%mhO{^ahMYJC
zhSE3&hQ>GshNd_MhK@J}hQ2rkhFNh83=85I7#7AcFf5N_U|1i=z_2@xf#F~r1H+*>
z28L^K3=DVT7#Lo}F))0IV_^6SGCP@pAvl?Vp*xv@p(mMvVQMl1gG34ggJcQ=gH#Fw
zgHj3uLum>FLs<#~LwyPZ!@Cp)hW9B93?EV$7=ENMFc_sWFc_yYFxaFrFnFagFnFgi
zF!-f0FodTuFmR?bFmR<aFbJnJFjQtRFjQqQFw|!-Fo<U|Fi2!FFvw;yFlc5mFlc2l
zFlc8nFqmX9FhpfBFhplDFr;KLFeqg+Feqm;Flb~mFwD+oV3?E5z%VzPfnixT14DQY
z14Bd(14CjC1H;1{28KsD3=EHR7#QB<Ffe%LGB9}MGBAYXGBB*jWnfsD%fPTImw{n(
zE(62ITn2_uxeN?{av2!5<}omA%VS{Jp2xs&Adi6|HlKkZE}wxRBcFj`PCf&}+<XRx
zdHD<s%kvo+WC|D<WD6J=)C(9GW)v_m%q(DFm{q{Quoy%aGBC_8WMEiY$iU!U#K7QD
z#K3T%h=Ji`5d(u>2?K+E2?K*=2?IlLDFZ`DDFZ`fDFegaQU->7r3?()$`}~-moYH-
zmoqQ~lru0yl`}B>FK1w2s9<1VtYBc^s$gK4Q^CM6w}OFTc?AQ*zX}G1{}l`j43!KF
zoRtg=Gb<SwW>qpUEUIK+SXjltu&9cGVNDeS14}gn18X${16wr%1AjFG!~bdq28J32
z2Cf<ghV~i;hK?ErhRzxWhDkLH3>Rt`7%tW@Fx;+TVEA0a!0@Gpf#G`%0|P@X14BU_
z14CgQ14DHk1A|>X1A~1%1A{|71A}Kh1H-a<28QMJ3=He*85krQ7#JiQ7#Nfr7#Jot
zFfdGNU|^Wuz`zjS$iR@$$iR@;$iR@*$iT3*k%3`bBLl;MMg|6xCI$x6CI$wxCI$xk
zCI*H}O$-c|n-~~wH!(0IG&3+HHZw3}H#0DtY-V6M)y%+fuZw}<Sr-Gtk1hs=pIr<L
zOx+9&BHauOqTLJ(^4$y!R^1E?*4+#Y?%fOw3Ed0~iQNngsoe|=mE8;sRox5>jol0k
z6T2B0CUr9~%<5)fSkTSDu&|qfVRbhH!{%-VhArI;4Ewqn818g4Fx>5CV0hNez`)qU
zz`)eQz|h^pz%aRofnjbB1H-%?28QK53=F$_7#Q~SFfg3#VPJUI!@%&qhk@Z&4+8^R
zF9QR6F9U->F9U;GF9U;mF9XA>UIvCuy$lTddKnn@_cAb?=w)EI)62kcx0iw8X)goA
zuU-a*-@ObB%zX?DvV9B;a(xU88hs25=6wtd7JUp1_I(Ttfqe`NL46Di5q%5{`F#uw
z1$_(*Wqk|`y?qP}eSHiJQ~DSfmh>?&EbU`pSkuSAaHx-g;cy=V!?8Y4Y01FA!N9=4
z#E8K2kk}w`YV)TtV%mw#9#X_;VJ5o2ak&TGZe)G5kV7^fnT^jbV%6a@V=&3l+CQ{5
zA75A^+l|b|rw5-Lv1TBvqXnB-H{!CJQvJBhB}N=%_kRcG21bUE1O^B`Si;cH*v|;!
zgUZnWXv>}nH0T5pIMT<!FacE3IWRE%{|_35VrK|t$YaQ6$YaQ7C}+q6i-HPYkZKTy
zr~;{GU|?eS{~scTV1v}Ui-FdGFfp+)v$C)<F|)K+F@Q#}8bESj^&pEF7#KnrG8u9i
zQW=UF6d3#%QW?q_6c~aS@)>d&5*hLs7#K{&CNMHFu(C2TF|xBUv9g2oGB7Z}91r4x
zSEL0qR5Ii;Br)VO<S;NW7^{J8=VoJJ0s)-1J2Dh8WHKaz_1Hu8aIr8kGBGi+w1Y<G
zK;}d7d?=03qrl+Aki(G3kjwxY3AcvoCuFAwLn=cKLm5LVLkUABLo!1m0|SGn+62Z1
z1}3<Bp~G%3?V)!5XMnJf?FPjWNPj*<3PUP`0)sC@FaraFy(!q|?97}@Osq^SIDPKS
zkk3#G_I)Zt5j^Y}7_8aA;SIGHPGN+1I722w9z!}q3Y0EpU|>*UU|}%i=#XIeaDnLw
z3*-#R<*%dLI9pTOKDVT{nKD*MGcYU{VPM!%%D}+LV8g(`z{0>R@EdLoNEDPXKo}&b
z$jtBo*=ms3C?+-pma-jS-@>qkp@Bij0F-4U8B!P+7$g}O7$zdEzaebe`gm+=5ZQyr
zs5uZ6PxqOzsY8hU|1SjP*f9h!6fvYS=rSZT<TK<kq%nX}VJbr&LozrmhcJ{flrZFj
z(<dl*S}`avI5QM6<TDgA6f@{D6oB(x2}2rKO)i51g9}3{I8Ws;<TDh2OO!l@5(Wi^
za)wNX5{3-0etiaK25kmys2g}092rs=a>400lcAWQgrSHb5o#+3Lorxq9yo91fXfG{
zwoz(`hQPo73=FIch*S&n2B@rg&^rIqPyY;o)e|`wwADA?GyqKiGlGVqKqV3b!wd#c
z?Z&{cfPsMll*nIzOD+b6FAN|v85npN85r0Y7#JiN85lrSlnS)#V8O`1z{$YC-~%-)
zf{}rNi-Ccmgpq-Pn}LC$fsuiMhk=2ihmnDSmw|y{1|tIl9|Hr!5=I6F(4@{9Mo_+G
zVA#UQzyO-U*#qkGFfcGYVPRm91C{m+3=9E9sk+Jed1<Ldsd>q%3L&K>`9+zDIaUhJ
zMft_Wx&=9jC29FZxe6|+WvMy&1-YqtB?{%4B^e6N`p(+g5OY9bz)+N`3o;XAzhg>n
zW?p7-Nl{`+ei4I02uK{PCM7o$oelDbUw%<;Vvb%)ehEW9NFL<p;_}SAl+>IYP?iFT
zv4HAj152>GL4NVgOfJeV&QB{*2+uD{QLxlAU?>95ZN(HWzQ)YJ0A@Qet@ZtTkP*!O
zG|y4463W)wYY_1FAR{O)K<)z3pn3&FgX$I#4U6AVdNc$^Ltr!nMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhm^g#fPpKWIdN>FU|5bM&MICQs*J(AN36&IQ!3M-v0}*$trmbx@x(
zg8|Y<F94}!U|?urfQ$k3FfcHH7IIEuU|;~9Lp+B8($`-C9kyP>0O`wbVPIeoV_;y|
z!vN{~A7Oxu1@NQw@j-oQryzev7iWK81_lf8_ycIf6x7EBji7>P(0Cq*e#^%R9#;Ux
zET~_Ojg}LDjA?*IlqnoL;1Pffi-5ZKpy7{@%#xf`umeE>#K6GNAq*KW0l5P-{0|bg
zfR3er`t%?^DEvWVAn^g7F7X~do_^lJ;87aT7>6SR1A~Jw1A`YM#GE1qYq0T}P(H|9
zkiS_O7#QS1<1Y*h3>ge13?&Q&3|0*K4EhYo3}p<(40;U343*%~#SHK$q8>vYc>G--
zst@E2m|3+9MPNJBaM+>4z`&4(WCLg<zlfm(j~$@73DC$U#BP|)6$}O7(Zw<bJ%%cV
zOa@Ro0{H>iEnW;EV7Dmaa0_TG7uCPz3?Qfno<9MN&=)i0gI%i!9%;>G0QndaR>=0m
zGDLyxQNUpjD1x!ulLQ{41&yBOGvqKJYypkCf<{kE!8W4%OPRq0Y@aL+`#|{yyL}LI
zQyDTC3XyCB#T~jGHVk!OI|OmqA&rq%Kp|Jopa&lLEr6yI(D*bc)Jnmkd0^jQhMxk1
z0@yA-9CqRMPdY;hLk@ThI+=if92lg)cCg~GLk*{YKqK3r*Z~d2r7|QlWFXlD@n;G{
zDMK<t2}3c1K0_fx3D}qD;c3pG0k$8sya1HvKw%D|VR=s-r~SDM`QQ`|8b?oL&;yUz
zr!(j?K<v(90J#ZbHz-fQLL6j1x*OsdB*AU~O*w+>2B`tjFgM^11LEC~$50G*87QZq
z+t1423%36cbQ~Dnemy*40Gg|V%wVABNJyGa0nfG;GZ--#fT2D(Rg{2dMlu;Hu*Qip
zgBRF6KXJIn7^izuz;hjm;2D%;hEi}D2@82hydbBE5{7IBeTEc<VupAI5IYrKawUR8
z3lt9MVP(N!0Cw9q9Bu>6!(h+jpqZg!hE#?`h9YQc1<lKVN?4c+L9;XZpn+xZd@m@~
z;?JLM4ANk?e8%AxEsSsim7AdXQP6x;F@qj>wkm}o0~~6IQmz0zw*+!;A~<w(p{0Z|
zgAvyFa$*PqyW;~6cgSM6qky5D0c0Ae27}Dlf?Ncd_ey6-Wza*a$uP?$R|XfbeQ$Bt
zr-Wf2asEzbsANco`W0I~;bBk*+xrZMy|B6mlxDznKSKyZK0`8tC4(`834<YnAvhO6
z>U<ss6|h+k$TrK60km-hR8GLmx<!Fmp!N&0Syw19%N(i~=B{&4J}5td?0}VPgu}~_
z!3?SwX4VNPpB%GHp?YCv9fI=7G0Oz17iJcyy$kXiIc9;%Gmu`GS=*pylVg?<R4>e|
z4NyKgW*I{D!pvF)<&$F;Xzmf>M^$jT2lX33eA3M_KuY%zv*wZQE&~Qcx`&trniD10
zU5IoKF>4Y9?n0z{h*_Zi7rE|2q<e^2Z4|f*k?tX8ftD$e>n=pPhnQ7Gfx8gt9%5Dr
z1!f`AJ;W@~iY;>e2ut_83_9R+59(i&V-_gY!^(S@SxIF25o8uD-NVd^p};Iyx`&w+
zMuAzdbPqEtfC95%=^kd57X@a)(ml*9&{zt&@d!)zFth9^a2G7y!_0!kE2-rwC{4i9
zJ<Kea+2ojoNcXznbPpO|ATPWu;N?9p1H>#)e~4VOVBrHZ3p9R1u33n54{?_i+3{!r
zZ|A_=B|?E&h;$Ee7ijGZxqd{Xdx%+}m9FHPg-G`hvp{2H<eCLao1k<#(lMwF4GTxm
zS|m{08Z>ALTCW9)E6_MAXl)i~+!WL&0j<XZr3cVDEYKQM(3mc0{UT`X5-81yLdS1G
zV>=Sib(NrW4H{RHVPIeY_2oe0W}rR}DDNnOSI9CjC^IlHs4y@vs4_4xfbu73+(d(c
zfkBgjfdSMH1@((TWq>XN0|RJ00o1<&l@Xva2Nai}v;j(MptK9B13-BTlvhD@o)rTF
z1L*J)(73QI0|Nu7yabK&g2q}wW2sII3=GZ;3=E($*_DBT!Ht1|!JUDD!2`4gnSp@;
zRPK9&)~hivF!(YsF!(VrF!+Pkm@zOg1Tru%1TipxR~d&eFffENFff4XuW$wih6n}*
zhDZhmhA0LGhG+%`22dRt%fP@8$H2e<T09C`a}HYP4628d85qFpP*cI<s0<A0;65k=
zLnZ?QLly%Acr7((4R<aB19$~^J_7@IY_yPpfuV?jfdRDA7}RDdWnf?^V_;x_?luGM
zC}RM%i=aEjK)b&f>KGUp>Ot%57#J8D85kIv7#J9up=0%}3=9mQ_FX$@oSK1wp_74u
zp^Jfmp&PUwkAZ=qmw|x+wDYJRbfzI_%`5{01E`%knSp@;G`2sLfq`Kf0|Uc!(7HVa
z28Njo3=Fdv7#L<VFff3|{O2+-Fo4?IpmpP*b%P5T7#J2YFfc3zt?y%CU|7n)z_5&g
zfnhlV1H%di28NXk3=E)t!)gWw2GAVAS_TG&bqov)>lqjrKz$R?0UMhb7#KD)Fff4T
z4z@BdFo60$+Zh-bb}%q7>||hI*u}uWup2t3u$O^>VIKnn!+r(^h64-?3<nt)7(o5F
z!=SZ|3=9lM85kIjF)%P3XJB9e^%YMtFfg2AU|;~*bB2L|;Vc6K1E@cGo`Hek0s{lX
zMFs|jOAHJQml+rsKz-h;3=9m{7#J9?GcYjRU|?Xl$-uw>>Q~=pU|_hzz`$^qfq~&3
z0|Uc-1_lOD-~Ay21H&T*28PF=^@|J)3{M#t7(n9#&lwmPK<g=AGB7Z_Vqjo+&A`C$
zhJk?rG-mORfq~&Y0|NtSyyPPT1H&f<1_sa=4rtxwR|W<K(Ad&<1_p*73=9mQF|c0@
z3=E*T5zzSDUyxrI7#Kifg$#@g42+<870}ozBLf5I#1harDjR6MCTOiDXq_f#Z6;`4
zCTNZav>p?*78A4%6SM}Ck%0j;jw}RPhsnsmAi~JNAj-(VAjZhRAkGL`_bJK9z#zrQ
zz#z@Yz#zlOzyKQCmSbdKkY{9I0FA3FGBPkIF)}cK#_~byLsc0W7(jCj>WmBw8jK7K
zpg9dKMg|6LMg|5QMg|65Mg|5wMg|6bMg|7Zyptg#1A`GG1A{Rm1A_@81A{3e1A`eO
z1A{pu0|RKCsU;%=gB2qKgEb=qgAF4CgDoQigB>FSgFPbyg99T2gCipYgA*eIgEJ!o
zg9{@AgDWEggBv3QgF7Pwg9jr6gC`?oo&^;Dp!KT0j0_BZj0_C^j0_9`j0_Bcj0_Ax
zjF9vZ!pOi7%E-VF#>l`B&d9(3TGtxM$iNWA$iNWI$iNW8$iNT_Rr~k<|Nk(Y1Qi3>
z0m9II4s@YFyGruGYr<U_Kx@N`z$FIpwW1gUD<jOIpt_ii6I7c(@)ooxg&TI^eVzqq
zeQF9L0|Thv2a<3Bj~#+aK@g90%*DV2w;$vVVocb`z`*bkRB13UFc>m~FeEZ0G2}3S
zN?u}gqpIO!038nt+Vumn9kS~ORRt#RG^oz_2N4ekkNc-ExPV9cO5tntA+m%?DF!A+
zP<;)mw?Qr-tOKG#H33xfgVt#WGk|Ob?JNSty(f6z0cei_NCdPO2ecCbq6ZtPK}Ps{
zgRBNM9>8<N=sqXSJr)d1jG%T4$nPMG&5h_{!Hf(He?W~D2GE=@XwOeBLji+7LlU^A
zMOTfVFT}va2uksw_7bu7gG>a~=^z?nD`c)GfFU0|at{(G7K<@3GJx!bVQl(f`3^=S
zs{us?y~`Y!TSw`E4*^DofB%`eAmtZ&*$ryHqwPm<$xki??UexU*YFJn?NM;aPX=#1
a1hMsC@_H5wUo1C)8mGvKZInIeLI41GX9*|(

diff --git a/xpdev/tutorial.ppt b/xpdev/tutorial.ppt
deleted file mode 100644
index 58ce1a865f9ec7e520ab7f3b0b2238bbfdcb7af6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 84992
zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;!F$-42xlW0S1PD|Ns97abfgA1_p*j3=9na
zN5PN@0e*%T%qJQd7#JB|GHWm}Ff@oUFgy@|U=W*?fq{XGfq}u1fq@}{0i+HT;|z@a
z44;_2m>3xJ8BXx?FfcF}FkIqify(nUTxG9e1gYE3?*i6a#E{95$dJRpz~IM_%23Xr
zz!1cc&%j}^i$UU+5QB{AE{2S2LJR@dgc#l|U^n0ZX=Pvli-qU&8Zd~kC<!n?%nD&h
zWXNF1XUJtpWMClEECr}p;S8A!c?{_cDNwqYfq^7<F^RA-89>c)X2@qKWdQjzm7$11
z0qRc%68y+!=m0e<gdvk5mm!s*7;X+Eyg+`=V_+a0UJRg^SOSih25>krgYzT<!%}`e
zaM%iP=rMpIh#kyZ$q$NQ5SxjClZAo7fnhN}$R1XP|9|Zn7#Nfk7#LE(DiJgTg9E5I
zU;yd*|NlK$7Lw>CKx~lVtPBhaj0zwY0|P5aJwykHoxq&H3{nPSH?TB-oXZf;@Pz$e
z07&#HJ4gUj^6)b}V^0wRiS6PSU|?V<VW?y%U`S=qV<=}xWGG`0VA#bEN-cT};S7!p
zVGIfkyZAxQGGZ`b*u@Vr!H~g#!H|K0;W@jE5CcPyr<<FI5CcQFW0-4NZixcOXhsG`
z2Bk0tFlJ-`nU<EATmo{zBS8j+l*E!m5Z%yN-_Y3DP*+n|-_X!dS6g3KUEfgGP+!~F
zP~X_l)YQ<}+}u##+|u0G)ZEz6*x1<ASl>`rQ(sq8S6fp9Qdrke-_Y350Fh~^Z>+Cx
zZf>Zn2k8eXZ)pY@R9|0LTVG#YRom29SJzNqSKrv!(A3=2)KFL70G4Y6sc)*UtE+8j
zs0S&iudS=A0a;R8*9a16Xl`k2Xlksl12O9B8yf3s8e5w|8fxkr8*6JD8|y&0zP1+Z
z8HoM0^-W+u)YrANHq?ULR##i!&{SVj-&9{;S6y4z&{SJd-`-eV*U(sBTU}jWU)9jo
zP*v01)>zxr-c(yt+1S-oUDMdySl86uR$X1!R$oxo)>&WP(9%#>U0Yk%P+L`BTT$EE
zR#j5pQdd*o(%II~(9qlj3RG}_RyVcQlvUO@H#XGQ)HXKMHg|TE=hk*LRJC@uRTVX~
zv{psN&wPA2iXr#L!g9Xg|84AtZl-q|=$+afHE(xuSG+{r=AE%ohi>Gtc-?(e6g+L`
zT5W}uS7+qrEuP@1U$CPoB!1T6X`u}Z!)sP_*HqVMS0$$QEZUG~?zLvML&>s^<$K!V
zgUd<_=9DjA=w7&cMrC(RZ~pYu_*1bhm#e!cd&YIRCe_V3lNP#WeW6Q2)x^}S$tA^$
zTHITv7Wd3A51u(Ep?X?HO6II(iAkkxg%g&=<~7fm*IS&uqbq4jLrtx9^2(yAa}%@5
zd$QxxdrnQx?8x)(U$tgIbw_MkM()ZbGpbVB8e+4WW-cx$ST!XtJ!$gHth$NIHY_P~
z%Bv|@QRy~yaY}PfV%M^|ysE;G#`f&lEt!+*(i&TG%KQ4-TUwhts(U7-7F3n>wiPuO
zmUUzn_s_5OE9jiL*f()WPSw1ky7}En(eqjY3tGBnOe>hUaav{Qq-B+{Nf)<U#*}qT
zcFNzKQ#mbt@!a022{nsas;cVR{4y3Ngiq<JF3+CWQQA~Lts}Q;!n*F{>Js1bIo%aC
zjiq%xv)ij{(p!6rR`q+gFKBOT>+R^zNSsq$zGz-~`OMCWmX5lT+|KH(-kRdZ-2Be^
z*t{v-ZC$O+6Wa=#GNS9-YwH?w6H6C&7xwm)##GMfudHZnZ7Hmp*xy`JS3jXPr@FPT
zwXv!!zkX72<?Q(_*@bnjon4L9ExnD^Q>Iimcb8OGmb6Wn*;ZYe-&#;Qr!K9gzH>rK
z>5TmJn%vs<)Y3@}eQkMVO>J!*P0da9jcuhV?fq4K#ZmP=WgT<6r%os@t4+_E)LhVB
zRoL6w*wawbI=iW~qPefKx~ZwFzOt>Urmdo?zrM1uwzj#op}MiZvAVr~a$9?EaZ*uJ
zdr4V;VNQE(U0G#kYeV&f)`W_x$_b4*(G^Wu<qZw>jTIGb-Hmn4`GsXg^-Uc$Rn4U(
z4HITeZmz8@ZEo$GP~Or~RM9@OqprQFv!%MLCB1A?WBb(3j>^L3_QuZMuGZr6w(6$V
zlE#kqu8!u)>YA43yyA+A^3;}j<#iKk>-#%f`)dkX>Wj<U>PlLgJ6r2pYq}=YS9i2m
zRx~x1)^#>iH?~#hRQI<wcDB{!l$6!<HdmLGl-4yC=GV5?G`BP~mUp#Ov^A7g*VJ~@
zHg;6jb@nv3b=NmGRW#R^Hr3a)Ha3>!we_`Bw|3Mtl-2aKSJkxFwRBh3)#lZ;*R-{k
zwoUBFFP~Ol(biDg&`?!Y-PTcCP~B2lQP)u4-rH1M*w$T?SKr!FRbJ85R$brR*3(*5
z-PG9BSW(^HTn!4I=7#o`hOXx7y88C+>gwKxx~`^%rpCs`y4LpE>ZbPg)|%?>rt-SR
z#+u5il9I-j`tpkAhRTNK>e{x}y7Kbs!lLrZw$7@mw#M4l&gROp`nHPFhVr`hhL+CO
z+LpG)_QuM_?#9Bp=BkF~me%&F(#Dq7=DPB#=H{B(#`=bu`o^Z#y1J&;`i7Rq#-{eB
zx`w*i=Jtl#>ax0~ilWM<rt<3k?)J92){ffR)|UFp%BGg)`qHxIuD-5@*3OpNx~}f#
zs=|tv=IZL|in^Az#)@iCv0YN!)KFW~(B4*GRo&8FRbE+LUt8PS+0@X|+}7J(-`d_(
zQBqxBS5;G6)z;C{R8ikmTi;ez(o~UM+E80w-O^ND-PF?5)YRJ2($w75Qs30n+*I4p
zSYK1u)YM#G(a;Vm&FewcN=;)+O?^vENqK!+XM00kV|zz)V{Ls~OMO#gT|-SpLqm0a
zZB<QOV^eE=ZCgWSZFOZ0s042U)lAh@wav{<&7ioeudQ!xZK<tkX=&?iZ*FaAs;;bS
zXlkr$YN)HLsc&wsu550tt#54vS4?${EsZsGtu0M;RSgXl4V{fu^;IP$rL|2htqs)`
z<@FsMjkV<^RrSp+wN+(>HO-9;HFfos4K3BRHC0vRRW&uW)eRjj&CQLqwN3SnO-&6o
zb+wHxt*wo9^=)m9btP3Dt?g|!6=ju;?H%2{&6UlaZB31BEoH@xP4&%n4Ndj!9rg9~
zHFb@3wRQD%wGHiU%`J`f%`GjU%CxS!rn#fFwz9sVy0*EswHZ{sG`BWaR5#VPv^CXK
zRo65%R8^LjS2s4+H#Sxj*SELUR#w+Fw6rxgHq};D*EcseH&j<v)Hl>N)K%4jD$n}n
zhB{Ey+|*Q60ji#wn(8X68k^f%8XB5v>sy-|8>%ZoHC%O7U3Eoyb!}ZuWnE)UZCz7K
zU0r>3b$vr^MQuY}eO(=>_OEYgtZS&Pt*@)Euc@hPtgLFRtF3RWt7~a)Xl$r!Y5_Mf
zsw-<78yf0byBce28=9M2+nYe@!SPVn)Y8`4*4o_E+S=IKTvyl7*3sC|+6-zlG&D6e
z*4Nh6*Vlrgtg*haxgJ!HgPRdGwG9ompw<GYNzqVW-`rSTT~k%v*i>Ir+fZLy*WBFL
z2y#(FZ4Ia`QCC+7YHQRrHiH@()%Bp(M}2KgLqlC%T|;wYV{?6NV@p$GBd8%%-_!sy
zunA;!U0r=+Q$s!2C3OuAHMMoMwcsdjs0Ufx*iZ**b%2^dP0by>6|wQfvu4!wbd=>5
zPh31XKfk=7rmd~LuDq?Qv9Y<KzOBBvq_&~FsC9B(ZdG@0OKEW<r~%SkUs}=L0t)&1
z_V)U+3UH&RIH!4Pb6I6YMMYWjgtpf9(%kCSmZr+`*6RGa&Zg3;#-^sG+Ul12isH(y
zwvvjz{>JL6=FXZ@Q0A{`0+n;~XS8Hx6_#{PnbuvFU)(sczpcEmy1lQhx~in2uC=$J
zq@uB|xu>bRzNxafs=d3hwY{UWvAU_NrKYT;rnSANv!=GLuDPSJsj;dals&4->zdoT
zI_rx|8=7j{x@*g78rs_H>T4>R+M4TXs_W`&o4ea;YwH^tn;UDZDr;(Mt7|~bv%31)
z>V}5un##I1P`+<%ZEmiwtOmtLT}4@4eM?_YeN|O`S8I7;NnH~tuq%qHT3hNH+nOqC
z8k(9x&A$4In!1LTmO4;oYiw<;tFEhWZUHs#sw=9i>YM8-D=O<dIveXjIj8}YjB0CI
z+Ux2X>+5QpI@{_SyILyhx;pF2Yug*ktLkd2E9zS7YMNV{8e3ZH%IjL2n;RRNYAfp-
zn?MHCH#IiZRe=hamX^B8+SckyP$~rZrKP#HroO(Wp`pC0uCBhOs-~j6uD-6Js<NS_
zwHcJs>OigGn(CT{*7}OdrpCHPQ0i!ItgWnRs;_Bo1t<Eds>X(vj^>7DP`esZB6fB(
z*VnXkw6(T2H8)h(HMTZYR@5~%)HZc>)D;)kH&s<OwNzC!G}M$8S5%f47gRLX6j!#@
z7F9HLH<nb^R~Ogybk&yEH@CDm)z-JP^|aR3HMiDRwYJpsOl)mx?`*57>YmV6Q`_0r
z(cj<J+S%39+R@$6*fp`MrKzsDxudJGvZ5w8tFFDSw6LPBuC%DErnau4wz;~twxzeZ
zs<O1Av8A)MqPn@Zs<pbhy{5FbHovf}v?9Bpt){r9IIp0zuCk`Ju_(K+tfs1>va+b4
zzN59SwyAe=b8}ByXK!m`OGkHGYj<NsOIL4aV`Ec&S$%I?Lt}MCTUUKoS8ZE&c|}uI
zTT4Y#OG8afZB0{SdDFzs#**Tuminsd*5>N+lA6x$w(kC(+OoRlwz|ei?Zu@fCDq0G
zRV_^=nZ*sQ6$KrA%~i$K4W)S{txbjHwbj*?O?_=O4K0;Ljolp$jV<-Hb*(M+&ApR4
zTHAU%>zmrTn``P?8!B2l%Bx!&8fr@#dm1a7ni`tgr}ee8Hug;HXsoTPtpcUMj>f8*
zit4(uvc|^hs)mxRvT{&V)>f9(H8xb1*0$B;l+~0~)HO7=RTtMcH+MEy*OynfmX|lz
z*0nZOmsQo*)Yi7NmX}mEH8*$nwl&w*w03uZYPE*y&aRHh-AzrkZCx#GovpRiEv>C>
z6-9M*W#vsxRW)_BwKa9kEv<E>)wPvnb<MRk<qfS36~(nJ?OmPCwJpufeZ9?1?d{Et
zEzK?URgKLx<>fUs)zwwiH5Emr)zvk1O%2uM)pga)9rbmMt<4RsO`whwsJLowYp$<t
zZUtA8HMNbk)lIdH9d%Vzpp02v-vlmNYa1Hs>#A#NtIBKYL48C}#oOFkUteEUT~!6r
z11e~nnyRYmn_C;}o7)>}>gqw&Z$))e9VnO8f%<QCwbj*i&F!sCEo}`AP0ei`Ep?4e
z4J|Fr&Gq$7Ev?Nht)Sw*v8kr2zOlBtrnaHBw7jCSy0W^uvbLe2v8lPWrMb1Kz5!%c
zb8B;RQ)634TW?=;LqlUnS6g#)bA4@HOG9O4HK@f>U0v1KQdiqh2e!4os<O7e5yYu)
zYHDg|09BBnLZc2;&(_z0%JYVnrbbYyUR_;XQ&U}4(^y{(YBJS;vUPnes9LM8X=<)-
zYHkE|RzZz!P~Wv4Tqc29G4(Y~O;weREzOO!H8qvBEiIthuL<NeQ0>vw+Efc_h%|$$
zs>YU<wwC6`x;judx~ZiF)G!1EYZItutOL2YrUq2KfqTeJ4Yds|Eg+}Y)Hb#>f@DFp
zZB1=`EvO2r0Ts>FRh6J9uBoc2tEsB0t_3xO>S}B1;T{DQM$Ijt_9>`04(jcL+7zIg
z2;{R`P~rl0wd=sLjg2i$4b9C>pvo4c6x88wZfb661l52|V9?yu*w_TBxj|iiNOjuO
z&<F~d+B#6Z*ic_z4+^G+#)f)Ogw@y8fvVkx`g)K{Kpl9H+ZyU1sz82k0F}5PrM30o
z<^)J-BS;!-Kpm);-2jpX4HYytHG+l!Ko-{3H8g?}B&em)2pTbH0M*!_=3^bG-2l=D
z4yM{#hzn}L{qcq-P@N4n88m7EGPnT@K=m!iC7`AX$U7hxfF04$2rjWfeyVQ(d8Mwl
z4rCL^Ng#KC1|`64ATR;)Hb}M+)QkYtV-Q;)K?0I!0H^1s`g+h12q+Cf+yZt;BWUac
zgh8^P1_#I?O-=P6r#IHugX+cl#>V=Z`Ua2?IAm)ffd&dVkYS*Bs0X!gK;tyv+O-ih
z*5qRj8EXQKVI?ypG88c+F%&T*GGr4m=46aA=41pObNXWj8FTt#h8S}KjbnkvoCLKQ
z7(f^_<^&pLx?sk@01n|1K!8#j4A(+Hbv2j<iGl+FoQXh0GX#LjBybC~7F2kFacwP#
z4a(x61~^oELtR}1r~m_LZ31g;1%dXCuI{ex-u?*_`ultPd%L^3I@&>vtLCPLh6a#9
zl@(=WrKQD%g#`t9c{zD`1qFr0#l@v%Wu;|h6%`fWA`_HD8X7=4Kuuq;?bX$F4IrVW
z*5=msj`ohOu8xk5u8ywmj`j`^w;RN3ZEbF9u4|~PYXUW=Dk@9MDk?#R0H~V<YTJOM
zo7>x)n(9EkgKAJoR#{t7QCd-2R#sM4QC(SCTUl9I3o@Yrq^Pp8wxPMHsjI8EzrTM%
z?}YC5_KuE@)`q6`)`p6*vdV_q;)3Gp>cY(I;?lzO%);Wryqv<);=F?53Q)i`w0E_4
zbWE5zb4vfDS@Y*inJ|6ctf`YG^!E04cXhOa0=l}gvbwUOu&}hWATK?qps*mXps={K
zxU{ymqM{Pi1Fx>G12w5@o7=m(JDQq%C-inSG<UT(R8&+}lob{fmX+q^6_yr*0mzu*
zvWn`uhNjl8-rn9xQ)f<}I(_DxS+i!&nl*Fkq)AgJP3Z6K?e6YsZEmQmuCA>vEiTN?
zEXd1DPtPtWD=sK5E3K>sSzKLNQCVA8SpjMxSAxo`YES@Gl;&j@mgeQ;6%>|MlvOq~
z)z&tFI)6>gkSOTt=;-e1?gmAAcQ+_{!12@F)jxI0q$yLTOr0`m>hvkS9qmocwPj^x
z#RYlUIoX++IR%BKpm?gRt}HDDCyK(-vI<a)RDhZSAb&SE)m7Jlk{zg?Z0hLf?(XjG
z@9%D{uBa$0$j&P$C@3v0EH2K;%mW2paWN=xs++odCrq6=Yu2n;^XAW=GjIN^DO0CT
zYHw}t?&@yuXl-q1YG`h#E-Nf3$j;2kOHWM7DJv}~tZr_uYijLkZw953>dK~$j^?JO
z_U5MA+A@&qa<a4Y3i7fub8>RBL9vySS6o?HT?-n`=<1p<Y3kIOGw02pKY!t(h4bgl
znKgY<e^+l;J1FIY5?n)VMQLeaVP0WDP8ta0WM=0SSAalWa}y{pHG_JZbqx)5&CSj2
zU0ofZoYUUX+E85zN*|f&*#!lq)wOj^?OnaS9UUF*tsq^k9qp~{?d{zi?X6w?lP2}{
z_V>3oftn<B;QU%y-2^hCskObiuB^1Iu&}tetgfj6)by#XuB)vmE-uJSOG!yd%PuG`
z0|}ItmKK+Sh_Z^ZvWm)DPz-nUPnys_Y08wTlO|1=Fl7QbYj<^Zb@xx2I(5Q?Nt32b
zodB}8zpJYqlwa#AOAEn<CM6~&r6tD2CnhDPq^0F#gZx`o0m_{X&9xmJ&F!u2%}pI0
z9Ua}1CQX?#X;SZ`Nxl8u9UvcpvRHS2|J13I`g<o$=<n`oZK$oTtOOMjWtEknyjoFN
zoRglEo)n)FpOl$X2+HTpU<b4}R~MIohV2^~nmanWy4zbDK&iC4qOPvCtgx`OqPnu8
z0u<hLwV<9|T~kvl$N^I)_4iMiKBX6w;6Q;tY089-j{ZrLI-2^YPim@cpU_=fSkc^G
zTU=35TUlBR%Hd@dWu*n_DQVd$@$qp{QHhE1iHT8BG2!t^=}AfHnK?Om#ntUy9iW6b
zXV&!T^A;{yvT)(D)hib*Tr_XaoawXXP3Y?F?`ZGuZ>nzS=xV5K@9%DH?w&GdLhqb;
z(-+O3+S}e-Sy!2!n3Ne465=1=?(XI7Ve9N{?d<Di=iuQV7Z;ybSk}-4Dq`l%U$lDl
z^406sEMK#F-Rjk=mn~npeEGtK^X7mv{)GNX6FS=4o9n8p%gQQ?^Rjaa^U~4_%JMSH
zs!Mb7iVKPh($n(F3ez)lDk@703QH?1i*s^78MF{oEL2vOfu<%}JG$H3n_9bjJKB3E
zO_<Q#KVj<h3BBDDCiV7q_fDG9)!Nb8)KFJZ0mj|^y<NR?7S8N$?VmEKxwNphwV^OQ
zyP%>tJG-DT2NX7$>FMb?nMq0UNokp&EDValhV~9nY6g|EpfY#T)LHWvEm{Qf%aZx?
zW=-k<m0K0XWz`jBps}E4P@lW07F45vaxthNOG(d8Pl=CD&(6+HOG(Sj%gf2hF32k`
zD=n_9YiR9gZ3fjH?Onb7GpA3PK6U1t`HL1VTDffbn&r#p&zUuS>V)o&);e&aZ*FdF
zZEpazJ?pA#OAE5Ib3ib!usA0tCoeBMJ3BKaF(orIDJDK8Ei*GSGq0=^RP0pLf%+5e
z-M!tt6Z(56%$&Dq+4A}G7A~4UXXezI6T18RCrs+?pD-1aqPx4=K_yseL1sZ-T4q{G
zdU{%7T3UK$K~837W?EWeT1rZKPI`7;0Vs+mO_@G(&dfRUX3n2Af7a9~lcs|*VfTay
z6DCZWI%!fDsN^Wk%PuIZEUu`lZE6M8V71kiwbgm)ImM-*007lT)z#H?pi&)N<CIla
zlol3N)|M6&=9QII)YXErRdGQ@WkF$abyt6T*PKQ3<}BO1W99VeOI9wLHDSWMW%K8N
zO0}s|dfS_uD>Gx_;v&NXyu7`ALn341qT(_Oii;}>3qWN@DX64s>S$`{m@;Y7r0G+p
z_P2L*b+nci)J^KBsOy^0-`iT+K6CoK<qN0I+q!$_hK0)y9beWzbLOmtQyK~@YK!AM
zoI?X__4JI5wUy))4Ggt44K3`v{6pgNic1^1x~9&XGiTwV<(s!{-n{qli4%wR9XPOe
z$KJg=c5L0adilIr3+GRtG+{#jlt~>OpkkveCoMiSBs|E=-OD#5Jjg#NGA1-MGCVFZ
zE-ooECp#@MC8xA7ue7+VxxH(`q)C&eOac{ZQ&z57xNzmhts552nLlgNtoc*Bd#B8r
z+TPSXsk^nIy1JquGcCI~CnY{DJtin9GASiIBrY>ACo?fAJv%)uEhRfMDYLMwu(+bO
zxvRT(!n`F*R<2pMap&G`n|Ey8xOL^cB}?W{pEP~ZvV{|Rr!Jh+(bV2rSD05(oD!2$
zmKPb4n4TCJ5Skbl?&}-m>+Ky75)>L96CatFotKwWT-V+N8hxA6-#=x}oas|%&6@+t
zB+Hkt*|=fNnhhJ*EL%7q<l0Hor?ghqHrEzp<`fiUC#57sg+|3ig@;B)#l<Ja#3iL<
z=jG(&6oT424NcAM-ThPN%$v7p`TRNa7A{;eXV#)6%N8zNG=I^;dGlw2+6?UtWo2cB
znQ4hBQIRpBQK3PhAwiL$F)^Vb;qfW)F^Nf;1;rJ$4NbKTpmrIk`7vS6%$d{YFI&BA
z$-*Vem(82MY~`XkGiNPYGz-)KYH#gmuP&>tttcq2C@jrRO3#T;O3%woFD%T<%TCKF
zOOH>9PsvV+3Qe!fOG(Tr&B@G6%&REPE2!w`p1x%D>NVSrp5D1(=iy7ox9&c^Z}Ykh
zJ9jLfGj-0ChQh*>_)vduXG;THYXf6DXJ@aV(5T4JfcW^(ko3%yf{N<03Q*10)K!sJ
z+TP#Q+dXMQ$L7twrCl2i96E65){{pMZ{ECh@6Me|J2vk<uyI01Yj1Z&N>GrOrH-1S
zj0igy7Y8!~6PJj%fPlK4wQWdFSw%zpl$kT9&R@52!;ZbX51l%Fc<+hpSB@S&e)#m+
z6Ne7%-L`k<@<sDzP3rA!Z*8qCC@8K-4-F5G^mVdz3W^MIHZyYt<ssjo@WjNJn56Wa
zl&F-#it4hmhTcW<rcRx{Y~$twmo6MWeB%7oONS2~J+NUOs6K3{Zfeboip$9k_xAAi
za(1#XG`6+1boOwza|(?N2ujP#E^O`xl{b?nO<A~T{_@qUH*DRoY{R}oyEm-cy6?c|
zjXSn&TseILXs)WFvN|UwB`+s4EiEZM4V2_!Vj^Q=;zELAQj(%l3JY?|8fvTaDqEY1
ziz`8WYEU6Pb;<lC8+UBmux{JdHOrRGpE7Aue{*$RdvjS~X=PbiX<=z`PG)*kKu~0;
zw?{yDWMoWYQg&ueacM<edsjzCb8}b!q?t44%vrQ-`PQvFwjDmObK{29E0-;r)!$K3
z0BQ_ZfD%GpL0(~YN@8Sqc!0OJe^6w2R7_l4W_Dg>Q*%>SZ})@=y;CRkcTbu$X+m%R
z^r_RQFIqTj>YPQ(W_C4oG?gaC<W-awlr^>1l~uOZ)wXuGR-|VZ7G$TSq@`tNX6EH(
z$EW4x6~;y7Rc0m?7ME4_&ze4U>inJiHZ0tE^U8tUhff{dwsGUKSrcYWsmRMID@Y6R
z_K%AXkBkYAiHnPgiHQo2i3<vdONt4POiW2i0<}V#ThmjrYy0cs%4RNHzGK_Q4QKB^
ze|hKTqmQqjTs?LA)QN427EbE!sz^&Kjd!&$Hr0_65fT#N=i*=zQrA{gvGffJPpPP^
zsGG28dh?_;>sGGZxOwZ&y+^NHI(*{lmAxA_@7%X@YV-V!%lhjY=FDj?u4rnmuE<MI
zPYDkQ2=H)l_ww)#@^$wOPfPR;%B-tMN~vz|s>{i1m_Dzoef7=*hjtz~f9dR@!-ozW
z+PQkxtod^$G}YEs=Oh&rrUZHW`#M{g85^4#n3_3xxx2c@6;zZ~)OGc?*R@WX+1or}
z&cbyYRxe+<X7|x;OO`BIxqN<aS2w6-TU%FGSx^ib2CS>CD6K9nNKZ;hijRqki;9d(
zN+~EUt!rxTXl-t)C@ya5YVMjebJon6^Or2!uzK12d5h*uXz!lX-Bj05TTxL~TUT3F
zT9BQd7#<QCAL;8Gm68$}lU`g=Tv`X3Qs|mGY5Jli^JmUkIDgKpIkTqr_ja|nc64=g
zwANKr)>af27L-*K7v~g!IsrL}X=!PBnP~+TwY7C!6K2kuvvBp+<%<^0Uovmz)akRP
zPUxR7rMIJ@sW2ro8&oPrCdS8P=B1?-mlcCrJ(=+_nTfvMk=X_5A(0JrNr}Z>Q+iuF
zmTg?KdfoD!dpB?0vG4G<-G`6v-MaJ8?sfBKPVX+rt1e9m_YaCs^0IdJkBkiP_4Rgk
z@bz|ew{{8$@(+!PPpYgfsOX(CbL!MtOBT(Wy5{hO``6FkynpNJ`NL<goZ7c@+tz)n
zr}VdW<;6t$JDC~isK`i)iwbaX%gBf;>RGr3M5R<VHFQjxFlFY{{y7`gZ9H(|?9sy~
zj-T4MZQJg>o7Zhzw`kF_h4Z^A>pGgND@qG<qWt}xo&AG+-7RgsyxqOLeG`kb<Kj{h
z6ANm)r%YM6eEIU-dsi=8xAnx~&FeO7ShHc?)L9FcO{uM@?&z*8tgJ0e3HNr54DyPM
z5Ag~J4+;p6OiW8jic8GPNiVJIXrDB7;hJR&*X`cBZr!$R8|F`$I%Vqg{?_K&=H|+>
z>Wb=uoV@s;_{^Nl#PoDfRHUaR<rIP&!(|1TWgWfkP0dZc(`U_`HE-VP4XbC(T)1%g
zqFFO%&YL-9LT^`Bdue8TTvB>`Xi`pEQha7Xc6MfbQd&V?dU|F-U2E^8{t2_@FIzZo
z{;YZP=1iS53DlkKn9$nLT3eBqnUj+i6B+8|<?R~~8lRXR9|v-7bJvvV(`QYeIdjgE
z)vH%7U%henjy20RY+X60x1)PPS95zuT~1nQbxuf7PDN&@tFwQktDU>MhqtS*Z&XrL
zN^xy-*Mupp)m?KYO_(`v<&tGPHmuuu==i>EYu4@C&_7}3%-+)Ug399J%(Sv%P(La@
zJ}xdQ$kjJ8#LL||K0ClSv$Z-qySTYJrgGNud8@bWK7Zxx;o~>2A3kyR{Dn*Vw(i)l
ze0o=FZE1R_tE-2dx|E8#rjoj;sg9wohlhu^Z%j6*#Oz(PeCE6*%hqgIw|d!}>9eL!
zod@b@F5kRx(!xa(+9!24G}Tr%*A-`HCdMSDg!;xrMy5x(`o?D_dV6Je^*7Z`S+-`|
z)*btHA3CsZ>$WwE=FMNXbxLJ*du=+X(-IXFlN1kPq!naGC1t0BGG1O;S!rEUSzg72
zIo*{VD>u%cIdjRp`D<3sn?7gtnyGc|QzkUj)#at6XJ_YSgSrV7#o1}uWd-SJ>FJ@7
z#l`8F*~Lw*was1a6BbTyt!SFLa%Npw!<2cGT3aX0nbh6U-`m~M+S=XSR9RhDR@q)x
zSDRN*T3HC{PS+M^=M~ge7gp4^_D<<)2DP_3CUmzp)s<D&RTPv~loe(d7J#}}dFh~0
zi^7WP=GN{>lcp|QvT)Jzm5Y`vTeN85^m$9>^momg+SOE7-Ovi^&=h7Tro@B<`G<!3
z1_Xt~r$zZkrW6-s<~6iVnKymm{7F++Z(Z2cFmK(u<;z#E+puQgq9y%Zy$zLh{arcX
z;l&L}zV4BQ+2H{pq2ZBHAs#_7F&?hrX?c-BrOg%T)sv>oT(oG}^38{jA3uEc^}}0t
zE}Xt{_3WVyYc?#O(p*?tkQnakZlP_aqNJ^EU~FpU<l*4#8|oWc(A?BMedhdGQ|HWI
zv}obHS(Bzu@1MGS;e_c6SI_F2G;dCOVRc1iZCOQWT~l3gW=@o=yMJV8NTh#CMRjdO
zUB{$ZE7z=EG;jH~Z42kDT()q|yza`nj+s-N%E~GVV?xqWqM~B*N<o7Ld3l9pm6fHX
z6<t%NOz)pCb;_jn-rnl6>h3A6rDg5CwY8-M6|LQM#VG~dUDXw3?K7vhwzrq%RaTZ2
zW@guxB^CGfR%8~m_m?J>O`1Nbx303dvI#VNR9e>D+}zt#+BK!Oxv;jQy`i+ZyS=@=
zqr0J^6x7MCZEf$JGG)q?uCD&}ri$v)0#JQaR!~?B>P+S26&I(6$0enM$FM+g*wHa(
z;nd!#^A^rqxNPIPg`j|$K4nsGS3^^KLtR~EUS?%+oR@o2VPb%(SzM-vLu6b<b46YA
zr0Gpvty5<9PFcBZ{;WmYR!-`jvt&~Dyp>B@>pCV>WR{j@CT15_6sM%;m6m0OL?#uM
zW`>8RMMV~t#zm$jrd5{3WHz-<nKNbT{HfEIZ#{Z=$^6~tFC1OBWZ&7%Q@gvHd#5y%
z7ANJTgt)r9nwmNUg@#9lhom)km)5p6bkCeMXMTV8yy=s=r}p<xYG{}=tEn(CrD1AQ
zW_D9oK}uvwVSGwuQ(jtLX<<QjOnP2%Lwj9o@2u(b7WQ}b&YwST*^-6J7S3Ndv$?vt
zwKzMktTHhsFE1@UJ~2BbE+#WOz5p~-TiLOE!^S1^H|#vLck_}t6T0Wj>aI*lE3T`~
z3k@k~El7%tOwY^7E-c8*DJ?83tf(xmY-nn(C@8CJYVPW)uADG)YDaNS?abbW>bm~^
zrn2^q%J$ygnX@K=R$#O@6=&vT$EW9{7nf$1wl;NjG`CKeGGW&IS(EzvCr#>V0FC}s
z7vvP=rDqp_2CfRSlOjWsGD{1KYn!L^w}Qqpr_5Y9f8LZyQ)f+|+0j08;iQh{j_!`i
z;@akl;_5=sP(x&Ze_C-=cuG!1S!Q*2bwl@*SzWcQ3)eMQ&tE=odT&!}M{`G4ZE0Rz
zb#Ze}SzTdeab9U{ZF*E~|CGAy!o0e!>ViDb2u@*Id{jY2Sy@_H|CH%7Cp2};+O~4h
z!da_VE}1fYersKOS9?=kYjbgAd|_r#KvYahVoXd-KtXFqb8Tz)%;{66PU`ONZ*OXD
z?w>cIxw*Quw4u4Sps;oN%-ZJK=B|RK_R_e-!s61r%*y`ey0YTh%<87ry29$px~A$0
zGbi-VU$SgM_w+?`>S`xVsLjjHE6B-7iI0p+Pl}65DJ-k)?yalsp1yoZS9Slwb@OVg
zr>~ybT3cBMO1qU6O|2Dqh1rF56%}1wb^RTc)s^iNCRLPmwAWSEwYL`LR21f<$0t@)
z7w2VXR!?ZJZfNf6Xm72pXadc=S2WcYgH{yfq*vC~R@b)nf=1V;&YaTSF@4Ug{{G(f
z_SS~F22cwtKBpi(DJm(mv^1xnxS+PVxuJc+gh?}}OaOHlCQP3-Z+dq}dvilWZDn&u
zU2$1udSYH_WkF0_L0NHTdTCvAaaluUS;vG){q5~j=e0KVPoFohqk6)m)`q&evVxq#
z=F+6XveMdul)S>?x+z_C4W(sGg>eO-^<z!dU3H)_xaO|r{^?VCXDyjOYx>kBtLIOc
zFr~G*tEn_84pckF#Ka`U2YC30ctjQy=ftHo&79TMJ8R*RIn(E?Tr_{tocZ%-&Rn!|
z;nb<E)vd)zd1Ym_wV7!tiHVt+;Yo$Xg*n-!)zyU+)zz&{WljC<4ejk+y<M#nrcRwY
zX+mpLb9+ZEXiU1gth6vCJFl#?ps=E~skEZ54z!kF$^_65-=qoMT^;?C`a60jbT?Pm
zHZ)Zi7L-<0mlc;5g2qKlt4k{yDl4k1%PJabt7~g38=5L>n?MR%+dH~Dy89=90=ugp
zq`9o3tfIKAw6HK6)RV~0EUqjot8Hj)ZSMvR?etEaG-*<AdslmFS5swKMMZI5UU5NQ
zVR1!SX=w#$T(-HPxxIVRgs$#M6DG}^I(;T+__GT%9$8mWQC(YC0UFe=C@Ux^E(T4q
z*EQ5tlvdO>)K-Et*EKg(R#etiR#p@gg9geAi>sU3LF>u7yFeo@lX{ywdV42z*ERI^
zPwMSx@1N4$(F+~~ZEtD-4f0f$WoM?PrKhE5W@ct*r-6n*vI{C}Yb&dpK@$`GbLLE)
zwQ&Bdsnci9nl*jOgbBS}O_imkWraEEnV^Y+?3}`a!s4=uO3;8wduvk%Xbh^qtD}3u
zgpLN#z({&_VR2zuLw83LXq3OWps=E%x@*d$UeKU>X=!Cs*Q6=47A{)YUtL^WTu|H5
zKV{DRg)<w{qvBHvs!NM&C(W7AR9cW77v!B%Tby3jKXca130)1@F>!g7b<MRMOLp#E
z)LWR6lv&YGH)Y9`NmCor0-Sx*iklYpH#L<O=Oh($cV}i!J+Na^jBoYwB~6vtk%>*q
zm(`{;Z9cH9EF`gEer;TOU2FfGWpi@elcrBkw6+V)%W2=RabABzYj?J{e_Zv(oqLzf
zoHcdU!a3Oias3B&cPD0-O<l90H^$PVVM%wIe@IT(oT-Jb*3Pyu4a=(C<2qLNrdLl$
za*yggv?ebgbHauV8@DaY4hZR5Rv215>+pf@2`iUXCx(RPRIl0H-8y~qp&d)Q!|l8i
z=kM+C4e4Ii)xNO8&fVI(p}#lX!XTuee@=yyrgv%oyvo9qfT#%@Hg2xy+Hv#B@u{to
z=9i}DESy)+vE=Zf<sBh8{W-1%mi}?2GnXt{GN-99C(Yg1J1#W6wtv~7<2zPQFAfOL
ziE<7~FYDcWc-xL;6KdlE!ec^{3K}LY*>>Q-=7rtG;o*_acHW7_4Kugx+q!w#gt~BB
zSJ%S!hP1S%`Db^|TC;muQeJ%Fz6l{7Nt3pv$Islkt;;vQaB4+}nW0BoSwZ`<y@#d*
zbu8~sb2ba@uFi~Wn6zVc-R2#uXH|H4XU97@N9EMcTGYPb@XpoUQE?r$K~6zwm92Aj
zEIf4S@ba$A;)W;(ue9!sGixiRAHKS-uwvfo{!Hh{(vAQ#ublY{(=9_QdP_448yb?l
zj6Kp5!?T-L?_PN7(xF2;=kzz_Bxa@*w^ueyShV~2&UKTT%2J#(71fNxqasT?=4{x!
zysNG@$;;BzH9ac4tZVv)Qx{Gj-MOr}Fr_TX-N`$%cFMX%hc6shx1_s&QggPqLy&K6
zSzhastrw0?uU@oo$C4?fUXe|O?v~y$)xFJg<}F{nu&XdV#6nKqG9<`1rLueFwq-MC
z&FQTxNRM)N4UNifpR(w{tt<PsZJ657)LQCf=;V-C93GI<Fl*(q)mzuhna~tt>mHPu
z9+THPedU4UCl0Jz*dFCoP#WSIlwI4uXx;A9r+3WDi!AO=cQAHNY^|)EzV7&eMM<Si
zQ;GvDojr;dmQ{DHJhg3J-jrp_%Dk!ztJ{O@tP3_aco(;CIJ&INGICLSPP|9y!kMk^
zK{Mx+c}Mzt<+QHZym@6oPFdch-kkW9vffjtd&3KspIDjW95ZiYLq*wy(zulNN%Na(
z=dD{av!l?-!#^{{+bgqn;pV*umN&$d=A>t)cN{)cSH0xYiOmJhr3>?7>T0`}wL68+
zoLcIv=iHxdZ5!3Ka(YAatnN7zirp>zTelYHHO<*}>C%Bk)fJ_+1^y{X{y}LumHlfr
z_cu)KNQ;b2j50Pg^NP=Dn!024*0YCqubhzMo76ldJS3&GqG8sK(<k;Fn%>nO-;o*Q
z?-7()yL$Tc6MI+AuZvkSbxw+NTythzWPE7mq5~bJ^ERJ9zIjecd||1znOR(aU3N@-
z<<#X9`s+g6-Lq3{H7!HZ=Ny_hY0<3XSN1M1buHLEKixm1VDstLsJaQ;4$llvn$-|x
zrf%rf(3_Ulz2?A%Sq)7MX<n9IN!4o>Enl>7+489!Gh170ldNsi3rh3yTBj`BaP-pA
zjSIWt(`&Q61L7+B+o!KSes=4;(wvISC@*X8koHLh)w7Ns?WmYEYkr}#ops&JNK-Gb
zrtZ2q>7~o3Pw~>u?C(vt^KfpS8sd;xw){$K^~wvU53MOKZeG)y9S~aBJYmYBomWro
zTiM>wp6Fm^>lBq)(LI0L(H-s8%lhk5EKI!<-M!<=7Ot+Cx_9%k2}}Bm16<Q5RR%<r
zwa!_&XxoW97q%^#)RgIOU~1_e6;)6-VdbKQOD1$w<|O)ROR3m}X4lTzclPL#;w3wl
z&+NzyNX$u0DQ=!LZ_R<zN7qbmO|x+J4o`Hl_D$<vme;&!@7@jb3tL;$T#apABa;f+
zr!PBv`oOH-?z;Y_6erh^!u0s!?hRLucGOkQ**Sm1oV1vN?%KrS_USuzOzD`uY~8G`
z>YN~J>yQxNsGNrWS*thi*s*9*LyoVys9sd0lSfGHgx>Df-h~^MFY2z0bO?_r?VdD!
zLRs&eHOtl=Kfi5$Z<>>TWTaP2ZA^DlcwTAKtR36t*Ty%s$Gcj1C6(4rSh@A+x{bRx
zFPan-P?_$Z*5vJ-UfDH$*`ezvHqK8EjY(=Rh->PaQrR(S;m&RIItrakExg@*lPc#m
z%-g(X*{lg=0oK0ZdCie|?Hl$TpR;V|lGadLr^I<169bakS1vDzoI0~N$6rx1WoE6d
zZ`$-VGpF=Un!Y5@!#%QV&9dcb-8;`OkE~vDVBLf=U(2rE7}uDb?u{$wH&5BOwK_a6
zv%5bsF(7eHLriUZ@1g^1*3Igu@Ky26bggVEt?WqeUwGi?iOo}|6sCBXxfk{(mDbKV
zez+oZ%FJbjmS!PST=jywy8FA6(w6MpS{+$CWl~gOOzFnDf~jlvuHL$}A+fM5-q|@c
zFD)@7vv%sfh4ZH_Thtz6=}{4qo?boa)QNd9DQl)qm{6RvFfX)Y!u%c8z9}=iD!S6A
z9PalIZ<=2bU%hP6^vu%C?4a!0WqUVv%v_l6A08Rrv97DXzqzouW7eSqn+rQ;#o1c8
zX0D#%TQH@o*e<bY`J(Q;P)i-NsCiSf`?nt27#CNzX!F)NO~n;?LEdSVUF!}l>z+S9
z$2W84l<Jh2PzM9Ar0MfYr|#IjFv+WM$@K2B?26X*)th@)9@w#SR>y>{BnJoo@Tl<G
z_TuWoNe2$sO<l62DaNCE(W1)Gl!9>I%!*l?mo?3q;v3+fK56ChDVbiy-gZ%Wts5t-
z+qj`AzP2(uCo(Z9s;s$p-rfWIR`wRhM@4$XWX5M#cXdx%y<@|i-nzU1GuzPG?%L`p
zJNt7cZQQ+VQe8ueyL)`){6$lit!b)Ansa#T^wPQpU)#vM>N(36E^95QoVsRCS7B6Q
zq?ws}O!cJNrZu})ubVZgsW3Cq*Dff#x_{Q{!<UYCg{IG0R9lu7?x1Jv9G6x+bH}!s
zIoatmCrnRsFYOOc3(cwM+Hrbj_t}k;wk?|9UL2YjZ*3Qlw{lKbf6B61#p!d_E$OPw
zi46A-a!#x)TfL)f=DbA*)=cTBP4V}(3rb8YoPOxg%AAx%JLk3bmL&$cdZ!fB_0B(V
zV&Cq0^Sa|J(}TP{;^R{)CM?=|V8`BhIVsg;dEJHSp|0u88>UD0Zd;O*n3x{vl{cZZ
zsX4~dKg2n$f6c;4l}+0=PDrckT0SW)C9Qf&*Q|xB4;<RPdO~Ynd{B6Nl$oomSA0Qj
z_nHH{=P#exT9NH;YYi$Dn|o)iJ9_Ep!dWxh3!Jo_YNr+_MisaA&)If#$GSz6TH{Rv
za(Xk<f>J6QCN0^!Zq35p<{UHI=1MQ`@a)Qt=^Ib)UcPW@Q(>q@XhA@DT6Ndd`5O=I
zTsOU=BF*1e+aV;Wu&jN~j`<z47PeO8BzhT|2IZy1SI;`UZA#O+<2#p3X=;x14=GKm
zsH~i@aNC6gr#8==Q<oFtZ021sv$?Qz%GQ;0V!FC}r<Ub~>lx>CWJe{H)%7piv24-m
z`CXMM&ZZ&l?X{5w?b~Lx?>?|@VQ*7mfU!f=go?O=jy3ZO=dGSMwYE6ZT}{t5uC}1I
zclDvwt&`@=sw?mf%Bgk_FK(K(VcyM~%Q|{jx5h*kPEU)AN-J)kv~}-<`D-Rrc&WSh
zclpMLHx%YHFJH50!>sP=7-O@-x~Z8VneDAp7Op#fYWKoP4QU>RPB9CY7sS*xcTHWm
z^YG4fvpUipbgV<BuTBrhsc!0Dv|-Vb)l)07eRbS3V<M{)E2i&VQdrnEzqv3iF(xD~
zGPA5{`i>p@mh@+bCx+(Cn%7&J*t8JT4Oufiy|OgBxgo7%^SqgL4eg~lq22{cW`dTQ
z%&d;;-#M$RH7_&LJE?NvnuYTw^iKdSx9KYM2=ewyZ!fKwv~KgVrnHpA(9rOty1It`
z%F2QXs~4?a*;`qd8R;F6Qra|S-iE{5HZ1B$$&8PSONtMTFK(W*d-=wl^Cq?C`8&9V
zX3v^eT03Rd!p++j&Yw`1?Q3jl?H-<4+B9>=l7+K6dMA~oc!Y*TCgv1$tl8bL<iyUI
zn^$(_c(|u5pAZ+5Qc>4Fb>ogT>!vqkyQ(?WE=ddW&8}#ex^vCCoy#XQWcymW7R*V{
z?wUUT@ZRZjW-gpnTaXgzWD!u8lh)9`{KCp9Gv};sZz@O$cQ-Kgub!Tm)H;9nfu_Wc
zS?yE0^3r{EoLY+$<4U{c9XPRjVMXQYZ8PhlJOb*neM9o<x+l%weRy?QSJ$MncuUQc
zw8Y}lv?=pT=Uv!Z*fn+Y^vWRD_*vaec@=YZu9?@~-9M+hFeSjkwXiEat-5vAwk7kr
zd*@H7PWSf+j||DKXqd8X^YYb8CKSdub#--zXQ!uB6lYFa-aBFCqT=4}sJw!-#JrsT
z-sbA+!t9QY(Co~#?CSKmnY9&79fj@7`tzpuC-pXUZJw7IQ`)^@WpiEshWTB29(ldh
zIWdLZTep?gme$Uy2ym!utt-pym|i-)ziUEkMREGVN$rJ&?Q^=zvb#1;DUEdS@J=b6
zb$s8v{??{iZ~yG6Tc_8?H>~XLXrHvKJtibPy)-d0G_PUi%&v~<GmHH_s%JJ$2Te^E
zS2xT%eP~HpMM2ukjWZ`qn9yDp71Ob>y=#7NbzXW>fJe%NbyGVE%Ni=m`lqMFSCnRl
z7gWz&vu;A`gyPcTl+c(di>9xh5+4-Q+g(_&WY&^~6mS2uh7E_iGOM>v$n0J+XL(bk
zrGH0lcWHH5M}KWvb;t6(Tc@`cggZFI<W$Z-uyWC|hP<+h(t?V*yzT}Ev!LQda~eWR
zS5IwfYUp3mo}LmKo>)DhtaaYL!}FVJ%Nk1k>y|agBxa|_=QK@PeSG7R`5PvsPf9m*
zt*CA8_4Y5Eb)dDPd*<ryQeTI}h0C%lVhWdSU6`0yw|Zr7Lry?sT5o7fS?$cq2~+B7
zmv5dkb@hb8#BASy!bMZ&SEs~>&stefTh~7`Gcvn)dV0*1?nzCR)oZrSoHet*x4U*q
zyO~3Cd$FBe($tlU3f<##S_@0_Lb8|lE-Hv?TD^Q@c4Fni?!>~voYvBYrmi{D=gpfw
zb$N4HT3kqGaaqcw)yw7-=GE<((_hily{sv-I6KNCd*QN4ab*=vwRH_0%a)fV73PE&
z_HSF)Rah5aw{FUm{=$yll)}P9_r(6ynPqwLy-ka{I;QpqMaCuBhWGYnh89d%GkwaG
z2~($J2F1ttMpmquKX1{52_3B+6Q=Y|nbKNWm|ih!T}4?(Lutc=w6yls>(=y^dN~D5
z=*UZ7GqWzLe^J-`nRRg%wlUS!IdwDl9$r*hSeTPtF|Q%5u&^*Esc_-m15?r~+Dl98
zrYx_E%FIhkPs!=pyrZiuXU@Xv;?lCR;>!L2JL{zW;+V?iJ6BHVXiBVIvt~k6RMP6r
zNpXd%CrzK;)X*?}LPvX0O4pK=mEKNeQ>*KmYMUo@R8&uJ_pM&moL#tV>bgl$rD<`q
z7PW@ByJoMOnw?p<aZ!I)Mc#y+bJB`^6IYjo##A;p%v>JjTfJ^|L1NCl!~O9EDbrg!
zI{LdSrp~M@3=M7Axg;eiZAvX@#e8LZS9NKMZ}GzE%j-bH<FzTJ%lFoHG*wROswhqh
zNGq&e(ovhYZgqOagbmx4WH&VA<aKlfc?ES;X9i{0&Ofju&ndBb<IJ+ig7CcgJ4=(Y
zH|}kUkE>j_cVR(xb!~OS^!}++G8c7K7p9cW>gcGfE=!B-o-;i>s4ly<A=EUgDX+Mq
zpljCd%^j1PYCF108>XZr7F1N%)zz+?HK8!Qd&lmsw92N172Y8g3wv9$>y}Jk*k2ly
z*wK|2;GbUFzNCNF-ffFIy!@L|lJY8QXJ&>Ml=jY_)G)nu+04SI__Wfv2~#?{n(LZt
zGn?1#m{(hzo}C$AFn?WTcJY+y-M#%e6`=9u){ctA#IA)ii<_GoTH|7hD@s%1rz~l1
zs;HZ=p)9;<-kh0JC(Npg&#VUZS}W$yY%T0+?VdFu#w#kVeNIe3Vb{9VJ1T;bmM<zS
z%?r<7H$StXGJ9%XS#fh|dh6=;@c6Rq;*HZ=^A>KK**&GUx*$8Jpdhh!eqnf8>+&Vb
zy6Q@^-6PYoQwpZ9oH}RO>WvKr-HW=@LbE%%;$jM>9_sJTtJtu4QlW!&#qyL$(4y6p
zn3)?23cK1Xiqk@?XZCh?w>K5$En3%_Qe0eEIkmSes$gD!SNEhzYc@~n?`kcpoVRdR
zWm0xFXok47V`g_#by;mkMNX2hb4Yx8K|$fXZHuNh)b%c(S{oCZH+_0qWM=j1)pcFV
zmu#3)n-o=?7Zu*HyuD*8XhxuG=CUc>4cRG`UCWpBH&xfAc_kK?PRjO*O3Itplv3Bb
z^1!0$^QN~inqL^1otf62*}SrP&Xn%{`7z#cr41FONg>&F%XZ8vh{?{*3Ghm6-MlO*
zv3csGiV2ev)2cy(jm2dhYYwbjGIQ$khS0KE)luP@#nlBl&GUCInb%)BXWjI=BxkSq
zyu7lsoMr2#r=^rt*LEzQ-kR<kH?y|1wzapvwxXfBuC}y$dS$qWYi&n+YjZ_P`^II{
z`}>#l)<wDcrcbJE@14|CF=gY<C9`__=QU^BIo0MBmKLNhTs~ph)R`R<78d*FHTwo-
z7iZ@+&)l(f(e#em*8bx7AWK{SsQ8%D=^Ixr?=POdaaL2hw^v?qVqRMNoZflswyj*W
zdf~i=Os~k4^pKeF?2aAV$~w9xEbFZ+h>Oc9t?TM;U$$fU%sEqgr#Ba7huS#>#H8nC
zmQ9$sWJy<hQ(0bnPF#R%WJ*eA)AYUjrq7(Sq&+1*y{@dFwzajQfBEhmv!-{qPOXay
zN-HZUF0E@VEpDB<dqdasNi)lWvYSH!;xda%Gt0WyoL*VkQQ0)7t}s2^H7Y4FzO;Au
zf$piTU9)-%(^4{%LR<sVOPeRmTX+1#hWWL5-Gx!kPT}cgtrMniKD%v6UUuS=sb!Jg
zA#s({OS`w7SUn*vpkU^#_J-!_?9ATuhQgfgrosu;?UNcZ+bf%T+vEI0L(|Hpubf)l
zv2bNqaY#r?VrWWX!<2Pf=TBcUX+m>$oOe)2UR`_l)D4H%ZCh8H(_0*pR#6;TP~A0i
z>$2s`BIElzI;K{~xrT;^W>znpGiA=C38iJ}-7^=}ro=_2G%d``YnrunYHLG7e|28G
zcR*ZbP-0nAYya{cTUSr%s4GngiposNtnHpMZ{@Zf%VxG0XQm~FdPL=Q&und9v~%l}
zrliE~y6ljEyn?2N%C4z%Htt(g7he%m+3p`ymKj;xJYn7H)l(|sBGbAjRHjFz)pkr+
zzI)^R=BarV6KV_6qXOa!>$<1RU$Sv)cV0zvPD)~ow?}w-Mf-%A>vpf4*Pfl1nUt22
zR9e|OY2%JLy&YZstttL>)9W&$GV3O->CJ0jGN(N|s<^AVtS~Y$Z~CML&^+Cg-lmR4
zlbRc93sQpo(;8Z{JG#4;Z0+xwRgqoSkrxnEI%WQZ%DndFlX7bND{EWJ;uC`+bEZzI
z%&eHdZc1TXK?A6#7vI0UJv}nBb@}qjxV)KLrxqrr)z0789Us}ge13I!WO~Pj>2Wc2
zs~0we#ufC>?@mu|U%8<_F|@dS`lRB>oH@%I;-U&CteIDxmeVl3HZiWCf91UDw2JA=
z8sehzCe7=}jH#TrvO6Xyv0~25%J|B8%jQ=Ggk*P3ZOX};GG|F|Vn{)ES95i7)51CZ
zc~PbPWr-E7z4NCwG&D?@P!^w3+0j3}y|{A1oUZKjitd?Hnkws>n@f{ol8Sq~N(<^{
z&g`$w%Pehgt<1@5pEakoAhWP((xisG+9|Voi<9E>s+*e%i>FNOZK!POYHsLiC~oL#
zZfIyI%`2;{tthCTKEJ=ZuB*K+CnYnxa_aQD%J!*~x@)u3^13Fp78W*icePgL6*Nqk
zIi;zzx@%H%PEva1l!a5Oi<>6&*Jh`e^-k}tD5&l3uFc6QD6Ht{XsT|VI;9~eExoY1
zp|Z51d)}O0@Ek^AL1}e+e@9tfS#5E4X=T@x{_gg=hK90&>bmAhpq21t#f5ogbqyW;
zQ)W(WE-Nc8E-b5S?VdEfzoD|aG_SC-qPl%jcT;h3ZEZnLS#A4-3H@CS4Gjf3rImH<
z?cH6Km9-T)Ic2p?t<B9{-OZqt<i*v^t<CMdlX{!V@(L@Pn;ROs`ny{}GtZ!H4owYB
zT@$*RL7QzWiz{oJJ6b`<yVO=zg7$SZx3{-9RhJbP78X}D^-t*P=xVR4sHkjc1+8)K
z=xV4aEUaj#t*C5jZ>=pYD5z}jZmnzX?r*IqE^F@Ys4gw5ZEC2ltZwdTZK|yVE$gnU
zYig=%0&TEw2JK2|ZEkJ`?Z*Ypy@2ckE&m2>t88unZLnylu5M@sFD(Y?Z3ZutE-S07
zYieq0?`W>AsH_I9@o#7b8D3EV7H<M=7q0}XX=rHe?rp8D25k<ktOe<A0&koH?J2LT
zYpAOR?W1S{+tyrHSy^4%&`<}m4z#BR<QC9Y1JG`ahK9OoP;i3x)ii_502u??s0cbA
zprHv&HaCMd(SUZ|)q;+z0SVTE)@Ik$H8nTYf%eVRf(-|4?*VOR0a*Z21lnB)@pMxY
zSY1O?GuS}Tz6#Ku1CS(WgH2NdXrmf9YCzk{z>aAE?=S-qU@f5S=^*n#yVM&%TZKSd
zfxvr-AUu#}Q1~~1EQja?X#rtSV+~A$HkE*^gzWJFo74m{3bb1XWG}=xusECv)(qAS
z7Kd;_mVg`s)(j?~;$XLc*kD&cWFSU?*)S%U12O=FVH}VpApIak5OEL-BnzWKqEHMH
z0yzlEg-{^fAVH8x5D_p5=0XTC334CQSg>l4S>#~Qo;odd$eub81_p+5@Y!AY48;r?
z40;Us&u}tfKt99C7`&hE9vfso-8D7_2G|)+xc1X+Vq+k%pAH%WV2^=v1c*@wia2N}
zfr19k1xcb|H2t8ELsNm9iwIUwHmIqo0bAD8*3s5fS5;P0R#8<`*VNI|H=(Dgs;nq4
zr>Lx^rDMXBDSaIcHDx751qCHlbqyU8CUmtl)Krv}l-1PLHMO<1G=WTLsH!L{D+3wO
z($+JnudAt|C?_MYq^hZF(xeF;4OL}DMFj;#MHO`&6DG}=Goi00D>^VVzGlwW-K&@O
zC3!kKN46~9xP5g;UbLrkWZksYyEjg%%E`-!jW24LG;jIh88fET#0G~32WNG(O`B3x
zGhtRoTT4?*MSOft-Hes%XOzXqrWAEeYU}CB3r(tNnznjlUtU^Dd~D0=%?p<{rNo-r
z78T9dy}BnaD>kdDXU@Wox+yunIX$!HOlV3enlf)jS4DJmd|J)YrE{7h1JlC2<0tK2
zK5Jn|MMiYh!oBnQrd32cduDY^nX+{GjH-%?mXzSYs*Oi$;?q1W!`ENl+2Ly)m^bU-
z)o1(5ysiC1E86O&>|I`w6&o8FT(|b**5y-jeC-R?Z(W+>Ywhe_u=Ux^tv%72Lf#om
zcV4|;qspUdU9tP-lf5P0fx)r!?ms&@Ey=y8rYk2nudJ$X{ldDuwBYExj(LYyS6E9q
zRxMn=zt2|NF>=z$ySr;_^(738j{o_zGhT>+%f4pm)n|KK!cFy^tJYq=dU$b~rigw)
z-@^S{=anV-1{QV9Te)z?jJ~cKe_Q`)o2QjzrDSByS-*Pw)@eEJ_U`dLI}cwx+2t+5
zVcc^0)AczifzG}KJ<B(5-@dx7Al%w8c-F<6N4HOK<m2<5wf*X=i&gr{_DK~>kDr|u
z?C2YvQ8sDm=G6=5bYw&p)YVmW%<C#DYiKBmjxFe!v3mQwl5qdflAc*JrZiPlq{NnW
z)RmQ0%v;{oP?Zv2(brRz5uevKZQhKIrlR1$oC&iQ&gm;jN-1coi_dB4=$JFBC@?-J
zHo9x;=Dw1&*znl8)!UahWrU{{)GVAep(QOmBQK+&tD|G#;u#G|q0t#tJ&PAk>&OXq
z4)0sPdhxu5q{yVaiYZH{6r^NimG!J#JFhLv*V4bFWy<Q^TW2-Ix(7z56cp6WS-XDa
ztfq{NjFf_ky0&R^W=-j-$cT;1Ynm`)PG3)3LrGpy*Q~yR*p!^IY3o-nZ_5hwO{(dc
zFl)xNNnK?rSp^MU9bGL|6;)MDT^*CAb(Q2~71eainm3~+KDwx`X~LWtGbYt#CB<je
z^vqa1rK+Z)prEd<VbZ)QQ+mo`!!v5S`X=?&R8=%Jwe+>sRMa%IR5f(8ROO{)6jXHd
z%v!s=uP8P$Ew7|&#<Z4(s;r!vhN`BXu9ljbx|WW%rm}*9yrQbMp1vuQS_(3XDynKg
zTlpJ6nX|2>rlO=ME32feuB)$aN?%=BRZUe*LqknPQBhf4M@w5zS3^ZnK~YInOHWT*
zQ$s^dO-)%<Q$s~rMNLCnM@L&nOGOE2;Rv{>0PTrysH&)_sAy>G0+j+)6;*Y0O<i4e
zMMYH&bqy^|H6Ve8wzd{fi2?FQOH)%r6{ujT1D$x&(g3o%ssdE@fXb;R&^FeFx~i(0
zsw$9kK^yApYCv^x4Tx;&XsfHKsREtx(9{58)z#ItbaZvK)PX`8tOC5{7F3+o)zyHk
zXaOk%)us(iElmxeA`Y}Ow+XZ?s0GxH0NDzz+d*4S!JcXWoqGh@;o8syI&h$-2BZO0
z8bdLN0_`CJ)lZ1h7o-*BMo?o0bbbw-4LTVQRIoxVs;hze6{Hnx1VjX+A5`0cXsB|K
zFF@e{avrE$2UQOc-Js?G*eeYn7R(0F_9~EXYidA220qmYtfdNM9>_Yd`5^1z98e7a
zKEeZJEu`A1t83tA;AT-^XJFuGVE7;bt~uF0d|+l^VEVzxP|Lu;(8IvMAP1^Y85qE4
zFM^nCAcBE`fdfi|&MpKoML`4u0|QJRCQfZW%v>0aZaz$$UNoqs0rEPr_EG9ySh&N?
zaRXV-z`)=GrD5`f+ygp=6Ql)3!_0Aqo~sHvyAx!FAV?9G_=edJQUg)~qha<Fl832-
z=|iVs@-TB~$p;+|3bJ2}fdPD)DJV`se30EBds(64l2BS2N()2JtCfNBLE!+>0}3;c
zep#qEC~tuHyih(9l;(%hu&@T@HIO<`D-%S6PKE%{Aag-9=mb#^Ed|xb1EoQ62omRp
z@<HwciHSq=BPUcGl*K{nK<0t`4DuU@&&<L7fq|KUp^?ELm64%|Va6r~hGsCk1<Y<`
z0J*pwq>Z5iOm>3F{S2V8gNN}81A{;V`0Uk2MivGJjwVLX*}csm5snrxyA5=tFGKr5
zkhTtxI726x>;jYBV6q2H_JYYiFxd|#CxFSRU~(FmoDMc;2ADk)OwIz6v%%yXMrH;E
zhy9E)3~~$y7#SHDI1Yl{aES5$|Njg}z-o?y-E$0V&T+8F2{3sQOr8Rhrx{IE85quh
z3}8457C8qd&x3Vc0JATG$x9$x7%qd!D`4^}n7jriuQP%|?>{3S10Mr8AQ>2$m>3v1
zn3ztVKFz?w1PUuwCW~YS1~xFs4pPp*0VX-YvRq&`H<;uBi|~Tkd|;BF33R-!0GKTZ
zCheIR7?>Fv!0bk_`X(k&8g6EqW5~eJ0v2y&`tXyDp$*J#XZp^-Ah4f_k%6D#09fQ8
zm^{Rk!oa|A7|cEbCXa&2V_@<)m^=X{PlCx)Oa`S445yhc2njQsVKR98=KonHhmcN&
zb4&~k3=HR)7#jZnzre)6Q2GBN6X?v6OH2xW3=Ef<0uD1UTmhSKl}SLIf#Dic!4w9D
z>r5ML{{O!L7QYD=zXcZm&m_hm&%nYA3VH`-P&#&GUZKgz-~?haID<u8m}~YiGPr_8
z>X`)?>=|0X>{c+@1}59VWCxh+f|$l2_Ys=+I3VW>|NjpP8F_{e{1%|3%kY^QR5n;b
z^AkvjlL6#65DOw_g(SxXmE&i)z`m7{fkB?(KUhB#0|N^v?}BuJFvyGY3?eL`a)g0F
zlm%qRF4@vI45wyUpIWj<6GSsIg3iJI#heb(!0-?3OHjNs{AD(Q7XP5g0#ySb8u@7J
zm}{Vd1FVl>+rR(+m;L|$9~5{648NH{MF2>qfP;Yn#s|qcaD$x7&SC?SgxaCV06CHw
zMz5>qH2@u{4N}5kwhKg|Vn!hbc?Mw=GeB-b#>APyfntUe)EzLIpcxE84Ezio!k{F_
z&(I~T1$N~weo(O+&j5k}3;_%w44`Q37KTJjl{lzi1l0!i3^&1tTQe}+0v|fgz@W<D
zk0EBuz|Zi3|F<&8Xh=e^gC+z}<bop#B*icvYzC;3U|?9mugSo`;9QhnT&x?AlUS0L
zUzDrhl3JFUlV6aVnpdJwo>`Ki;H;3Cm!jaTtt|l649dwM&FTyc3;{){y2<%@X{kl2
zdC92?A*ChxMVW~?3Q3i`LHS7v!R48GDXBR*4A6uNI$#^*FOZwSWfPK{z)Xe}{Gb#8
za}CT&P>KLqd5nR9!M`B2D6u3nFI^$HvbZEQS3x5@GcP5-yjVxUCo`|KLPx=^C^gk7
z*hQ1qu_!qsvm`aSq_ikiL8HRLOh>`Y!dpkd)6vXCM<F1;JhdpmSx3RwGay(;!7<2J
zlh>&<GbcqMHLonQC_fJr2E0L~dAcQ;xv2^{nMp;7MVYC^3K}_?Ny$12po0^VbrgKv
zoOKk!oPBf@oP8oRd7blf3o>(3i+Fu9^RiQmpeB~&=jRkFXyhhlr|Kwpy0~gGFf8N;
zrGtEkw^0t9hlnvTNHBm7p$C`HETF1*6~7JxsA7a@0fi$dT$mwcIs^FJad1R4gHsYj
z6(lWqA*BU2kS4GsBrSlM3@i9SjRy3vEk=)kbqov)(BS3`&&)G41Cho?AQBV>3YMn&
zmKOTHsc-?m5Pc&90|Wht0JxB|D~M@k!W){GS)ovtSd^KVS5nOD?iZ>LjzC_gU>5}q
zr(hR-|6q7z>L~c7mN*5w=qUIXq~<{w!MYKeypEm`Its!0If+G?#X1TRsd<?dItm^E
zx}gy|3aKT@dZ2*rL$n_S7#N}$Kv|5DfdS0cX8>1<U^XaQz{EkBlL4v*6b&$OQ1S%n
zkO7+liyV+C5Vi=U2Lh@-IV3<eE~utuVBnB}L?&1qRKBj_2W8N5Na%z0fZ_!anV_~3
zL<H0-1StdMJBSF>Z49t%<$x5uOdus7<<Q&;W-_ec2er)t@{39mlQMHMODa(#b^(6^
zBLjnsLI6WPLlHv>Ln1>GLk>eKg91Y_Lq7PZ|70*PnIWGcg&~zeR)Loxm?4KDlc4~7
zM12uMC4&M(2}3GF5koG64ub+iDMK+>M>#_#LkU9$g8~ESh_O<J5{68Me1<#*UIt9N
zN*MAP6u`r#Aaha~>=}3&JQ?!9R~CSDgUknA6HvgA54I~0Y+52i4g)WPjDj;m5d&zj
zwU|Mdp@1QWA(5ekAr0)GT)h4WU?^fpWk>_N9mGmO@(FhPi@_mO0`?<F1;kCD>kvRL
zN@LJq&}2|x0J#!5EJ0=8LjD;H3=E)VF(g`GogD@SP*WWurU2~#F)+X)9;SndL59H=
ztO!&#fEv|I3?L{0&h?-~DFHDD)TU#RVE}a(Ac;}}oWPh^m>8H?psK-YBp`Nx*`UgQ
z6+ftHKM!mNq$>?dP0S3SjsrvxQl7X#6C79;M1Unx%M+0MAPFuf)gG2ogTV?xPGw-=
z!J!e<dkD{{gw;d}kP4~*T0z;PrrZ_$X$%Yuo_Wbdsfop@DGIrXMcJt(3i$;E`9&qA
zd6^}Zysml4`K3jP>8ZsEx%nxjIf+FIDXGPo>3O^!sW}A-sTBqJ#i<HOrRl}I-l?et
z3d#8?sS3p<iFqlBMJdI)$@#ejIiMm+0aTPkF)%Pdnm{0*Kw`~_fssK1650$&;MjwP
zF#|*fRI)O_WgvQz7+Ao%Ks6yk4i-!vAj2UA69X%bU;=fpLQ<16@-hocQ;QiGR`G*c
zSs+o6W{@Tj29;otc!BU1@b@t>F!(ZLGNgkK`vc|2Jce{|ng`{+L<R+hJcd;8wI!gO
zUdE8hki(GAPyoK91C+iM7*ZMX7|Iwj!TBu@F3!u~$dJU42+psd9G(fjZbX40pCN|<
zl&5g%0$p-a#E{OA3eL?Cw}4y`49;bs+z&dM5M)9SLn%WZgDzMd=*kcU1|Nn@=%Iz6
z5(wl1KZaliPX>JkPljLye+Ez~1uD&uO>t(x)Q4%8GlMpRHWrlu4E|snA{g`-3>g#{
zG#ES?T)|L*0n-%Fg&YP9#$dIYVArHFB!k@#3LymsM+OB3VFd*SCx%35c^S%($B@ZT
z!2psAVDQAE#|f$@h#?hx%?xsQq%u@MOU7boIa`dy1W*WoYz<+^0GEA<3@HpCbqK$q
zhEOI0<a!p6>6r|m(oX?evMMk@u9Y!nFan1KsD8)=r-&kkWau?G3eYqGN(lwvw1Zl!
zfZCu7`42HLFld7kE*OJ~07!aO1M@)ys62s)fv)a><QsW#ZUf1Jh6*8K5K|yI4`dDl
zI2VdAfK6g?Vqjna<yMes3>;1j3>=IMA`BoCVLVWufq{X6#|d0Qi7@zsj2CcXU=Uzr
zfXWFZF)#>#@~;qNcoHrP%fFzTT|n(Kkc+q>j%Hv$tB^sZJ0kxoXe8(7m1O3Xrlx43
zmvB{#3=AQOMd_*FR&QdSf@4x~Nl{{QNoIbYf=^;)Y7wtra6piPhF@w)adKiossgOs
zRe-f#H5H=s^7C}vLp@^^((;QGoE1QXwl=R*eo+p%eeV;YpaE*T=I4Q0{yyNwZlw-d
z;j0PJtgX!(SfUW^tgQ|18@PvhD&*(oRL1g#WTY0SDwKdqrTm=ybWmeCu_#p`KdmG+
zPoXF^Ew!j9HASH$Um>wrA+0DeH?=&!D7%;!#dEH?r8$X6UIVof^#lBaJtGwI^Aw<s
zPb&rI%JlNgJROD5a8ExS1<$;a)S}D^P{R`34$aR~0O_*=sZY(xOws`{QuIT06v8r#
zOA~Vxd=oSC!ZY)DUHpUflk@X3^FfA#wCE?778R!!TY=j9U<pvE54y|=l-58=fq`Kk
zJk>$Ua*${vTnwTPR6}nDNiZ-mh%kT}U!a;A#0KjD*SHdpo;$Qj2u>zoHl!v7)iiQo
zLC9b?h{?<VsY{SWKm!IKi$D!ih#F8s5hMblAtEqcpi~bLVSx6?d_fAKH4P_73e1Pp
z7+@x}>4=n0(32-f8^M&r>jDb(oXq6ZyyDapUf0CpN`>6abWl$&KTjd8C_fj}hvIcg
zEKYUyiQo+i@li<5Nh~f-Ee0nsP$djbnZ>-22m~qeODxGOOH}|RKZHD3Ip~O4-NbTG
z+AD*^Hz;=%<>wUhx+In)f;4+%rf1|-DikLt<|HQNq$)tPBqyg97b_r4<Mm4|0jUm8
zO;SiKD9Fi7h9pgR;sslWP!Db+yaRQNA%O?(R)9(&SoZ;1KZC_hA!!E82E`t%y8-H0
z!_<Si0Wfh;e-S1QX(7N`8xY-?Wggfzc$o*Xj{(XPflQ!4OF#(*ke#p+Py{mB!jr@R
z>f?Y)OK|xJFZDzqJx&2-P~(DufdP_UL1iAqRglRVP-0>R%YlLdk@CzyT<C-jL=D(<
z=uk041X6~B6hhjYe$e(Ns66EYDFI2Lm8YP55L}s;oKcjYms+9_5#Zt)hMrVGgSgJ1
zoL!VyR0%H2lEI@Nu*RiA3S#tw7u3;ID9$e}N={YKNG>bZD~6b^mzP?i$?M}D;G+Of
z&%wEgIXU380Bd6MhL&XJWLAOFFDN}FW#&OrPJWs~B2w`UDtl95B_6Ca)=}`y1UW1}
ztwaZGsJmaN0%!<9Avq&4GY?i^7J~{kV<Y&u2goew*avTLer_s6TEQ{EQz5N14_sXo
z!-_ctjrgS0^vt}HjH1-U6itYFL}7?UeR^t1at2f(q&P-V1TB~qG>TJm<1_OzOQ1?Y
zWhyAdlTqCOSDv1epQH)SHYE%U49~z33+b6}K*}BvaYzD>1gT+30#B8IDsOOs3+98W
zWD!uBWncjFK_lBD44`ZS;X~v>i3q}n$b*{Bpo|16$3RANL+oW>1{d2P5$L!812Y3?
z#swsTC|bcIZVaIDZjfmp8dlhX8UUcQ$_!~FfV4piU2iZO(hFh-DFO3Q3tf<%p2fwb
zsTgB0;*1OoZkai$(DAQg-hjlC426``oXp(JlGGwdftgYSDjIWAOF$yLAmw?9xv2`t
ziN&c3#i@D4nI)NJnI)Cr)RmK(mtK;g0M=j38<JX4qL7oB2dc-5a$(7~IJK}8G{je|
zpyA`DP*$wq9OUDs$s3-TlaicRlmhBSCFT`p=I8Mu54!QX=A~pN=H;ap7xVg-=9FaW
z78K=!irD-jC_kyPBo&mZLCu-eB8B4Al45;uWe&+Mi8+~7;C#dDT9KGrkdq3o(ZN-`
zv#UZWsCo#^%LMn>KrIkZT@6Y`(Ecj8WCacWz)DSIanP6;OdQlUWCE9FQP93FsILvu
z35p~Mh#0uemSF(t1J90dNHBo(F@R=7co5@r_29?^>4PN*aM{Yh08UPz*k)!(g{pzo
z!k|%ekPs+oa)6Y8IB4Y?KWMBLI=HBSJ!M!ig1W*bsp+Xj3Q3tIy5*TEB^kWMB}Jvl
zCHkd#pypyhVsbWU>=aa1B<5tMLk2mO3yKoca}yy+Cnqs4y)-dBRUx&a1e8+p^NK;E
znz@O2DZ1cvQCyx`lAHk=2rUMcGN4)()?L=*^-s!5O)gPL10_(<fO29<v4V!Pznhzm
zf~$|4j)K3h8;YW01r5D?P=eCSPs-Bdg*H6F`ax2OU@345POliEE+r>NlQ+0BHz_|y
zA65h@fKzvFVqSVqW?s5}N@{XGsA-Xx&g-0*0}@h5&d)1L%>%V7ixo8D<C9ZTlXF03
z$Hy0!q$DTi<ba1{L5*^2NCbcr4}=X$44_hC6$1kUsFMwf9Z>!RDMaLMP$dizsQ@WJ
zDHA~AAVJV%4~Wgo02%{C72yJLp-nM}8c=co2_kfXrW`;bi0Txk2GmeM)dfpjp&$)V
zb9q5Zz<kuw1~eiH8T-bTvKH`HFoFgRAa?_#F=T=V2a6ea8JxfaY@oq5P!}7~)pKX?
zV+dtX0N-2+x=#S62h{beWB?5#B!WA+psqb=m@yALqz4)#1l@L803N&pb?rfekh~0`
z(9SXFPEe3(3Jfv|py7pNh8%`c=zt`sOA2!rXebgim;oBjgAGI`F_ePc4H`%&Vkm|B
z0O4ZLAV)ewCPOlKXc9D(n8g6;tRtHY8t!vpaAnYCC<YIFf;zb%zkzfGGbDrWL@i(_
z0e7cE!1s58Oau*4<}g%(2S!0dDWKs^(C{S451^r!Vung^w>p&pGE@obCL>G+6>1I8
znSOB8F=Rt)C<e&*GFT8)v_T>lln%i{461N-khBF##~{6+!U;My4K36_x?w|wVExdJ
z2*?CP0S9S}g+mMnHv;(~R$_E+K|_y@NbP0k{JgZx^iois%+Et@l`Y^;V`N}JjC*8&
z$3j4(P@pK3QGkpvq%h<&l!Gsc1&w=vA__DP0UGrIjYY!}2x$Bvj{y`R>EKaoNFYPT
zS~M8+z*pa9f=6dTYCwq#G<FM$29Rl>@stz>L~?Ux@L`BxP+$mQ@MQo+4QMPnlfey~
zj6jJNWLqwHoEJ1=21?W*y|D2cNWue|Uk)Ba%VE%E$YuZ~^m2wg2INEqVuQxrA(;c>
z5>P?_nUCE!ybSu_@v>wFeefb<kRDKWM2LctK4|PdhoOu?j{#;9C@F<7fM!;qame5b
zPa>dMT!<*BJr9XjaMOwblx#riAjt--4w`I0Dq(dYsDK1bX@C|lgUmq`TA;cSBmydA
zK;|+tfZFpQ5kw&hVu3_pg;p4Z15RXoAWdLCYM}*6v@WS-naQa*>ca>|1_qDBq7+a^
zP&YLX)Xz&n?#2}>fa<Q4%(S%3<kFlH(7*(=1E2tEei!S)`USjDYZ4*-!?eU?&?E|c
zcmqBoSqzzxOi3+B%}YtmE8#^QyH?0fEy_#H(aiz%G88mYAZ`aY)rvHc`yL9(iFpc1
zsS0JOMU|k|Q4Xky2CBAsJ@dd5W=T1f3Pq`frI|&k#R@Q2>J}HICTFH)CPT)#Q;T_n
zQ&V#@^U`xF6-x6m(=t<2;A)E%G*b1_^&njY9q?d@CNwmPOEUA4OL8g|Kmh}q*ey{=
zEKw-QNQF9I0qlHGQUbNC&x0cdM0CNE5=0D?Y(QeLas?K(;PyMTJ`%tYwV?VfI6tQp
zTwkM>7c2OmFfcHL7K4H#wIUPb+H|z&Qh@iU!0lV){uW{um)F@RLPsI6L`MNMc%}m%
zP(trR@;c||rDTE}l9&VP$rWTmho?%xP5_0Avp#4jte_|r(YjU6OjAfnP0P$nP0@%C
z_w+M1(&SZ6%|RB8&jC$W$H!wzl;&kt#K(ghB%s{t3<_N^2KAI7AqMWtgT+8O6Cwst
z2MTtOI!JB>tAplNkV@p-3hJ?M1)BlxOMz#R5S<=G7YD=wDFe|Uo0!3uq=Q6Qpi#~Y
zTBraLfKN$ALwTU)i4aH=n2(x&LCezMk*t7c08|M+0E$TB8L5dWsYTFsA~>W$2?CxK
z;8{>1HxZPVc{B5pb4pWELCxR_{q)kz@}k57y$rZ;d1jum5t6tkM7cr%q;FM{3hD}_
z7AurzWF}`o&4lC^NF;+=$OW0;mSzcfs21T;=nz6KXznSsn76nn8S04C5>R^4O9l%;
z9RL@Dw8p^A=#*46>!BusBq2puQfX#R2`EQ`k_%`y7#!LR3DD?aU;quWL&QMCijeq#
zr~@SzkUB_m0jq;17m!Ni<N}(ygbnZ@A|7HE@{kX#|BGmm#z3qFClZi)W^hsi3F0#c
zlyp$lfJ_95fM|$0u)!o)*#dSmv}_RsDFG=*>qvpxLeBZ1_yzS>(F>OrP&W(bppZgA
zQ9h`DQw%GilQR-wg|iN5gaa~OQ<PesSd@~Pm#)am8<LTjm#t8lUkV;?s?0AfQUI+d
z(Lq@tqo7fgpX7i%zyyj-&~lGfun!nHKy5un2FP$NDAX9(Ky56LB&?E_V9;my!2bXw
z1RZC9^%lTF@X&y?;vj_uScU<y6bB*)E+`;U42bmv5INX7U63?*(He*Wwa*jGh7c@h
z_JOBSAW}$Enh-Msq2eG4u{;GL2TIW(aS%p~mAnGAE*SV3elQ;cFKT?x3~FS6tYl<j
z=LEN4K^mYqf#Cx?Xj&b_1+BrHHf<Wi-Me=g7@n+PFg8BJ@IN4c;s1F?2ADdK8jxBU
z85ss+<C$P}Ao>3c3}E%>>f+<$LCP6ky?O=Og~j0O>&tN9zyY{<3=C%&AZAWs`2YV5
zgW=@=3^N)2GyFH6$?*RS16&<M4ag2qBPxyINWm-yZ@;Y!M;gyFlx_FKPzUlymO~lC
z?UjcZ9`2vWu=!jQ!;ZBc80s1t8W;lOs~P5>x(s&L#P$0b-n?4Fz`(E=yb6Vp;s0OI
z@&qLXMh4L0IFM&xGy{VJI3t4c-2eaY!6gc0Z6YXjf>!McFf8T=O~0{%P2p$AV_;$c
zFWX}WE!P9}b8j%<HU%6nj0_A3tPBj`3+dRdFe)&DN+TJt7--QP1N#LgkSjowDsXkI
zAD9zBdj%Lo5b9V2SR25ZLxEv2e;#;A6wGHJw}AWwqCxANL2QtjAe$H%Kt2QYu^>JJ
zHB`Yx6e|OR0@yWRqZk~(u7I!;z_vr!4J;5_0~i+b2SJ1w7&#$17Gw`-APB|>`3+<z
zj1O@GGh98$PoU};CJ!+=fnhOt5g;gqLrerMmxRO~s9J`Ify#223Q$;qBMw{|ihv>t
ztcZz02wV<>I3RWdGz}n|0$aWSawl}KA8d*ck|_d6rU)?bGw`s0#<%zxm_GdA0*$0`
zd;sM_P!pZ^4``J(^M`3%Ae!X^sByx`!1)0*VE+{jFfnj}^)dW`ENA0qVEF)A*eL`R
zXZi!_2rp*f{s2m2pusj4h6V<nf?W)-RpOu!Xk=t%VBpx#D8L{9U4so;amoQ*`OE@d
zy(-M0^byqU*bgd8SQr=tz&3ATVrP_Qy3fqd!21DGLqZxY;AF+H5WGMJWCH_(00%f;
z!3m{-fsp}(L7gB_{Q^<}!Vn){0*@O(e8vp*!D9yQ51_IQ<^zjjR39`jf^r<hACQ&o
zpjGP2{`W9~a^`+U5e5;GefER#IF)^d95*abpP|Q1N*Sup8bLlID{l5Nhcd=9y=0+P
z+^|A@fF3tTDo}j@iyL+Z1`g`P%|2#3CN*a2`s@r+s$+xt>@oxQ2T<o5mg@FYWA_;w
ziq9_pCnvp4U=Co|$T*9tv4x!8*r9$xPj7eXQ2o>h+W&wjy@5(e>}5d#(*wpYjO?t`
zOmE+iVub_h17}9=51=t)Sgc%WMD+n=pNl;sXh|L{?SXc1U`u<5T_^t;*%<hsB_3o)
z24sf?Z2tnt-}TI(5(>%pObl(Xk}!!yoH10ijH>YmYMsK$a!#o4Co^z=0JY=m85kK@
z85$U5T6ZzDg9m;fyLlkK+|S6!AP6t<7#TRBK0|UlsM>^<;;oEVnV7^vS@;<Q!SxIS
z!(nbveFUoY7#VgkfMOI>`l2t&0kuY)b25{&L1RIwDVZe-zKO*psh}o%Ne*aLU}a7!
z1H&SIP`v@#h5#~e6+fuN2k{Ukz6v8~rT|jnb3y&t%)tG@fPsMl=1-UQT@2*=@H@*(
zCQdPNesmv#+`t6&A!H#Zr2YblgO<>P+9%k32%7gRE~(4`j~gZD=cPafdU!)JGK*kr
zxBSu~&{QF40E^cxGY!TDg$bxt1quZQ@N^j?cpjDs%w`6&K{Y5OtU#+kA?^Xy@8^(m
z1UEFS(9?uM59MiM0>1;(2eu6Y=phEm2keZHGy&-`K|&1VUIvB*{2+PINY_GsP#*)t
z1GR5Jbw7j+>do>oFfjZ8Z><2O2#~KXAo+?1hp%!bQpHys3H+G80ySzlnIOIbE!Tym
zbWC4?mi$6|0&CGgcrbtc!s#zi%MLUagdSTl)2QLE4FU<GnEnE}pMxxaffitaVh850
z8z}w)#XPKJVg$t(4+BFn1NR3|%r}A(E5~HUzWLn@QyA~<&0yHiD90er0BKXQFoQ-b
z?U_OMTnj*Zny{W6t{$WU!!B@p-U&Pp1)4i6X5eRd$E?Z)YI8$+v!GaDW`Xo(5xcxV
z<uwn>RZbAi^x-Tg1A_wtq^%8VPYW=B_RukZ$Og+3+13V^yCCzJKb&I$(JbJWDXfhS
z3Nz69acwaMhUpw2_d&`v(6&EN)hf)u{Q*=SLUyuYFOMPmr*rT#Fn>s5gxCREa{;sC
z0uuv603!o~1E?DU?$tr;0L2wE69a=X1NR3|uM8CX3=G(9;s=-X+Zh-bT-X>G%9$7#
z^1*w{Sw3VS<wejM5GF1}+@kgxKrK34y#{ojLF|LMJOJc0aBa%+0o0R(r6pDdMh1|5
zn;E!2fYKPUeXzP5WGkeWBc_dy-5m-ns3C|eq$e;lFa&ThFc^TMj0X{$Yz&MHq=htS
zVY(kXXtyK-LnQ|!PLV^J9qMyfE<*M>q+df?NW)w%07@e~5c`lrngePdzK{m>3Mmcg
z2cVEf3PDh5Uxk#yIHB%<wM&ux4U2JN+t=9R8k8eJ=O!dFGB9Xi33)E43$TYgsO1O?
zc@P^?ib3`SW48~y1DcJ2VF@Fo1OWMX36hVw85kLwxEL6O8M!}zwqqdsm=<kU?5$Qv
zemo9ZNXWs!04l9Cp<x4BJqF8<JfQwM7Xt$<c3`bBpIOHkiEnj++S5!7=%ED}L1<tp
zV45Hrz>eO|0L2<J!!btmwkIeff?8(OYJ1*AiWy$0Z_(SHZ{{3hB){!Bfir<wLHGeL
zx(`9sBn#AskW~VZmJ}$%f_w;CD~Gl1SzMY_l8Mp4Rsn?=0|Nu3(Fo#!EP!Nu<RKM4
zs3*~zAri|;iBjy5nZRGbq`=;QqtOV7OvsQp#H*lM0JYHwnj;5Q<*1EDP~iw_G=lm$
zs13&}NYTfS!)FPrsNyq@3H+EogESl=K7&m6;PM%$!4LHrbSMnML-reL;}O|!pr#78
z#$$&gHT?EKV1g*7-$1d$!9<SVV2wv)zu{>>g5r&)4M={556q`nL7k9~;63z^1|qKk
zXdt$W6_iJqJ~Xj{rWPQLL(pI%djq6#C<T^BZ5%?g8k~X;#5RCB<skD|J|GV$F@et8
z-~#PNM(xx#aGWHnV1W%XfGiAPS71ahN<iXVOeZl4OHd4=<}cixGEjr@C%lmlD@Q<S
z6j6>KcRrbM_-PLhseYQk`9J{EPas>_86bXwtZ%`Uv(UR_u+#@?4ugD!C^4}63N%Cv
ztMFK$zDj1`{s1aN>ls)WSQy$tDU_ied@#v=MnMKahX0Hl44e%1OrUNIEOs_9USJa7
zQ{Y069Z(puf_=jBK@4fAgB5BQdUaF6Nm>YQ;BsJEz;{6e-Cj`H#0E_j$b%ao_kb#x
z!8f>pTu-q<LkGQ{@(?~rLem2lHwmH)3<2y7V(4K6$|0Q4FhU;U0*RB7a}Xsr_B4iE
zmV-(bY-PENBzZmq<sVF+ftnE<P@hqje-I@%cE5q@Jy`x>1jQN;qNIZi1~h{wm?nb<
z1Ezon2KF-wF$fVcBmkO>1(j|LXJ&#Ylh2&_&#-CJCI)_nll(8h9Y`LQ9blU2!v<ys
zh5|-N2@di->jOv$?g5r3vIKvCD8Z43&zT-DGJxU?J+Gd4)67In(-4*pL4Ltqf;TgP
zn!BKmFYW;-TqQVU*bq^IgSs7ikXlE~IDD|+HK{%Tr8gYqH50@KE+B707m{G+B;4gS
z#1Dw_8svuqNPb{}`T@O6h)8H=BECBUiwj(30;qiCg!+V%xImN%Ab)`N?80&hC}o0D
z6S_YxEFsSypcug{0YK$H2h<;w#R#GV0Qm$Zzk_0gF8Tc(^Aqqw2gq<AD1q^V#_%9B
z+~C<{P^%5pqMHI9GGqDxI-<+~I@|{e3+56?c>tPj0Qm!XY8_-AGKRP4N)Y8i5mHKI
zDq&<$U}9hhX5jt+YT3gkqrPlA#<(BcP5=!QFfuSQgS*hsi57gFU4Cd+5Y%E}V3-GQ
ziGf^-Y%|Cg*lgag9o=SdcNS_hzD}qB7Mnq>FObbBab3a)-s1=>15wL%<l$c8%644C
zy`Z68&;e;o43M}6xrG<p{bOJNwcJ4quwZe002<djK#O9aWj{EsD<E+V8YTt#gQ&Q!
zz!BFK*yFlHq?rjduECRZ&=AKrsm99yDJQYTHK?TqD<_z7*c>8?ZZmk=3~Dp-WEW`J
z2S0;|0H`g?$ncRL)V~IACxsNt;3N-f!-C2@1_oXO*wh~=%=xgm5+n`^Pn2{4+V6t1
z44_}S04;dKmM#L2)5Q`p(!~-S>0$}?bRol!9y?S|7dULzU_!TfK+^?i1e8wc!iEVn
zIFG%&04>UdrHePv@&Z(sI3TBs8c4dR0m~EFR;)p!3*=nORD(TTY~VnT9bD-GSFUA2
z%C(>gCCI5jh+GTG&P10jI9xe_6Wx^qnub6TLZ>wJfgO>CK<R}S6r2o@ItR3P7bFI1
zUn~Gmlrepn!Op;708K+6InD`?G-LplCo&C9z>$U~U{6CbGU&BDZPE~A)DK(z<c2hY
z!3>(~;9_9-%)tEtw3r;$3d%4##<-t>iGd$&$p#PnkXQW6ZIBNEg&hA0YqLK94bX^g
z;sEvIK}%|})olVSpm<~eEh4T5)ol!1po8K-qkX&|AP3?ik0h<&2el0{^GXzoOLH|q
zbfS&|h)UAru2$gYEJ`gYEy`0!)K0Qi;I0KNG*@DPY!P5&_@@9`whCIp3t5b71l>Bo
z2wwULIUfwvUjrp1P|XR#kdbYW2&f*_V`N}h!~>bWWrc<&Y(ZTE!yF-6g<}9$1LFkI
z0&YU#2r6*?|NmbPDs7m+$pI3MWgrir^zc^jgTe)V@`<*#f~lUVLQ!gQX--M86)13R
z%}fj}%|RguI-V6Yy@4$RA>jpzH_$>M(3mY~91mn2h!$Z0g&OGmJy@u*VT4-B?_CVE
zNqq$z8yGhTZ|5WwYM|B>DAYi{U_wfLD?r{r3AF|Mp!pC5@CkUxXX42y6f=}E<TBVY
zs4}E5$SUYCK=>LAmJAjQ<_u;GIt-=^CJdmnqzoA}88jKJ89*TmYUhD41A~A9DC~?t
zQzqce)u7WwKrsXo1+|bNsT1T<kfT7;YM|5!QU&5e#;^^LQYSk`ICrqpDs?LGE?{C1
zQUfp7!k5cosS~_R0V#EYmItDapsWCgvuCkFNk%4U<38wMOwj&X_`#?;3dlz>=zvaq
zf@~^sMI3LckO?|s!X6aPpsnwq^9UiinUMj)2E{iheIn;-4vcW?VQFTfP5NBG4a(IA
zcnGCWQ2c|^Cn!fTflg##AU;<c>lvcvYF$HPV@pt&P@1bz`V^p0qf@<)udfNp3!u6k
zRPQ7AH5H)sJ}4xaPeAH@lKPq_5cNKC@1E%d_Ilsq%Sp6x1zhz$WKaaLfRh(I^S}#U
z5QILifZS>Y`2yRxg2Y#Jn`zS?gv|7SGck1Z15_S?auZ6r0G<3k2+{>;!xpx5A%L7N
z=8%yt=HN&dbFin2Ef3IRhwAA9hs{$SqT4*6>0-{{7@GoZ$itQ{7?9J&9x~F!9vtan
z5B7ACa0xwjsGcrx*z9l_-R1#J7kdUry1-SBd_W$b-atmW*nlHlY`~r_JkFuV4%O2I
z4x4Xa*gT-=V#DA_7ocUK*vg9s$mwDW8R=pRj&!jFd%F0ujppeBhs`IpquV^7>0-;^
zNEf)uiwnr<Vg(uLVg-(Lu>yO#kXVi$J5(<(aM=6<!{z}^7b^yLx==t)7i-8!7i(~&
zi#6EOMMev;<B*vB5!_>oDE$!}HhZ+9+f18uf$2)D{gE|;J6#+=P8S!*NEa7yq>BsK
z(?!56nwJ+iY&MvUZZmDt1(E$!(2Zks>ZgL{vT)6nBiAFy>moKFr;8hqbV1U(h#NT4
z#SQG~!e=Ua>`<c~K^{3_#$hwZG<2JBr3>Ve3Y6FRu#B95#4*MsZqTm`ASbRDAjkC;
zGUECQj<~*pJ+6PWpocis;~Iy}TUya=rg~go8QgI_0XeRpkP+8UaK!Z!>~S4Yi5}uq
zk82z@@2N(&nd)&3%4~zU3~xY=>knka^#>er{Q-Mihm@d)IMw4Chs^?|=r&V5u0IU!
zd|iMX*DuJ3>lZlU`UUp5?#M$AajM5P4x0_~(QQVK>jX9drVAq24{{*7zJ5Wkxc<Pr
z0=(A?vg-)6iG&?I)5gP+0p4uM^dW(Rfgu1nZd)L6`-7A<BrS-z1zo-eTRq6s0*PB^
z2JR1_S#`)>7SPckj12!lH<U6kGJ}>=z}8ma+P?y7Lvn-LLM$H=*bzr{Fhk8pUjw^E
z4Lt_IJ6)iw6LIZU0ky1nz_##y_ywAdhR%~iW~dkNKVxHH@MK71PypYNr@#O?`8bb3
zQlW$a!h_td2RdCCbZj-~7-`VCzM%V>AcskV&Nl{~8Vou#8+0Nu=*~INX~rP^AX<T;
z5_*3h=sr5oq1KRFzd(01f#gAlPlImO1DOgslp3ZUbPFHoFzp-$1%@Q>J$|73sX#|>
zgWLhRr%y%!WE<#)J6Q!(H-PSog4`FF5B44C^kL9lVz6VmLFW=f?(YKK<Cg)xc@K1?
zH~Ou8vI=_O)0Z<CK(|go4hIJv+zoOA!c`!<GZ{eVFoVu>1|8@PI&&H1BVF*h#~>My
zUts=)+)$<fzP&JyAsc)qG$<TE=QYFBq%dSMq(Scl1l?N(3Qv$PU}izW3f&}#DCmIi
z68P;~pt}&089;tahTEmf016jSyo2sJOJc}pr~n@g4l@rFBRNp_fm{Z<K@sFH1%?!c
zM21QRP^kDb6v5LC$YrI_Th>7AJn&)SAYGvQ7D4F(WDh9TKzE^m;uI1(<>2GWLANS`
z?&boy2Xd<$=w?GuS_2(f4!Z3PbO#*hq-|K3flLJX02H4fpFv^<6vH5wfo>H8sYqnV
z1*bjGx!5rCLH2@Tzmx%VKN#dzF_2gx_;7X*3lz5?mqOA5=v3?y22lC}g$?MANzlpP
zAoqYy&@Nygl+r-{#uk^Lv<o`49&tk?$PQ4rgUp4bEs#9qUOGrPfcytKm>qOj2P{oM
zP8J8<Z;8vtkQ*pd89=wRWq`vYogsq(l%7DkAo&+`J~$+lK<N+Sdyp*1OppjDCNsfz
zy@65yDAYi=_kmoB8Vd#B8~G5&)`P+f5}uG)0{H+GcA%r~k?->Z*$BF&50q~}xgeDx
z1)RnpWm7KruzXO82IWtXn?N+k<q*H+f=^|K9pn!(3sz=;*7tx)Fi0$dOoioDP-+FG
zMNr8Gx?i-I0TRX<(6iq`c?eXxfbI~5_yBYkJSg-*_ltu31&INOu3Rj)8K!~50(6Qx
zD2}kX8kBlLrh-gEltY@}oCpeWP^k<G5m4y^iZh5^pfCj8tyhF}M=He6kdTAqQ;-VK
zO@@#X2|2|h@(L)FK&2|kZIF-z=>_F`P$-pxZ&pPPIm}Rp<u*v^2q8gf7-R+{v{7$G
z4Zye+)rBFI0W(E_@&YJSKp_t?6_y%7F`C4HNMW$_2f7s&R5D2_fI<vZet^ORwE7EF
zj_83`xS_0hXu;QB0UfYItvz)gm@hGd)`vmbE0BE_pp`*9ER(={=$JlqF*7hsK%UF)
zfV5YX!16?{dF{Z_Ug@A_dj+(^g5^UO6H<ExYCd{<#pVe5if7{6D<E5VKd68kDUemA
zU?#%?e$c8SNSOd>RY2M(p!B1_0J=ptA1P%Z?)?Ro!KnEGR7ZjG5poUyr7%#Lf}Zw4
z=?Pm21gdL6;-FFlR5pQfIY=!eMS@Z<sJ4LcKxTtVO;An)u|f3=j14MZ(;14vxgOJ3
z5RoGA^&>gpwhYKOsJRL~UxIQED95KUlrWStz{*9Ce?cLIUiPAv*`OQ^y6*y%gOS@{
zpz<LZeBUtSN)?c+A>|Rs-=JCnwY>sreSty)RFi>RkqW(c(;s|k38?G>g&C-X0^M4Q
zxO@bp2NZUoobLp#lOcDvx?;WYwU_}*&hDUJ&c23}vmrYoAUS&)IOj5b=woJJ*npg~
zdmuSm4J=P&&hEjHvwNtYvq3lW!g@N)Q1j7qHqUHIbG8OJJEP`o(2^2Qa6Jx6kD$~A
zY8m0W#~O4uEvStNYPS?ISTTUwYLU=8VqvMrk0GA{(th^^-^vYY@qqddMc~_obHH|i
z?sS3mc0lz6C~uUbts92qOi+GOU_jQd3qCjvlB1C8R8akw2fk$mWMc`&6+95Npw?C*
zxaAM3bMwHrmm~Wel(H2V+!;a{JQ+YLK&=?iZRa4<K{*GM>p*!0<O9e}HMnd8_31#a
z1epS{CygNyd^ax0Jdpbkx4$5}0MudzwcZODKqTm%VbC2fkkAE{DWDt*YB`lKXfo)5
z&&UDY<^Wo|3F_N|I-8*0CnMw_Zt(UvP%Q|;;QL!pM65tsP()xilw-^bfHt7w96zLP
zy?ucP<XT9*4cV&#$=wscM}IMW=-^>sIDnkHr$BPI0$85N+&u+H?w&&Z+}**ARBuDg
zN6+0p+(OK#`!7kYx0OJ*7ov?b%-~{R2#4N51ZvfSdU~LG5Yn~-k+56{YI7HX@7+!U
z=Pyw2wH!Py0ZQK>mG;mcIjH^wrN&|gNGSkHuOM?lbvvkc2Wq*4bc5<WP`e$}Yl7se
zaHx5(wj!i&0=iooqz-gDHl*zes--|R6v!q>Jr1%D<bF`@wP)aE;AH^yH9@XYfZk&b
zDknhwB2aw^>K`L~3F-wFgD>bxWdL0-mdB6`&h?;n3Z%9L)s-M$B!TZX2jwkL4hOYk
zA$2Y!_d;9(X%~QUE~u9a8C?M7N=TgzvK4fvH>mXv>P3S54)HC>ub@^jsMP|x@f=j&
zqhFy0yLlW`YJgfEnGB%PMuEW?d`COT7LZO*uN_ndfb0T=kS{|pgD!&$_;zy8SP#fv
zP#F$#LoT>=1Byq`Wn>xPaRZRw3>nNAbQzMsqfa20fbO?aU~mSjMh<IGn1j@VN-I#G
z8&nE{!VJ{Hg4qvh;Z=c0iXb5bYA1o(S)l$psN@2**Fd2QiXE69P$)op*r3$q%n-m3
z3bq^7r7#_kcm~-GOIr{TWM4pP3uOJE@)zWGkb6Ma$5k+Z#)?4uP(Y!S&j4~as6+>a
zwgN*LxR+gu<PXqp6wuxjb8wFsS6rDg=rNe0#Sh3<m`_1%x;*gC7Lcu|aRX}cg8HG5
zJ}0CX3DOI4G01jU41r<+l=Ah!DIZc>gUpA70wlgb{bo=|gIdy{S{yWbgnYRiC`W=)
z5NJdSWFO>$J5YX21&2H+wSZdXh^z8I{cOmn5GWObM(sdu0J)_YyniQ^0aPM@YRPi&
z=mw;{2(klo0~;u1g6x5$evprlui+zXHmKGFg$2kAh@A@X(Fjm%f^q?*9SrI(!+P|f
zPyyKtDvMA@>>#-rQfq@sCXjy6hyp0AKssPLA$dZV0aQAqFn~lsX%|$!LBbiNz66{i
zKqU|;#6h}2t!_x^36h7n3*-jSXa^{-LP{7=D1by!T?Q+$kW(|r_n>hy&<F&`rJ%AA
z5?7!w0l5kk&!7+i<p@v-VFb_5pwI%v6sXMQW#9&v|B?!zTnlLdfzmsugannCpi2}%
zc>ol{5R*aa5oA6jZ9(!q$cK=;4Qi+4GeBwx&<G18J%d64Vk;;fKqVb0WrO-%pgaaL
z8<KKCAqFuQLS}*cHJ}mzqy}UQNIfWYAfqRsngLYG7JzFcSUkYgLR<uLD@Z3OO+d<N
zklCQo3XuH}SCuj3Gk|WxgVZjd7y^X^XiOZGl64tC=7Yi$5)&YQfl>%4oIveT#CRE~
zq;v+4E|I1W;tIr-m7tKu<z7&_1NjNL<^k2sARA%VVuC^!<Reh~5K>1JGw3laU{FAb
zYe<>{r8kgIKy?qOP6eebNNEQWNo4@VFf3&8rwB+WgUU@%jDgGr%_V?h1LQxD`#_~9
z$R!F4p5Sp#P)tBZjzR5rNUng?pP=*yNlS<kC6Lb{sT5RuAjXBU`4*JUKq(bu10t?L
zH!OnO2CMNwB`PR?fN~%xRf5a~m4l#?2&4`)Dhq0Pq=8EoWcNX8bBJp|X)zHzRt6gN
z0Ht+MNPx-{$e27tEhNq$IUJ$`<i}D5PzwO02UHV+N)V9SAn^c6zaTe&dOjfYAZ-~)
zEP&z+<V%n|$PcJtjBF=FJ#tzAwN5~(8<djK>n(^IASQ$S0T~wn)wIFjQXEw3fW(~{
zKr>6AaTd_6mY`Gu$-|D|UR*K*s3ZlIOrZ1xn#Tay59$p%GC<lt`3%_%pmYT?*%>^J
zkD8l7J(q?2pxcjqLC0Hx`yqS4{Zq*GFQ7h5BkWRe=;c=m3@p$cpo-v=>_9sc85lsK
z;LFRvW<Yj={)CzY+EWQKiIE`yDuU6k0WBn>Q@`d6_$(brzXq~a9@4J?b*(_x=YWPr
zFCh187C`znGNhd2umDHDW&!p4HJ}UA;G-5$^U?b?E?+>S7NEVPuvuDC`!%2wiD3I*
zA(03<6&4b&ph(Av(*^V!i2|L~!N>rKQ!Yl(Wq6P{{R56OrVn2j85kZQ$LS78oI>K9
z$iC_h9C5mX`f>UN>0BsgsQKt|+H(pNr=UJM>|7{P;}mkgI`T-=3VzT*+J5;8?xCIv
zh+9_m6e0p#T*DN~6N?p+i&7IyQd1Q2OG^~;(-iVjLD$K{Zn96#&nrpH%qvy^T?P-n
zvJ_zm?7q|#g``Tb6w*bX&|CfVFwzj{5GFd63*1PfncPTe=rj{(=Q`7e!%Pee4ajNe
z03;1XgXM`#LkDoAp##)ULx+)1)qt9ho`wu^C{07LpaKA8ykiBwIwJ!E=uTG!(7t#D
zXN98DJYCS0iwcm-UqP{-SfT*C6&AFCJ{5GaYi@p?0`vl3(0%ZrJ@qLHu#4^CdLdG2
z`9+|sb5rumi**!y6O%LZO7e>{AeTRaF6hlKEmla&Ni54RDh8#}(7enFJq6H>vrso_
zYb&G`CFZ7<=NDxwlw?ro936$kVukY5oE#7h$~uk#p2d0!VVT9Hi8;<b5nxM`OG*=S
zaw-*)5{p6ECr=@;M2{DA{3Yn{LeKyks1OAmPyq^2Mh0mRmjRUYSU#Xk-GTOu(<w_N
zv4DyfNU;jph6*WGmB6=DFny3>VPIH*oF&dcvcx7*2Kdk5$P#C$pCzQ2k%j=F=A&l`
zk-d~=i7nvz5xH1hz+cA%T52Sz0BKNyn!BK(B~Y^+GVl%>$^ms1KwWZBBQuYITHPhk
zfCs1<3Txtnx;>CC7NYqH;)9ympex=%9W&6d1)-sgV(`QRY`{x{0n~8@HA6v7ZPczX
zWJ(`01OsZYLavcFX3&E!yYXiTX3%Fa0uO+otFnZuK^OO92w?yX%7a`B>(YVPAeS34
z7=R(dH4zK}4A@=a%;1XC9MF(n2tycDXBa~TLpTFyfF>I{T^Ya-3?A+Sb!NgCG8sTa
z51{5Xi0=cQ+$d$J0Gkf#$QCnXGl04m1>gw{NGO3WwFkv|3Ij+5sDlKG2~d}%g295p
z3`wOggC_&XK9HY4odaw`5)dE4x)yHWA=y+0Cx&1K7w8lPsHAxZEmsgz6rkomND!m)
z1+|pvP|`3k6p2p&-)jolE@8=_z;L0FfnnYR1_nEZ2@JhU7#J#-F)*xL#lUcS76XIh
zc?O1$*BKbzu3=y}eVc({<$VSQ4~7K{f44C(G`?YAn7D$0A$C6lL+L>V2Ho8Z46b__
z7((AMFo^DCV3_#<bin2WhNoK?7}k7dVCX%}z%cPR1H;mz3=DG@Ffi1fWMBwA%fOI%
z8WbX5!G{}yuFrnU2R?s^LF@;pL}Xw9U9Zi~Py$jkiir+^fB!+<N^tRrq6bvtJ!qZ(
z>8F2&!0L${4BG0OZyGQ#Fqo*p?lJ@2whB3d3v>_<s6z?5Jr}gi8FZL0=w>+)M)0v}
z3>x5O4+Db<BlvV>h7d*u(8Z_>paY&jM}g!pLd*o6Fv-urzyRv*fo{wObp=2!d&0uN
z0P5_3?wxW5-$NaclUS0LUzDrh0=jiAzaTd?uSB6dvm`^oSs^hmMZsBHo1sJjqz7~l
zRdIP{UP@|C4ns*=K1d9dyPU0J0*dm}ixP7c+%j`gi(`B<L3g6(r<Ex9r=?{kr^bY&
z=7O$HPc4oKC`v6(%_~U+U3jnHl3JXZo>v^>l#`m5Qmj{yUjlX;iaogsZXkO=VPa@x
z3YG_5?2fP^Aiq4dC?G#GuY@7LI3IMU>Vw65&+Y)-35*mAAn^;ct191IJje)QH@L@}
zIsQG!2%6G-%EACXj%c0=_z1NBATbVxPJwjr6d@-A1GBpj0|N&G=-4v`22g0KvGFrV
zfR0Q14>`^VV$lI+1_sc5O(6G!RB(V*fI=NK;RzB^28*yTNHc`^1q6sN$T03=0Np_R
z|Gz&2=q6)d2GC>=sFeg#%>`BkN*7<icYuM!AZCJG2#Q^hhzM8}3j^fXTu@pAxdt@e
z!40yS0mR~Ay1;aR8N^~?1Rc@`N?CuHz`kVwUu(#q%Lwuz1H&&S(2Y_c6JX+u;G1|s
z@*sc7vMDlrU;vp0QUi(=kPJ5Sn85l#y97Y#_ZQeLAU!a1At49yffzVcAabB3-=OwY
zJ|m_)C>?;hE}0Ar47T7d3<Cqm7oa<~VWu*JZPjIjxtbYt04@W>)kX|@4BU+JP!%wh
zFn7ZEnD&B>szSCG<R6f`*`V%*gaRW2BotsV01;&dhd(<bhzF5pVDR%h4-a)vyfHAS
zFtaeYGjKBog0U^5JA*Cg7F)3ImM(n=SIr7``v*pZE|89B25!b^23y8JBwepxe~0S=
zUC6+|@PUyPd`}|CE|88?25!bw23xRBn9Csd%7NUf%ZO<gNJl0EH)AG)Em$W+9VFa9
zrbGC!m|%kX926d?A;!o+h!3hMK_LuF8QKgC3>J(G43!KF3|UAq54trSW*@|th?r+V
ziFq9c3q~Dq=;<=TRKj8&#>b3#(1i~$do!Uq1mrICn1}crTU`IY2)cU|B9Dl*AO;J@
z7%<Lc3}VQH$MygFpg{|WYRvEl=}2R+U`%7kWQ;-9_30*_xCZGcV6b2;V8{gPBrdK&
zIw~0~7%Lev!8##sqDNeV$^p<ZdZ6R^Vn_;eP@7MUO^pF`^dh9J1Njw%L8Zihd3mHz
z0@anEoM6KMvI}%L6(6GwgB2nsTtElFLwt=H6Cjlg41A0X3=)hs3@!*=+1W^TfOLcM
z1;Q>Dunq<WB}N+tKZLGHli<3r+2zLw(!s!>!)U`0fzY)bbQdAW4p@ptwJU-Vq=SLM
zjM0W638CxiRlIhAZcj7=-IT~^!;pi}_39N|7bLf!+68KLI509Wcrn^Alp%C|N0dR>
z{8a|l!N3s0Xu|-xxegpp|NrB)3v^!wsMQn0Xv5IKhzMKI%0N(hfrum00_av_1_m`Y
zM$r0FaLEI!i$J9vB>Y&xWfcn}XmtxH<*2bS2!Ky+2bavCLu(lrVi>K#*nm-p0c0MN
z0I0vg2)d{Plw`pzd?*8SM;urU$WBNp11gsgZi0*nK<Z+IC}?08Qlml4fw+wgTxx;J
ze1u9!T_epB%Lqxo2pLcdl!1W-90!!Ae0I3qh;X)IBsS%<!|NMR9s%VQP&&qy^0C=P
ze9A|*i*U-vW*6}(AK5O#DIc3%#HV~@yGTj-pp=Jb1A$T!C<TGiHYC-7L_jS!2u(^|
z4NFy^%Ls_6d-FkEOGamKN`jSCy71N^q%;A!1ij7&-Sr&C$iM(<4TADDYMTLOGs2G`
zzoE9XWMyTMN)lKKR%8fc)CS`iMn#4ga83c0I|>S*8xkSmff;8Y9i|LnjHV1RjM_-L
zl$Alp@<Mb${PKYj5oaJB_6%W+_6#v#ov^S|RaJ$%4AU-<4o`+KMo)$quuhmR4GmBa
z1eaYP9l;D?jKK^sV4W~s+S;Jj6GRuLT_7E?3}KA13^8DxFkO0jpvhB+E=+%cbfhzc
zF{U%bfOW!j85$bm@fS!(Aww8rAwvvUCrp>Iu`yg1rd=Q%)eK>b)eJFUoiJTyW{8#*
zroTWsS{cF^TNz@&I$^r3tU$|Aarq0Rqn{y+v7aFZtP`fo*47s8LQK0rI%YD2G0tR&
z0qcb6a&Q3kG;!Gl(y^E!jBznT3|J>jm$S1o9=kv~)-r@Ku4RY;>xAiYa|0cVjLR;N
zj_nL#jN2Jvz&c^Nyu7^d*agyYkRgomAVUmTCrp>GuP<B|W_*EkoMs4PJk1aT)(O)U
z7#IlGg&Bq*9akB`7_TzKfOW!j1qXv}bI0W`kdFHdVT|_~V!%3Ky28Uj_k%)oVcG@K
z@sc5o@g+kHSSL(ZbTnw(3!)3tUmzWy8NwJpGsJ*(!gR&O#o_T6NXK7>Fvh<OF<_lA
zT}erx`>Ao+1=7LJ7{<uX7z5S`)0LW<ipMUH4nf8+MnT3Huuhn+%uG;^8JArk9ny?p
zjM9uT5S<K=Hb`!6E*`r;I#e0M7*!c#z&c@e6%-V}bzz1fNQXXS7^6O83|J>jS4jzI
ztP$cu%=iN7uw)Elv}B9{>xAhlFE7Vq7f6RQV;G||V+>d)OjmVvHCz{_T_7F4jA4wv
zj4@!HFkSWakfZt;7+`f6aybvu5zZLK7|s|2)(O+q+}w=EE|88y#xTZ2#u%_pn6CEr
zcDOFgFa+tyW(;G@W{d&rgz4()>VoUS^cP4+DPtI8DPs&+CrnpwZ!cUIrd=Q%^^9SR
z^^7rKoiJS!Cr*Ux!n6ydqmwa=v6C?dtP`ed>eQ)lU6^)(bWCOpW1P$w1J()CHFM@n
zxGqe)Ksx3!hB3}%i~;L}>6$ZV4qO+eT_7FH8N(QtGsb{*!gMWIumG+L(=L#Xjf`Q8
z8yRE3I$^pNFJ27Sg=rT^$8N?j#@&oDV4W~s%a<>Q>%z1Pq~j=K7~@gK7_d&5uGOno
z!*yZW1=4YzF^us%V+>d)OxN1AYvH;u?E>kz$r#3XlQ9OY6Q*n9#*J`Yn0A45JZ21I
ze9RaF)(O+KWy==0E=;>XI^HsdF}`Jt0qcb6+OY#PVhbq&Fzo{A_|6!{_?<BZtP`ed
z_wL<z>;mavWC~+sWQqangz4J5cQ0HQrd=Q%+)QDN+)OcGoiJSo4<3Z;!t@tNhbU7R
zqbO4hSSL)^kt0Xox-jhm>5yj%W0Yr#0qcb6I)3~(To<NYARU@aVT_tgF<_lAU8hc+
zg6qPx3#7xCDU8vWDF&<)rt9q4vv6IQc7b%*GKDePGR1&(!gQTKk35D6iZ|r)5TwJM
zDU8vbDF&<)rt8ur(1oQS)w+zBc7b#RGKDb)GR1&(!gO7^0=f(oq6^bsARW<6VT{pC
zF<_lAUDvN)$Kx-Mj#Q>F##E*luuhn+n>R7X(h%)=kdAz&FvfhQ7_d&5uG_b7<FN~*
zqmn6%v63kUtP`f|?p@Gb>bU#`($UNm#@Ngh1J()C_29t+Ja&O}^fHAp_A<qQb;5K#
zdh`gc3o{HsI;Jy)F-~WS0qcb6dh+B6To-11fpjcn3S(Tz6a&@?)AjV}Q@AcnyFfZt
zGlem(W{Lspgz0+z{5f0~rd=Q%TbaTbw=%_mb;5MLeEAZt3)3!;j{QtwjQg2lz&c^N
zUcY_~*M(^pNXJR0FvgQiF<_lAU2opJf$PGw3#8*RQyAlArWmkJn69^P-@<ia+6B^a
zmnn?#E>jFxCrsD-_wV7lFzo{Ac+M2Y_?#&QtP`f|!-o%WU6^)(bbMqAWBkYz1J()C
z_36_mxGqe)KstUig)#nSiUI3{>H7TnGh7#@T_7E-%wdeI%rRh{FkN51fENGZO7kEc
z{LEpD{LC?6oiJTrzkbDI7f6RBa~Pu}a|~D~OxL$>-{871{RPsY%pAt3%p3#O3Dfl*
zY19(aUmzX2%wdeW%rRh{FkL@>{J>)uNQXId7^69J3|J>@ECM9v$Q;J#$Q%QfgPHd8
z=TEq4m~H^+@MaEU^k$9$>xAk0_3Ia07p8wfIzpMl7(<z3z&c^Ne*gXr*M(^pNJl(#
z7-Kwh3|J@3<sh+4<}k)g<`}RX%(Op${=iMcbOT67F>@GWF>?%9C(JaESS@oHV=Z$G
zSPo{|-@kw1reV4bq@$fVjIo_L2CNfi8c1v+a~R`9<`}RX%(Q?1{=rSdbQ?&=Z00b=
z*~~FuoiNitVoRCB7?(1~faPG~AhGq#VT|jUW59ASTR@}Au+b?@H-mI+Vh&^6#2f?G
z3CRhtc@>Cy&}bM$oRo1n)bTM!&;T|AXs${OI!l?(z`)SY#K2(4$iQ%r2{PLYl84M?
zF*1NIy8MkaOA8r;W?*1ADa0^k{+DvlScWz;mmGWB*K&cjujQb5Jq88?__!Wu{EZW&
zp9#bg0kOcN>P(CvCi>`JIwQn2Gnufv24n_q(;%S(2{q8jIw<U=Su7c6G9O^bfVv1a
z?hY9dM>h-N+oPbV1_sap9bn%&Fers2X5{B4GJt)%OOmS|yKf=!1RGK1WHL6MiRNoP
zM$iFbAYU+nP6c5A&DI-nJ!B{XhY5J)1%on!D1!on6oV94Ob@IMq5~9SAQmwugJ$JH
zCjSFXoipe%h*D&lIs*d($TVR_&?*b8YeN_m8F(4w8AKR_859^q8H^Z&7&I8<8Dtsc
z8F(2$7jqdg$T27~h%g9J<PuN}8F8sI7BPTsvPE5xqQk(;Ai|)?AjF`|AjBZgpa^Aa
zGic+q6Os<Gr<_10L*^Nb6L6#))Yt{N>o?O?yeUVUnM)0O%0ZMnkoaX_U?7lkK;?}Q
z*Kx+@pmB7DfTGlT2?l-!ah(1{Pw60g&{HEM%^YV`1*bV(27Zc61C2_9Txh}wy5uW4
zKQAq{C^auRRUxFbB)=##F-IY(QiMUAL4tvgK@9A62?k*XaRy!nNwAnWg8%~;gBSxB
z122OF-t<d2v?RglmxU=EJTn-SpQI2BU9lt$b^*u+1qLoKTbzN5feWY4k<$xemH`s`
z0^qeC3=ELXM2t*KO2L)IC8?kRGte#N;B*9;%|k6E5#<J`JOGuxh}Apb5(r9w;s+!P
zS?vQd1GM4?Dmh9G(h$J6{*USE*{gH(qy;8V=U~v*`MD0X{x5(Tvf>03zo2V2L2(RP
zDGEv(po<SdWz`AjT=E6z0U9?LAT>9r4+u&nFCf>sGl1ItpjBp|Rw!r|8&ny9>Rb*+
z1_ogU1_l8}1_n^>lz^@eRDkSWVt5a}2AF{Xwk{B4w||~)adJ^=YMw%HMt(U1c%2`p
zHgGD+PfSV9&sA{FFDl3fT?Uw+$B>zy2XgnN9}M8~X(jmTM9?~P2p`lc0m*}+44Hn*
z#|d7y2oeXomjSYl5t%P1z`y{iMM1OMj-YY`oa>-9G-#1rcxGODN@iYqF?gccIlr_h
zGqp&;FSQ)p_zB6(O)UoT6oT?|6Z62DAuA0TNL&2~3TIeN$N-xB_b*5V`5t~1BE<fH
z{GyV?q|BVml1gwP0O9AP+Jl=`;Te^%6_yI%>R%VMA`-Ol(jFWTA*sn3d6|W!sl^PS
zctmg&G(g*qGV@APQ#8T;gx?tI6TtvljEJ<+2)vI8>`_n9#f!z@aB$AgEy&DCEmDAr
zfffKlZfb-IfYvcM78K-UCPS8GI_Kx5Wu}*cyqKQ{u6<on%QBNwVFrMLJ~%(86tsr3
z7@Vr$JQT-*;?+4nFFB{QI5R(wfkyzc6a&1BkAZ=~EkCcMSRu4HH3gh<K=l+z3Y2Og
z3quuP%SOTSpj-ly2RT1DCo?5gAtbXTC$$(X35pd^(iz30Aut*OqaiRF0;3@?8Umvs
zFd71*Aut*Oqai@25ctLqT0;uj$rXQK;^TEcKz;Qu%*+hC7-0M6K>cCRp@yK{yr5mN
zpnb`7a@?pjqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70>2m#OxC1~Xq
zXr3E1cMqD;1kGK8R;Pjb{h)bd(A+6#UKF&d2Q-rjTHC}AnxAKYoGb&H$OO&TgT@d*
zbMBxyd(eC^XdWE2wgog-3pzUwv<?NdyA?De3Od&SH0}V}F{{MDzyR8js=~m)0NP`!
z#=yV;TGItuqXRm?7Buq>+7GJ3z`&r(zyLluOP>L>j*o!>w09G98VzVSCg>UuQw9bG
z&>l;3(CHft3=EbG3=E*%lc19sY(QtQFn~_5Vqma`p0(r1z`)?dz`y|7zX&=#!4)*g
z%K$lB2Xw}tCj$cmXuqL10|Nu-+#t{{LO%uu27d<7m7WX?p#6cM6E{FR{z4cS7(y8s
z7{VApmrF1(fUfC`WME*3Vt|}Z6~n;55X->80NQ&O&%nTtz`($e$iTn=+Etg#z`&5g
zz`y|7E0@N=zyMnLn8Con0NMqY#lXM-I-?<nfq?<ETqlo#fgzs(a{f{w0|Nu-g7jhr
z2JqQer3?%VWef}qpj~F5bD2P=kAMyk1??ZJVPIhR_y7O@ItB&?(9W<11_p*k1_p*E
z1_lPuo-fd`wXF;c3~dYy44~ayp!FS{3=9mQJzCui3=BOC3=E*1SD^Dg`avrYq2_^3
zf|$&}z%Ye@fdRBzY8nFr!*m7)h8a-#Squyevl$o|K)ajfGB7aAV_;yI&%nR{+P4I9
z&)@(5|AX)nsQUk-fNmiW#E{Pby6R7X0d%2N2?OX-OHzszF$Pvfm}5a@h(K>+%54Ah
zf^DxDRx#|<1TFQ!Fb)*wFhOSq(DD7C1IR%~^D8iff-e>WrD&K6{InDU6Wo4~JMgQ9
z$b$CffmfL@fY#XtGk~tX03ACI@;m6l56FpsAQ9LV01$oHNDT(aT3L|YAdF27x>zkJ
zuY(FXa2WzR;SqEYdH_Q{_=G~x0qiae`3#`T&0v>Hpqqf;gX{;D-=MOaSo=Y`L2I8t
xG%EwTU8IGF1sUNF+J^}Xe~=p}#UOvfFr{XZqaS8Bh$crrrFua2!Z4|30RYWtn|lBN

diff --git a/xpdev/unicode.c b/xpdev/unicode.c
deleted file mode 100644
index 96a3337..0000000
--- a/xpdev/unicode.c
+++ /dev/null
@@ -1,744 +0,0 @@
-/* Synchronet Unicode encode/decode/translate functions */
-
-/* $Id: unicode.c,v 1.15 2019/08/30 11:04:53 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "unicode.h"
-#include "cp437defs.h"
-#include "unicode_defs.h"
-
-// Want UNICDE encodings of terminal control characters?
-#if defined USE_UNICODE_FOR_TERM_CTRL_CHARS
-#	define UNICODE_TERM_CTRL_CHAR_CODE(x) x
-#else
-#	define UNICODE_TERM_CTRL_CHAR_CODE(x) 0
-#endif
-
-// CP437 character to/from UNICODE code point conversion
-// The CP437 character value is the index into the table.
-// If the value at that index is 0, no translation is needed (1:1 mapping).
-enum unicode_codepoint cp437_unicode_tbl[] =
-{
-	/* 0x00 */ UNICODE_UNDEFINED,
-	/* 0x01 */ UNICODE_WHITE_SMILING_FACE,
-	/* 0x02 */ UNICODE_BLACK_SMILING_FACE,
-	/* 0x03 */ UNICODE_BLACK_HEART_SUIT,
-	/* 0x04 */ UNICODE_BLACK_DIAMOND_SUIT,
-	/* 0x05 */ UNICODE_BLACK_CLUB_SUIT,
-	/* 0x06 */ UNICODE_BLACK_SPADE_SUIT,
-	/* 0x07 '\a' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_BULLET),
-	/* 0x08 '\b' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_INVERSE_BULLET),
-	/* 0x09 '\t' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_WHITE_CIRCLE),
-	/* 0x0A '\n' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_INVERSE_WHITE_CIRCLE),
-	/* 0x0B */ UNICODE_MALE_SIGN,
-	/* 0x0C '\f' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_FEMALE_SIGN),
-	/* 0x0D '\r' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_EIGHTH_NOTE),
-	/* 0x0E */ UNICODE_BEAMED_EIGHTH_NOTES,
-	/* 0x0F */ UNICODE_WHITE_SUN_WITH_RAYS,
-	/* 0x10 */ UNICODE_BLACK_RIGHT_POINTING_POINTER,
-	/* 0x11 */ UNICODE_BLACK_LEFT_POINTING_POINTER,
-	/* 0x12 */ UNICODE_UP_DOWN_ARROW,
-	/* 0x13 */ UNICODE_DOUBLE_EXCLAMATION_MARK,
-	/* 0x14 */ UNICODE_PILCROW_SIGN,
-	/* 0x15 */ UNICODE_SECTION_SIGN,
-	/* 0x16 */ UNICODE_BLACK_RECTANGLE,
-	/* 0x17 */ UNICODE_UP_DOWN_ARROW_WITH_BASE,
-	/* 0x18 */ UNICODE_UPWARDS_ARROW,
-	/* 0x19 */ UNICODE_DOWNWARDS_ARROW,
-	/* 0x1A */ UNICODE_RIGHTWARDS_ARROW,
-	/* 0x1B '\e' */ UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_LEFTWARDS_ARROW),
-	/* 0x1C */ UNICODE_RIGHT_ANGLE,
-	/* 0x1D */ UNICODE_LEFT_RIGHT_ARROW,
-	/* 0x1E */ UNICODE_BLACK_UP_POINTING_TRIANGLE,
-	/* 0x1F */ UNICODE_BLACK_DOWN_POINTING_TRIANGLE,
-	/* 0x20-0x7E	(1:1 with US-ASCII and CP437) */
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	/* 0x7F (DEL) */ UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_HOUSE),
-	/* 0x80 */ UNICODE_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA,
-	/* 0x81 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS,
-	/* 0x82 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_ACUTE,
-	/* 0x83 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX,
-	/* 0x84 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS,
-	/* 0x85 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_GRAVE,
-	/* 0x86 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE,
-	/* 0x87 */ UNICODE_LATIN_SMALL_LETTER_C_WITH_CEDILLA,
-	/* 0x88 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX,
-	/* 0x89 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_DIAERESIS,
-	/* 0x8A */ UNICODE_LATIN_SMALL_LETTER_E_WITH_GRAVE,
-	/* 0x8B */ UNICODE_LATIN_SMALL_LETTER_I_WITH_DIAERESIS,
-	/* 0x8C */ UNICODE_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX,
-	/* 0x8D */ UNICODE_LATIN_SMALL_LETTER_I_WITH_GRAVE,
-	/* 0x8E */ UNICODE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS,
-	/* 0x8F */ UNICODE_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE,
-	/* 0x90 */ UNICODE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE,
-	/* 0x91 */ UNICODE_LATIN_SMALL_LETTER_AE,
-	/* 0x92 */ UNICODE_LATIN_CAPITAL_LETTER_AE,
-	/* 0x93 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX,
-	/* 0x94 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS,
-	/* 0x95 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_GRAVE,
-	/* 0x96 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX,
-	/* 0x97 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_GRAVE,
-	/* 0x98 */ UNICODE_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS,
-	/* 0x99 */ UNICODE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS,
-	/* 0x9A */ UNICODE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS,
-	/* 0x9B */ UNICODE_CENT_SIGN,
-	/* 0x9C */ UNICODE_POUND_SIGN,
-	/* 0x9D */ UNICODE_YEN_SIGN,
-	/* 0x9E */ UNICODE_PESETA_SIGN,
-	/* 0x9F */ UNICODE_LATIN_SMALL_LETTER_F_WITH_HOOK,
-	/* 0xA0 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_ACUTE,
-	/* 0xA1 */ UNICODE_LATIN_SMALL_LETTER_I_WITH_ACUTE,
-	/* 0xA2 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_ACUTE,
-	/* 0xA3 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_ACUTE,
-	/* 0xA4 */ UNICODE_LATIN_SMALL_LETTER_N_WITH_TILDE,
-	/* 0xA5 */ UNICODE_LATIN_CAPITAL_LETTER_N_WITH_TILDE,
-	/* 0xA6 */ UNICODE_FEMININE_ORDINAL_INDICATOR,
-	/* 0xA7 */ UNICODE_MASCULINE_ORDINAL_INDICATOR,
-	/* 0xA8 */ UNICODE_INVERTED_QUESTION_MARK,
-	/* 0xA9 */ UNICODE_REVERSED_NOT_SIGN,
-	/* 0xAA */ UNICODE_NOT_SIGN,
-	/* 0xAB */ UNICODE_VULGAR_FRACTION_ONE_HALF,
-	/* 0xAC */ UNICODE_VULGAR_FRACTION_ONE_QUARTER,
-	/* 0xAD */ UNICODE_INVERTED_EXCLAMATION_MARK,
-	/* 0xAE */ UNICODE_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK,
-	/* 0xAF */ UNICODE_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK,
-	/* 0xB0 */ UNICODE_LIGHT_SHADE,
-	/* 0xB1 */ UNICODE_MEDIUM_SHADE,
-	/* 0xB2 */ UNICODE_DARK_SHADE,
-	/* 0xB3 */ UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL,
-	/* 0xB4 */ UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT,
-	/* 0xB5 */ UNICODE_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE,
-	/* 0xB6 */ UNICODE_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE,
-	/* 0xB7 */ 0x2556,
-	/* 0xB8 */ 0x2555,
-	/* 0xB9 */ 0x2563,
-	/* 0xBA */ 0x2551,
-	/* 0xBB */ 0x2557,
-	/* 0xBC */ 0x255D,
-	/* 0xBD */ 0x255C,
-	/* 0xBE */ 0x255B,
-	/* 0xBF */ 0x2510,
-	/* 0xC0 */ 0x2514,
-	/* 0xC1 */ 0x2534,
-	/* 0xC2 */ 0x252C,
-	/* 0xC3 */ 0x251C,
-	/* 0xC4 */ 0x2500,
-	/* 0xC5 */ 0x253C,
-	/* 0xC6 */ 0x255E,
-	/* 0xC7 */ 0x255F,
-	/* 0xC8 */ 0x255A,
-	/* 0xC9 */ 0x2554,
-	/* 0xCA */ 0x2569,
-	/* 0xCB */ 0x2566,
-	/* 0xCC */ 0x2560,
-	/* 0xCD */ 0x2550,
-	/* 0xCE */ 0x256C,
-	/* 0xCF */ 0x2567,
-	/* 0xD0 */ 0x2568,
-	/* 0xD1 */ 0x2564,
-	/* 0xD2 */ 0x2565,
-	/* 0xD3 */ 0x2559,
-	/* 0xD4 */ 0x2558,
-	/* 0xD5 */ 0x2552,
-	/* 0xD6 */ 0x2553,
-	/* 0xD7 */ 0x256B,
-	/* 0xD8 */ 0x256A,
-	/* 0xD9 */ 0x2518,
-	/* 0xDA */ 0x250C,
-	/* 0xDB */ 0x2588,
-	/* 0xDC */ UNICODE_LOWER_HALF_BLOCK,
-	/* 0xDD */ 0x258C,
-	/* 0xDE */ 0x2590,
-	/* 0xDF */ UNICODE_UPPER_HALF_BLOCK,
-	/* 0xE0 */ UNICODE_GREEK_SMALL_LETTER_ALPHA,
-	/* 0xE1 */ UNICODE_GREEK_SMALL_LETTER_BETA, // or UNICODE_LATIN_SMALL_LETTER_SHARP_S
-	/* 0xE2 */ UNICODE_GREEK_SMALL_LETTER_GAMMA,
-	/* 0xE3 */ UNICODE_GREEK_SMALL_LETTER_PI,
-	/* 0xE4 */ UNICODE_GREEK_CAPITAL_LETTER_SIGMA,
-	/* 0xE5 */ UNICODE_GREEK_SMALL_LETTER_SIGMA,
-	/* 0xE6 */ UNICODE_GREEK_SMALL_LETTER_MU, // or UNICODE_MICRO_SIGN
-	/* 0xE7 */ UNICODE_GREEK_SMALL_LETTER_TAU,
-	/* 0xE8 */ UNICODE_GREEK_CAPITAL_LETTER_PHI,
-	/* 0xE9 */ UNICODE_GREEK_SMALL_LETTER_THETA, // or UNICODE_GREEK_CAPITAL_LETTER_THETA
-	/* 0xEA */ UNICODE_GREEK_CAPITAL_LETTER_OMEGA,
-	/* 0xEB */ UNICODE_GREEK_SMALL_LETTER_DELTA,
-	/* 0xEC */ UNICODE_INFINITY,
-	/* 0xED */ UNICODE_GREEK_SMALL_LETTER_PHI,
-	/* 0xEE */ UNICODE_GREEK_SMALL_LETTER_EPSILON,
-	/* 0xEF */ UNICODE_INTERSECTION,
-	/* 0xF0 */ UNICODE_IDENTICAL_TO, // A.K.A. "TRIPLE BAR"
-	/* 0xF1 */ UNICODE_PLUS_MINUS_SIGN,
-	/* 0xF2 */ UNICODE_GREATER_THAN_OR_EQUAL_TO,
-	/* 0xF3 */ UNICODE_LESS_THAN_OR_EQUAL_TO,
-	/* 0xF4 */ UNICODE_TOP_HALF_INTEGRAL,
-	/* 0xF5 */ UNICODE_BOTTOM_HALF_INTEGRAL,
-	/* 0xF6 */ UNICODE_DIVISION_SIGN,
-	/* 0xF7 */ UNICODE_ALMOST_EQUAL_TO,
-	/* 0xF8 */ UNICODE_DEGREE_SIGN,
-	/* 0xF9 */ UNICODE_BULLET_OPERATOR,
-	/* 0xFA */ UNICODE_MIDDLE_DOT,
-	/* 0xFB */ UNICODE_SQUARE_ROOT, // or UNICODE_CHECK_MARK
-	/* 0xFC */ UNICODE_SUPERSCRIPT_LATIN_SMALL_LETTER_N,
-	/* 0xFD */ UNICODE_SUPERSCRIPT_TWO,
-	/* 0xFE */ UNICODE_HALFWIDTH_BLACK_SQUARE, // or UNICODE_BLACK_SQUARE
-	/* 0xFF */ UNICODE_NO_BREAK_SPACE
-};
-
-size_t unicode_width(enum unicode_codepoint u)
-{
-	switch(u) {
-		case UNICODE_UNDEFINED:
-		case UNICODE_ZERO_WIDTH_SPACE:
-		case UNICODE_ZERO_WIDTH_NON_JOINER:
-		case UNICODE_ZERO_WIDTH_JOINER:
-		case UNICODE_VARIATION_SELECTOR_1:
-		case UNICODE_VARIATION_SELECTOR_2:
-		case UNICODE_VARIATION_SELECTOR_3:
-		case UNICODE_VARIATION_SELECTOR_4:
-		case UNICODE_VARIATION_SELECTOR_5:
-		case UNICODE_VARIATION_SELECTOR_6:
-		case UNICODE_VARIATION_SELECTOR_7:
-		case UNICODE_VARIATION_SELECTOR_8:
-		case UNICODE_VARIATION_SELECTOR_9:
-		case UNICODE_VARIATION_SELECTOR_10:
-		case UNICODE_VARIATION_SELECTOR_11:
-		case UNICODE_VARIATION_SELECTOR_12:
-		case UNICODE_VARIATION_SELECTOR_13:
-		case UNICODE_VARIATION_SELECTOR_14:
-		case UNICODE_VARIATION_SELECTOR_15:
-		case UNICODE_VARIATION_SELECTOR_16:
-		case UNICODE_ZERO_WIDTH_NO_BREAK_SPACE:
-			return 0;
-		default:
-			if(    (u >= UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_BEGIN		&& u <= UNICIDE_BLOCK_YI_RADICALS_END)
-				|| (u >= UNICIDE_BLOCK_HANGUL_SYLLABLES_BEGIN				&& u <= UNICIDE_BLOCK_HANGUL_SYLLABLES_END)
-				|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_BEGIN	&& u <= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_END)
-				|| (u >= UNICODE_BLOCK_VERTICAL_FORMS_BEGIN					&& u <= UNICODE_BLOCK_VERTICAL_FORMS_END)
-				|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_BEGIN		&& u <= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_END)
-				|| (u >= UNICODE_BLOCK_SMALL_FORM_VARIANTS_BEGIN			&& u <= UNICODE_BLOCK_SMALL_FORM_VARIANTS_END)
-				|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_BEGIN				&& u <= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_END)
-				|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_BEGIN			&& u <= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_END)
-				)
-				return 2;
-			return 1;
-	}
-}
-
-char unicode_to_latin1(enum unicode_codepoint codepoint)
-{
-	if (codepoint < 0 || codepoint > 255)
-		return UNICODE_UNDEFINED;
-	return codepoint;
-}
-
-char unicode_to_cp437(enum unicode_codepoint codepoint)
-{
-	switch(codepoint) {
-		case UNICODE_ACUTE_ACCENT:								return '\'';
-
-		case UNICODE_BROKEN_BAR:								return '|';
-		case UNICODE_MACRON:									return '~';
-
-		case UNICODE_CENT_SIGN:									return CP437_CENT_SIGN;
-		case UNICODE_POUND_SIGN:								return CP437_POUND_SIGN;
-		case UNICODE_YEN_SIGN:									return CP437_YEN_SIGN;
-		case UNICODE_SECTION_SIGN:								return CP437_SECTION_SIGN;
-		case UNICODE_DEGREE_CELSIUS:
-		case UNICODE_DEGREE_FAHRENHEIT:
-		case UNICODE_DEGREE_SIGN:								return CP437_DEGREE_SIGN;
-		case UNICODE_PLUS_MINUS_SIGN:							return CP437_PLUS_MINUS_SIGN;
-		case UNICODE_SUPERSCRIPT_TWO:							return CP437_SUPERSCRIPT_TWO;
-		case UNICODE_PILCROW_SIGN:								return CP437_PILCROW_SIGN;
-		case UNICODE_INVERTED_QUESTION_MARK:					return CP437_INVERTED_QUESTION_MARK;
-		case UNICODE_INVERTED_EXCLAMATION_MARK:					return CP437_INVERTED_EXCLAMATION_MARK;
-		case UNICODE_DOUBLE_EXCLAMATION_MARK:					return CP437_DOUBLE_EXCLAMATION_MARK;
-		case UNICODE_LEFT_POINTING_ANGLE_BRACKET:				return '<';
-		case UNICODE_RIGHT_POINTING_ANGLE_BRACKET:				return '>';
-		case UNICODE_COUNTERSINK:								return 'v';
-		case UNICODE_APL_FUNCTIONAL_SYMBOL_I_BEAM:				return 'I';
-
-		// Perform Upper -> Lower case mapping where an upper case equivalent doesn't exist in CP437:
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX;
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
-
-		// Greek letters
-		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA:
-		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS:		return 'A';
-		case UNICODE_GREEK_CAPITAL_LETTER_BETA:					return 'B';
-		case UNICODE_GREEK_CAPITAL_LETTER_GAMMA:
-		case UNICODE_GREEK_SMALL_LETTER_GAMMA:					return CP437_GREEK_CAPITAL_LETTER_GAMMA;
-		case UNICODE_GREEK_CAPITAL_LETTER_DELTA:
-		case UNICODE_GREEK_SMALL_LETTER_DELTA:					return CP437_GREEK_SMALL_LETTER_DELTA;
-		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON:
-		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS:
-		case UNICODE_GREEK_SMALL_LETTER_EPSILON:
-		case UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS:		return CP437_GREEK_SMALL_LETTER_EPSILION;
-		case UNICODE_GREEK_CAPITAL_LETTER_ZETA:					return 'Z';
-		case UNICODE_GREEK_CAPITAL_LETTER_ETA:					return 'H';
-		case UNICODE_GREEK_CAPITAL_LETTER_THETA:
-		case UNICODE_GREEK_SMALL_LETTER_THETA:
-		case UNICODE_GREEK_THETA_SYMBOL:						return CP437_GREEK_SMALL_LETTER_THETA;
-		case UNICODE_GREEK_CAPITAL_LETTER_IOTA:					
-		case UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA:	return 'I';
-		case UNICODE_GREEK_CAPITAL_LETTER_KAPPA:				return 'K';
-		case UNICODE_GREEK_CAPITAL_LETTER_MU:					return 'M';
-		case UNICODE_GREEK_CAPITAL_LETTER_NU:					return 'N';
-		case UNICODE_GREEK_CAPITAL_LETTER_OMICRON:				return 'O';
-		case UNICODE_GREEK_CAPITAL_LETTER_PI:
-		case UNICODE_GREEK_SMALL_LETTER_PI:
-		case UNICODE_GREEK_PI_SYMBOL:							return CP437_GREEK_SMALL_LETTER_PI;
-		case UNICODE_GREEK_CAPITAL_LETTER_RHO:					return 'P';
-		case UNICODE_GREEK_CAPITAL_LETTER_SIGMA:				return CP437_GREEK_CAPITAL_LETTER_SIGMA;			
-		case UNICODE_GREEK_CAPITAL_LETTER_TAU:
-		case UNICODE_GREEK_SMALL_LETTER_TAU:
-																return 'T';
-		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON:				return 'Y';
-		case UNICODE_GREEK_CAPITAL_LETTER_PHI:					return CP437_GREEK_CAPITAL_LETTER_PHI;
-		case UNICODE_GREEK_CAPITAL_LETTER_CHI:					return 'X';
-		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA:
-		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS:
-		case UNICODE_GREEK_SMALL_LETTER_OMEGA:
-		case UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS:		return CP437_GREEK_CAPITAL_LETTER_OMEGA;
-		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA:
-																return CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
-		case UNICODE_GREEK_SMALL_LETTER_ALPHA:
-		case UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS:		return CP437_GREEK_SMALL_LETTER_ALPHA;
-		case UNICODE_GREEK_SMALL_LETTER_BETA:					return CP437_GREEK_SMALL_LETTER_BETA;
-		case UNICODE_GREEK_SMALL_LETTER_MU:						return CP437_GREEK_SMALL_LETTER_MU;
-		case UNICODE_GREEK_SMALL_LETTER_NU:						return 'v';
-		case UNICODE_GREEK_SMALL_LETTER_OMICRON:				return 'o';
-		case UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS:		return CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE;
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON:				return 'u';
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS:		return CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE;
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA:
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS:
-																return CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS;
-		case UNICODE_GREEK_SMALL_LETTER_IOTA:					
-		case UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS:		return 'i';
-		case UNICODE_GREEK_SMALL_LETTER_KAPPA:					return 'k';
-		case UNICODE_GREEK_SMALL_LETTER_CHI:					return 'x';
-		case UNICODE_GREEK_SMALL_LETTER_SIGMA:
-		case UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA:			return CP437_GREEK_SMALL_LETTER_SIGMA;
-		case UNICODE_GREEK_SMALL_LETTER_RHO:					return 'p';	
-		case UNICODE_GREEK_SMALL_LETTER_ZETA:					return 'z';
-		case UNICODE_GREEK_SMALL_LETTER_ETA:					return 'n';
-
-		case UNICODE_EM_DASH:
-			return '\xC4';
-
-		case UNICODE_BULLET:
-		case UNICODE_BULLET_OPERATOR:							return CP437_BULLET_OPERATOR;
-
-		case UNICODE_NO_BREAK_SPACE:
-		case UNICODE_EN_QUAD:
-		case UNICODE_EM_QUAD:
-		case UNICODE_EN_SPACE:
-		case UNICODE_EM_SPACE:									return ' ';
-
-		case UNICODE_SQUARE_ROOT:								return CP437_SQUARE_ROOT;
-		case UNICODE_CHECK_MARK:
-		case UNICODE_HEAVY_CHECK_MARK:							return CP437_CHECK_MARK;
-
-		case UNICODE_MULTIPLICATION_X:
-		case UNICODE_HEAVY_MULTIPLICATION_X:
-		case UNICODE_BALLOT_X:
-		case UNICODE_HEAVY_BALLOT_X:							return 'x';
-
-		case UNICODE_DIVISION_SLASH:							return '/';
-		case UNICODE_SET_MINUS:									return '\\';
-		case UNICODE_ASTERISK_OPERATOR:							return '*';
-
-		case UNICODE_DOUBLE_VERTICAL_LINE:						return CP437_BOX_DRAWINGS_DOUBLE_VERTICAL;
-
-		case UNICODE_DOUBLE_LOW_LINE:							return '=';
-		case UNICODE_LEFT_SINGLE_QUOTATION_MARK:
-		case UNICODE_RIGHT_SINGLE_QUOTATION_MARK:
-		case UNICODE_SINGLE_HIGH_REVERSED_9_QUOTATION_MARK:		return '\'';
-		case UNICODE_SINGLE_LOW_9_QUOTATION_MARK:				return ',';
-		case UNICODE_LEFT_DOUBLE_QUOTATION_MARK:
-		case UNICODE_RIGHT_DOUBLE_QUOTATION_MARK:				
-		case UNICODE_DOUBLE_LOW_9_QUOTATION_MARK:
-		case UNICODE_DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK:		return '"';
-		case UNICODE_DAGGER:									return CP437_BOX_DRAWINGS_VERTICAL_AND_HORIZONTAL;
-		
-		case UNICODE_BLACK_SQUARE:
-		case UNICODE_BLACK_SQUARE_CENTERED:
-		case UNICODE_BLACK_SQUARE_FOR_STOP:
-		case UNICODE_BLACK_SMALL_SQUARE:
-		case UNICODE_BLACK_MEDIUM_SQUARE:
-		case UNICODE_BLACK_LARGE_SQUARE:
-		case UNICODE_BLACK_MEDIUM_SMALL_SQUARE:
-		case UNICODE_BLACK_VERY_SMALL_SQUARE:	
-		case UNICODE_HALFWIDTH_BLACK_SQUARE:					return CP437_HALFWIDTH_BLACK_SQUARE;
-
-		case UNICODE_HORIZONTAL_BAR:
-		case UNICODE_OVERLINE:
-		case 0x2500: // Box Drawings Light Horizontal
-		case 0x2501: // Box Drawings Heavy Horizontal
-		case 0x2504: // Box Drawings Light Triple Dash Horizontal
-		case 0x2505: // Box Drawings Heavy Triple Dash Horizontal
-		case 0x2508: // Box Drawings Light Quadruple Dash Horizontal
-		case 0x2509: // Box Drawings Heavy Quadruple Dash Horizontal
-		case 0x254C: // Box Drawings Light Double Dash Horizontal
-		case 0x254D: // Box Drawings Heavy Double Dash Horizontal
-		case 0x2574: // Box Drawings Light Left
-		case 0x2576: // Box Drawings Light Right
-		case 0x2578: // Box Drawings Heavy Left
-		case 0x257A: // Box Drawings Heavy Right
-		case 0x257C: // Box Drawings Light Left and Heavy Right
-		case 0x257E: // Box Drawings Heavy Left and Light Right
-			return '\xC4';
-
-		case 0x2502: // Box Drawings Light Vertical
-		case 0x2503: // Box Drawings Heavy Vertical
-		case 0x2506: // Box Drawings Light Triple Dash Vertical
-		case 0x2507: // Box Drawings Heavy Triple Dash Vertical
-		case 0x250A: // Box Drawings Light Quadruple Dash Vertical
-		case 0x250B: // Box Drawings Heavy Quadruple Dash Vertical
-			return '\xB3';
-
-		case 0x250C: // BOX DRAWINGS LIGHT DOWN AND RIGHT
-		case 0x250D:
-		case 0x250E:
-		case 0x250F: // BOX DRAWINGS HEAVY DOWN AND RIGHT
-			return '\xDA';
-
-		case 0x2510: // BOX DRAWINGS LIGHT DOWN AND LEFT
-		case 0x2511:
-		case 0x2512:
-		case 0x2513: // BOX DRAWINGS HEAVY DOWN AND LEFT
-			return '\xBF';
-
-		case 0x2514: // BOX DRAWINGS LIGHT UP AND RIGHT
-		case 0x2515:
-		case 0x2516:
-		case 0x2517: // BOX DRAWINGS HEAVY UP AND RIGHT
-			return '\xC0';
-
-		case 0x2518: // BOX DRAWINGS LIGHT UP AND LEFT
-		case 0x2519:
-		case 0x251A:
-		case 0x251B: // BOX DRAWINGS HEAVY UP AND LEFT
-			return '\xD9';
-
-		case 0x251C: // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-		case 0x251D:
-		case 0x251E:
-		case 0x251F:
-		case 0x2520:
-		case 0x2521:
-		case 0x2522:
-		case 0x2523: // BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-			return '\xC3';
-
-		case 0x2524: // BOX DRAWINGS LIGHT VERTICAL AND LEFT
-		case 0x2525:
-		case 0x2526:
-		case 0x2527:
-		case 0x2528:
-		case 0x2529:
-		case 0x252A:
-		case 0x252B:
-			return '\xB4';
-
-		case 0x252C: // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-		case 0x252D:
-		case 0x252E:
-		case 0x252F:
-		case 0x2530:
-		case 0x2531:
-		case 0x2532: // BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-		case 0x2533: // BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-			return '\xC2';
-
-		case 0x2534: // BOX DRAWINGS LIGHT UP AND HORIZONTAL
-		case 0x2535: // BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-		case 0x2536: // BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-		case 0x2537: // BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-		case 0x2538: // BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-		case 0x2539: // BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-		case 0x253A: // BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-		case 0x253B: // BOX DRAWINGS HEAVY UP AND HORIZONTAL
-			return '\xC1';
-
-		case 0x253C: // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-		case 0x253D: // BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-		case 0x253E: // BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-		case 0x253F: // BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-		case 0x2540: // BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-		case 0x2541: // BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-		case 0x2542: // BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-		case 0x2543: // BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-		case 0x2544: // BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-		case 0x2545: // BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-		case 0x2546: // BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-		case 0x2547: // BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-		case 0x2548: // BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-		case 0x2549: // BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-		case 0x254A: // BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-		case 0x254B: // BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-			return '\xC5';
-
-		case 0x254E: // BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-		case 0x254F: // BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-			return '|';
-
-		case 0x256D: // BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-			return '\xDA';
-
-		case 0x256E: // BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-			return '\xBF';
-
-		case 0x256F: // BOX DRAWINGS LIGHT ARC UP AND LEFT
-			return '\xD9';
-
-		case 0x2570: // BOX DRAWINGS LIGHT ARC UP AND RIGHT
-			return '\xC0';
-
-		case 0x2571: // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-			return '/';
-
-		case 0x2572: // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-			return '\\';
-
-		case 0x2573: // BOX DRAWINGS LIGHT DIAGONAL CROSS
-			return 'X';
-
-		case 0x2575: // Box Drawings Light Up
-		case 0x2577: // Box Drawings Light Down
-		case 0x2579: // Box Drawings Heavy Up
-		case 0x257B: // Box Drawings Heavy Down
-		case 0x257D: // Box Drawings Light Up and Heavy Down
-		case 0x257F: // Box Drawings Heavy Up and Light Down
-			return '\xB3';
-
-		case UNICODE_FULL_BLOCK:
-			return CP437_FULL_BLOCK;
-		case UNICODE_LOWER_HALF_BLOCK:
-			return CP437_LOWER_HALF_BLOCK;
-		case UNICODE_LEFT_HALF_BLOCK:
-			return CP437_LEFT_HALF_BLOCK;
-		case UNICODE_RIGHT_HALF_BLOCK:
-			return CP437_RIGHT_HALF_BLOCK;
-		case UNICODE_UPPER_HALF_BLOCK:
-			return CP437_UPPER_HALF_BLOCK;
-
-		case 0x2581: // Lower One Eighth Block
-			return '_';
-
-		case 0x2582: // Lower One Quarter Block
-		case 0x2583: // Lower Three Eighths Block
-			return '\x16';
-
-		case 0x2585: // Lower Five Eighths Block
-		case 0x2586: // Lower Three Quarters Block
-		case 0x2587: // Lower Seven Eighths Block
-			return '\xDC';
-
-		case 0x2589: // Left Seven Eighths Block
-			return '\xDB';
-
-		case 0x258A: // Left Three Quarters Block
-		case 0x258B: // Left Five Eighths Block
-		case 0x258D: // Left Three Eighths Block
-		case 0x258E: // Left One Quarter Block
-		case 0x258F: // Left One Eighth Block
-			return '\xDD';
-
-		case 0x2595: // Right One Eighth Block
-			return '\xDE';
-
-		case 0x2594: // Upper One Eighth Block
-			return '\xDF';
-
-		case UNICODE_KATAKANA_LETTER_TU:					return CP437_BLACK_SMILING_FACE;
-
-		case UNICODE_SMALL_COMMA:				
-		case UNICODE_SMALL_IDEOGRAPHIC_COMMA:				return ',';
-		case UNICODE_SMALL_FULL_STOP:						return '.';
-		case UNICODE_SMALL_SEMICOLON:						return ';';
-		case UNICODE_SMALL_COLON:							return ':';
-		case UNICODE_SMALL_QUESTION_MARK:					return '?';
-		case UNICODE_SMALL_EXCLAMATION_MARK:				return '!';
-		case UNICODE_SMALL_EM_DASH:							return '-';
-		case UNICODE_SMALL_LEFT_PARENTHESIS:				return '(';
-		case UNICODE_SMALL_RIGHT_PARENTHESIS:				return ')';
-		case UNICODE_SMALL_LEFT_CURLY_BRACKET:				return '{';
-		case UNICODE_SMALL_RIGHT_CURLY_BRACKET:				return '}';
-		case UNICODE_SMALL_LEFT_TORTOISE_SHELL_BRACKET:		return '[';
-		case UNICODE_SMALL_RIGHT_TORTOISE_SHELL_BRACKET:	return ']';
-		case UNICODE_SMALL_NUMBER_SIGN:						return '#';
-		case UNICODE_SMALL_AMPERSAND:						return '&';
-		case UNICODE_SMALL_ASTERISK:						return '*';
-		case UNICODE_SMALL_PLUS_SIGN:						return '+';
-		case UNICODE_SMALL_HYPHEN_MINUS:					return '-';
-		case UNICODE_SMALL_LESS_THAN_SIGN:					return '<';
-		case UNICODE_SMALL_GREATER_THAN_SIGN:				return '>';
-		case UNICODE_SMALL_EQUALS_SIGN:						return '=';
-		case UNICODE_SMALL_REVERSE_SOLIDUS:					return '\\';
-		case UNICODE_SMALL_DOLLAR_SIGN:						return '$';
-		case UNICODE_SMALL_PERCENT_SIGN:					return '%';
-		case UNICODE_SMALL_COMMERCIAL_AT:					return '@';
-
-		default:	
-		{
-			int i;
-
-			if(codepoint >= UNICODE_FULLWIDTH_EXCLAMATION_MARK && codepoint <= UNICODE_FULLWIDTH_TILDE)
-				return '!' + (codepoint - UNICODE_FULLWIDTH_EXCLAMATION_MARK);
-
-			// Look for a 1:1 match in the CP437 -> Unicode table
-			for(i = 1; i < 0x100; i++) {
-				if(cp437_unicode_tbl[i] == codepoint)
-					return i;
-			}
-			break;
-		}
-	}
-
-	return UNICODE_UNDEFINED; // Not-mapped
-}
diff --git a/xpdev/unicode.h b/xpdev/unicode.h
deleted file mode 100644
index 461a4ec..0000000
--- a/xpdev/unicode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Synchronet Unicode encode/decode/translate functions */
-
-/* $Id: unicode.h,v 1.3 2019/07/10 00:02:40 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UNICODE_H_
-#define UNICODE_H_
-
-#include <stdlib.h>
-#include "unicode_defs.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-extern enum unicode_codepoint cp437_unicode_tbl[];
-size_t unicode_width(enum unicode_codepoint);
-char unicode_to_cp437(enum unicode_codepoint);
-char unicode_to_latin1(enum unicode_codepoint);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif // Don't add anything after this line
diff --git a/xpdev/unicode_defs.h b/xpdev/unicode_defs.h
deleted file mode 100644
index 790836f..0000000
--- a/xpdev/unicode_defs.h
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Synchronet Unicode definitions */
-
-/* $Id: unicode_defs.h,v 1.10 2019/08/30 10:48:47 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UNICODE_DEFS_H_
-#define UNICODE_DEFS_H_
-
-enum unicode_codepoint {
-	UNICODE_UNDEFINED = 0x0000,	// UNICODE_NULL() is defined
-
-	UNICODE_NEXT_LINE = 0x0085,
-	UNICODE_REVERSE_LINE_FEED = 0x008D,
-	UNICODE_NO_BREAK_SPACE = 0x00A0,
-	UNICODE_INVERTED_EXCLAMATION_MARK = 0x00A1,
-	UNICODE_CENT_SIGN = 0x00A2,
-	UNICODE_POUND_SIGN = 0x00A3,
-	UNICODE_CURRENCY_SIGN = 0x00A4,
-	UNICODE_YEN_SIGN = 0x00A5,
-	UNICODE_BROKEN_BAR = 0x00A6,
-	UNICODE_SECTION_SIGN = 0x00A7,
-	UNICODE_COPYRIGHT_SIGN = 0x0A9,
-	UNICODE_FEMININE_ORDINAL_INDICATOR = 0x00AA,
-	UNICODE_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = 0x00AB,
-	UNICODE_NOT_SIGN = 0x00AC,
-	UNICODE_SOFT_HYPHEN = 0x00AD,
-	UNICODE_REGISTERED_SIGN = 0x00AE,
-	UNICODE_MACRON = 0x00AF,
-	UNICODE_DEGREE_SIGN = 0x00B0,
-	UNICODE_PLUS_MINUS_SIGN = 0x00B1,
-	UNICODE_SUPERSCRIPT_TWO = 0x00B2,
-	UNICODE_ACUTE_ACCENT = 0x00B4,
-	UNICODE_MICRO_SIGN = 0x00B5,
-	UNICODE_PILCROW_SIGN = 0x00B6,	// Paragraph mark
-	UNICODE_MIDDLE_DOT = 0x00B7,
-	UNICODE_MASCULINE_ORDINAL_INDICATOR = 0x00BA,
-	UNICODE_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = 0x00BB,
-	UNICODE_VULGAR_FRACTION_ONE_QUARTER = 0x00BC,
-	UNICODE_VULGAR_FRACTION_ONE_HALF = 0x00BD,
-
-	UNICODE_INVERTED_QUESTION_MARK = 0x00BF,
-
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE = 0x00C0,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE = 0x00C1,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX = 0x00C2,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_TILDE = 0x00C3,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = 0x00C4,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = 0x00C5,
-	UNICODE_LATIN_CAPITAL_LETTER_AE = 0x00C6,
-	UNICODE_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA = 0x00C7,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE = 0x00C8,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = 0x00C9,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX = 0x00CA,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS = 0x00CB,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE = 0x00CC,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE = 0x00CD,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX = 0x00CE,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS = 0x00CF,
-	UNICODE_LATIN_CAPITAL_LETTER_ETH = 0x00D0,
-	UNICODE_LATIN_CAPITAL_LETTER_N_WITH_TILDE = 0x00D1,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE = 0x00D2,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE = 0x00D3,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX = 0x00D4,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_TILDE = 0x00D5,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = 0x00D6,
-	UNICODE_MULTIPLICATION_SIGN = 0x00D7,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_STROKE = 0x00D8,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE = 0x00D9,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE = 0x00DA,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX = 0x00DB,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = 0x00DC,
-	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE = 0x00DD,
-	UNICODE_LATIN_CAPITAL_LETTER_THORN = 0x00DE,
-	UNICODE_LATIN_SMALL_LETTER_SHARP_S = 0x00DF,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_GRAVE = 0x00E0,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_ACUTE = 0x00E1,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = 0x00E2,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_TILDE = 0x00E3,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = 0x00E4,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = 0x00E5,
-	UNICODE_LATIN_SMALL_LETTER_AE = 0x00E6,
-	UNICODE_LATIN_SMALL_LETTER_C_WITH_CEDILLA = 0x00E7,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_GRAVE = 0x00E8,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_ACUTE = 0x00E9,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = 0x00EA,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = 0x00EB,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_GRAVE = 0x00EC,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_ACUTE = 0x00ED,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = 0x00EE,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = 0x00EF,
-	UNICODE_LATIN_SMALL_LETTER_ETH = 0x00F0,
-	UNICODE_LATIN_SMALL_LETTER_N_WITH_TILDE = 0x00F1,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_GRAVE = 0x00F2,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_ACUTE = 0x00F3,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = 0x00F4,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_TILDE = 0x00F5,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = 0x00F6,
-	UNICODE_DIVISION_SIGN = 0x00F7,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_STROKE = 0x00F8,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_GRAVE = 0x00F9,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_ACUTE = 0x00FA,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = 0x00FB,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = 0x00FC,
-	UNICODE_LATIN_SMALL_LETTER_Y_WITH_ACUTE = 0x00FD,
-	UNICODE_LATIN_SMALL_LETTER_THORN = 0x00FE,
-	UNICODE_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = 0x00FF,
-	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS = 0x0178,
-	UNICODE_LATIN_SMALL_LETTER_F_WITH_HOOK = 0x0192,
-
-	UNICODE_GREEK_CAPITAL_LETTER_HETA = 0x0370,
-	UNICODE_GREEK_SMALL_LETTER_HETA = 0x0371,
-	UNICODE_GREEK_CAPITAL_LETTER_ARCHAIC_SAMPI = 0x0372,
-	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_SAMPI = 0x0373,
-	UNICODE_GREEK_NUMERAL_SIGN = 0x0374,
-	UNICODE_GREEK_LOWER_NUMERAL_SIGN = 0x0375,
-	UNICODE_GREEK_CAPITAL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0376,
-	UNICODE_GREEK_SMALL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0377,
-	UNICODE_GREEK_YPOGEGRAMMENI = 0x037A,
-	UNICODE_GREEK_SMALL_REVERSED_LUNATE_SIGMA_SYMBOL = 0x037B,
-	UNICODE_GREEK_SMALL_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037C,
-	UNICODE_GREEK_SMALL_REVERSED_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037D,
-	UNICODE_GREEK_QUESTION_MARK = 0x037E,
-	UNICODE_GREEK_CAPITAL_LETTER_YOT = 0x037F,
-	UNICODE_GREEK_TONOS = 0x0384,
-	UNICODE_GREEK_DIALYTIKA_TONOS = 0x0385,
-	UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS = 0x0386,
-	UNICODE_GREEK_ANO_TELEIA = 0x0387,
-	UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS = 0x0388,
-	UNICODE_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS = 0x0389,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS = 0x038A,
-	UNICODE_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS = 0x038C,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS = 0x038E,
-	UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS = 0x038F,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS = 0x0390,
-	UNICODE_GREEK_CAPITAL_LETTER_ALPHA = 0x0391,
-	UNICODE_GREEK_CAPITAL_LETTER_BETA = 0x0392,
-	UNICODE_GREEK_CAPITAL_LETTER_GAMMA = 0x0393,
-	UNICODE_GREEK_CAPITAL_LETTER_DELTA = 0x0394,
-	UNICODE_GREEK_CAPITAL_LETTER_EPSILON = 0x0395,
-	UNICODE_GREEK_CAPITAL_LETTER_ZETA = 0x0396,
-	UNICODE_GREEK_CAPITAL_LETTER_ETA = 0x397,
-	UNICODE_GREEK_CAPITAL_LETTER_THETA = 0x0398,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA = 0x0399,
-	UNICODE_GREEK_CAPITAL_LETTER_KAPPA = 0x039A,
-	UNICODE_GREEK_CAPITAL_LETTER_LAMDA = 0x039B,
-	UNICODE_GREEK_CAPITAL_LETTER_MU = 0x039C,
-	UNICODE_GREEK_CAPITAL_LETTER_NU = 0x039D,
-	UNICODE_GREEK_CAPITAL_LETTER_XI = 0x039E,
-	UNICODE_GREEK_CAPITAL_LETTER_OMICRON = 0x039F,
-	UNICODE_GREEK_CAPITAL_LETTER_PI = 0x03A0,
-	UNICODE_GREEK_CAPITAL_LETTER_RHO = 0x03A1,
-	UNICODE_GREEK_CAPITAL_LETTER_SIGMA = 0x03A3,
-	UNICODE_GREEK_CAPITAL_LETTER_TAU = 0x03A4,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON = 0x03A5,
-	UNICODE_GREEK_CAPITAL_LETTER_PHI = 0x03A6,
-	UNICODE_GREEK_CAPITAL_LETTER_CHI = 0x03A7,
-	UNICODE_GREEK_CAPITAL_LETTER_PSI = 0x03A8,
-	UNICODE_GREEK_CAPITAL_LETTER_OMEGA = 0x03A9,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA = 0x03AA,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03AB,
-	UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS = 0x03AC,
-	UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS = 0x03AD,
-	UNICODE_GREEK_SMALL_LETTER_ETA_WITH_TONOS = 0x03AE,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS = 0x03AF,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS = 0x03B0,
-	UNICODE_GREEK_SMALL_LETTER_ALPHA = 0x03B1,
-	UNICODE_GREEK_SMALL_LETTER_BETA = 0x03B2,
-	UNICODE_GREEK_SMALL_LETTER_GAMMA = 0x03B3,
-	UNICODE_GREEK_SMALL_LETTER_DELTA = 0x03B4,
-	UNICODE_GREEK_SMALL_LETTER_EPSILON = 0x03B5,
-	UNICODE_GREEK_SMALL_LETTER_ZETA = 0x03B6,
-	UNICODE_GREEK_SMALL_LETTER_ETA = 0x03B7,
-	UNICODE_GREEK_SMALL_LETTER_THETA = 0x03B8,
-	UNICODE_GREEK_SMALL_LETTER_IOTA = 0x03B9,
-	UNICODE_GREEK_SMALL_LETTER_KAPPA = 0x03BA,
-	UNICODE_GREEK_SMALL_LETTER_LAMDA = 0x03BB,
-	UNICODE_GREEK_SMALL_LETTER_MU = 0x03BC,
-	UNICODE_GREEK_SMALL_LETTER_NU = 0x03BD,
-	UNICODE_GREEK_SMALL_LETTER_XI = 0x03BE,
-	UNICODE_GREEK_SMALL_LETTER_OMICRON = 0x03BF,
-	UNICODE_GREEK_SMALL_LETTER_PI = 0x03C0,
-	UNICODE_GREEK_SMALL_LETTER_RHO = 0x03C1,
-	UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA = 0x03C2,
-	UNICODE_GREEK_SMALL_LETTER_SIGMA = 0x03C3,
-	UNICODE_GREEK_SMALL_LETTER_TAU = 0x03C4,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON = 0x03C5,
-	UNICODE_GREEK_SMALL_LETTER_PHI = 0x03C6,
-	UNICODE_GREEK_SMALL_LETTER_CHI = 0x03C7,
-	UNICODE_GREEK_SMALL_LETTER_PSI = 0x03C8,
-	UNICODE_GREEK_SMALL_LETTER_OMEGA = 0x03C9,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA = 0x03CA,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03CB,
-	UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS = 0x03CC,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS = 0x03CD,
-	UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS = 0x03CE,
-	UNICODE_GREEK_CAPITLA_KAI_SYMBOL = 0x03CF,
-	UNICODE_GREEK_BETA_SYMBOL = 0x03D0,
-	UNICODE_GREEK_THETA_SYMBOL = 0x03D1,
-	UNICODE_GREEK_UPSILON_WITH_HOOK_SYMBOL = 0x03D2,
-	UNICODE_GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL = 0x03D3,
-	UNICODE_GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL = 0x03D4,
-	UNICODE_GREEK_PHI_SYMBOL = 0x03D5,
-	UNICODE_GREEK_PI_SYMBOL = 0x03D6,
-	UNICODE_GREEK_KAI_SYMBOL = 0x03D7,
-	UNICODE_GREEK_LETTER_ARCHAIC_KOPPA = 0x03D8,
-	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_KOPPA = 0x03D9,
-	UNICODE_GREEK_LETTER_STIGMA = 0x03DA,
-	UNICODE_GREEK_SMALL_LETTER_STIGMA = 0x03DB,
-	UNICODE_GREEK_LETTER_DIGAMMA = 0x03DC,
-	UNICODE_GREEK_SMALL_LETTER_DIGAMMA = 0x03DD,
-	UNICODE_GREEK_LETTER_KOPPA = 0x03DE,
-	UNICODE_GREEK_SMALL_LETTER_KOPPA = 0x03DF,
-	UNICODE_GREEK_LETTER_SAMPI = 0x03E0,
-	UNICODE_GREEK_SMALL_LETTER_SAMPI = 0x03E1,
-
-	UNICODE_EN_QUAD = 0x2000,
-	UNICODE_EM_QUAD = 0x2001,
-	UNICODE_EN_SPACE = 0x2002,
-	UNICODE_EM_SPACE = 0x2003,
-	UNICODE_ZERO_WIDTH_SPACE = 0x200B,
-	UNICODE_ZERO_WIDTH_NON_JOINER = 0x200C,
-	UNICODE_ZERO_WIDTH_JOINER = 0x200D,
-	UNICODE_EM_DASH = 0x2014,
-	UNICODE_HORIZONTAL_BAR = 0x2015,
-	UNICODE_DOUBLE_VERTICAL_LINE = 0x2016,
-	UNICODE_DOUBLE_LOW_LINE = 0x2017,
-	UNICODE_LEFT_SINGLE_QUOTATION_MARK = 0x2018,
-	UNICODE_RIGHT_SINGLE_QUOTATION_MARK = 0x2019,
-	UNICODE_SINGLE_LOW_9_QUOTATION_MARK = 0x201A,
-	UNICODE_SINGLE_HIGH_REVERSED_9_QUOTATION_MARK = 0x201B,
-	UNICODE_LEFT_DOUBLE_QUOTATION_MARK = 0x201C,
-	UNICODE_RIGHT_DOUBLE_QUOTATION_MARK = 0x201D,
-	UNICODE_DOUBLE_LOW_9_QUOTATION_MARK = 0x201E,
-	UNICODE_DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK = 0x201F,
-	UNICODE_DAGGER = 0x2020,
-	UNICODE_DOUBLE_DAGGER = 0x2021,
-	UNICODE_BULLET = 0x2022,
-	UNICODE_HORIZONTAL_ELLIPSIS = 0x2026,
-	UNICODE_LINE_SEPARATOR = 0x2028,
-	UNICODE_DOUBLE_EXCLAMATION_MARK = 0x203c,
-	UNICODE_OVERLINE = 0x203E,
-	UNICODE_SUPERSCRIPT_LATIN_SMALL_LETTER_N = 0x207F,
-	UNICODE_PESETA_SIGN = 0x20A7,
-
-	UNICODE_DEGREE_CELSIUS = 0x2103,
-	UNICODE_CARE_OF = 0x2105,
-	UNICODE_DEGREE_FAHRENHEIT = 0x2109,
-	UNICODE_NUMERO_SIGN = 0x2116,
-	UNICODE_SOUND_RECORDING_COPYRIGHT = 0x2117,
-	UNICODE_TRADE_MARK_SIGN = 0x2122,
-	UNICODE_LEFTWARDS_ARROW = 0x2190,
-	UNICODE_UPWARDS_ARROW = 0x2191,
-	UNICODE_RIGHTWARDS_ARROW = 0x2192,
-	UNICODE_DOWNWARDS_ARROW = 0x2193,
-	UNICODE_LEFT_RIGHT_ARROW = 0x2194,
-	UNICODE_UP_DOWN_ARROW = 0x2195,
-
-	UNICODE_UP_DOWN_ARROW_WITH_BASE = 0x21A8,
-
-	UNICODE_DIVISION_SLASH = 0x2215,
-	UNICODE_SET_MINUS = 0x2216,
-	UNICODE_ASTERISK_OPERATOR = 0x2217,
-	UNICODE_RING_OPERATOR = 0x2218,
-	UNICODE_BULLET_OPERATOR = 0x2219,
-	UNICODE_SQUARE_ROOT = 0x221A,
-	UNICODE_INFINITY = 0x221E,
-	UNICODE_RIGHT_ANGLE = 0x221F,
-
-	UNICODE_INTERSECTION = 0x2229,
-
-	UNICODE_ALMOST_EQUAL_TO = 0x2248,
-
-	UNICODE_IDENTICAL_TO = 0x2261,
-	UNICODE_LESS_THAN_OR_EQUAL_TO = 0x2264,
-	UNICODE_GREATER_THAN_OR_EQUAL_TO = 0x2265,
-
-	UNICODE_DIAMETER_SIGN = 0x2300,
-	UNICODE_ELECTRIC_ARROW = 0x2301,
-	UNICODE_HOUSE = 0x2302,
-	UNICODE_UP_ARROWHEAD = 0x2303,
-	UNICODE_DOWN_ARROWHEAD = 0x2304,
-	UNICODE_PROJECTIVE = 0x2305,
-	UNICODE_PERSPECTIVE = 0x2306,
-	UNICODE_WAVY_LINE = 0x2307,
-	UNICODE_LEFT_CEILING = 0x2308,
-	UNICODE_RIGHT_CEILING = 0x2309,
-	UNICODE_LEFT_FLOOR = 0x230A,
-	UNICODE_RIGHT_FLOOR = 0x230B,
-	UNICODE_BOTTOM_RIGHT_CROP = 0x230C,
-	UNICODE_BOTTOM_LEFT_CROP = 0x230D,
-	UNICODE_TOP_RIGHT_CROP = 0x230E,
-	UNICODE_TOP_LEFT_CROP = 0x230F,
-	UNICODE_REVERSED_NOT_SIGN = 0x2310,
-	UNICODE_SQUARE_LOZENGE = 0x2311,
-	UNICODE_ARC = 0x2312,
-	UNICODE_SEGMENT = 0x2313,
-	UNICODE_SECTOR = 0x2314,
-	UNICODE_TELEPHONE_RECORDER = 0x2315,
-	UNICODE_POSITION_INDICATOR = 0x2316,
-	UNICODE_VIEWDATA_SQUARE = 0x2317,
-	UNICODE_PLACE_OF_INTEREST_SIGN = 0x2318,
-	UNICODE_TURNED_NOT_SIGN = 0x2319,
-	UNICODE_WATCH = 0x231A,
-	UNICODE_HOURGLASS = 0x231B,
-	UNICODE_TOP_LEFT_CORNER = 0x231C,
-	UNICODE_TOP_RIGHT_CORNER = 0x231D,
-	UNICODE_BOTTOM_LEFT_CORNER = 0x231E,
-	UNICODE_BOTTOM_RIGHT_CORNER = 0x231F,
-	UNICODE_TOP_HALF_INTEGRAL = 0x2320,
-	UNICODE_BOTTOM_HALF_INTEGRAL = 0x2321,
-	UNICODE_FROWN = 0x2322,
-	UNICODE_SMILE = 0x2323,
-	UNICODE_UP_ARROWHEAD_BETWEEN_TWO_HORIZONTAL_BARS = 0x2324,
-	UNICODE_OPTION_KEY = 0x2325,
-	UNICODE_ERASE_TO_THE_RIGHT = 0x2326,
-	UNICODE_X_IN_A_RECTANGLE_BOX = 0x2327,
-	UNICODE_KEYBOARD = 0x2328,
-	UNICODE_LEFT_POINTING_ANGLE_BRACKET = 0x2329,
-	UNICODE_RIGHT_POINTING_ANGLE_BRACKET = 0x232A,
-	UNICODE_ERASE_TO_THE_LEFT = 0x232B,
-	UNICODE_BENZENE_RING = 0x232C,
-	UNICODE_CYLINDRICITY = 0x232D,
-	UNICODE_ALL_AROUND_PROFILE = 0x232E,
-	UNICODE_SYMMETRY = 0x232F,
-	UNICODE_TOTAL_RUNOUT = 0x2330,
-	UNICODE_DIMENSION_ORIGIN = 0x2331,
-	UNICODE_CONICAL_TAPER = 0x2332,
-	UNICODE_SLOPE = 0x2333,
-	UNICODE_COUNTERBORE = 0x2334,
-	UNICODE_COUNTERSINK = 0x2335,
-	UNICODE_APL_FUNCTIONAL_SYMBOL_I_BEAM = 0x2336,
-
-	UNICODE_ALARM_CLOCK = 0x23F0,
-
-	UNICODE_HOURGLASS_WITH_FLOWING_SAND = 0x23F3,
-	UNICODE_BLACK_MEDIUM_LEFT_POINTING_TRIANGLE = 0x23F4,
-	UNICODE_BLACK_MEDIUM_RIGHT_POINTING_TRIANGLE = 0x23F5,
-	UNICODE_BLACK_MEDIUM_UP_POINTING_TRIANGLE = 0x23F6,
-	UNICODE_BLACK_MEDIUM_DOWN_POINTING_TRIANGLE = 0x23F7,
-	UNICODE_DOUBLE_VERTICAL_BAR = 0x23F8,
-	UNICODE_BLACK_SQUARE_FOR_STOP = 0x23F9,
-	UNICODE_BLACK_CIRCLE_FOR_RECORD = 0x23FA,
-
-	UNICODE_SYMBOL_FOR_NULL = 0x2400,
-	UNICODE_SYMBOL_FOR_START_OF_HEADING = 0x2401,
-	UNICODE_SYMBOL_FOR_START_OF_TEXT = 0x2402,
-	UNICODE_SYMBOL_FOR_END_OF_TEXT = 0x2403,
-	UNICODE_SYMBOL_FOR_END_OF_TRANSMISSION = 0x2404,
-	UNICODE_SYMBOL_FOR_ENQUIRY = 0x2405,
-	UNICODE_SYMBOL_FOR_ACKNOWLEDGE = 0x2406,
-	UNICODE_SYMBOL_FOR_BELL = 0x2407,
-	UNICODE_SYMBOL_FOR_BACKSPACE = 0x2408,
-	UNICODE_SYMBOL_FOR_HORIZONTAL_TABULATION = 0x2409,
-	UNICODE_SYMBOL_FOR_LINE_FEED = 0x240A,
-	UNICODE_SYMBOL_FOR_VERTICAL_TABULATION = 0x240B,
-	UNICODE_SYMBOL_FOR_FORM_FEED = 0x240C,
-	UNICODE_SYMBOL_FOR_CARRIAGE_RETURN = 0x240D,
-	UNICODE_SYMBOL_FOR_SHIFT_OUT = 0x240E,
-	UNICODE_SYMBOL_FOR_SHIFT_IN = 0x240F,
-	UNICODE_SYMBOL_FOR_DATA_LINK_ESCAPE = 0x2410,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_ONE = 0x2411,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_TWO = 0x2412,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_THREE = 0x2413,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_FOUR = 0x2414,
-	UNICODE_SYMBOL_FOR_NEGATIVE_ACKNOWLEDGE = 0x2415,
-	UNICODE_SYMBOL_FOR_SYNCHRONOUS_IDLE = 0x2416,
-	UNICODE_SYMBOL_FOR_END_OF_TRANSMISSION_BLOCK = 0x2417,
-	UNICODE_SYMBOL_FOR_CANCEL = 0x2418,
-	UNICODE_SYMBOL_FOR_END_OF_MEDIUM = 0x2419,
-	UNICODE_SYMBOL_FOR_SUBSTITUTE = 0x241A,
-	UNICODE_SYMBOL_FOR_ESCAPE = 0x241B,
-	UNICODE_SYMBOL_FOR_FILE_SEPARATOR = 0x241C,
-	UNICODE_SYMBOL_FOR_GROUP_SEPARATOR = 0x241D,
-	UNICODE_SYMBOL_FOR_RECORD_SEPARATOR = 0x241E,
-	UNICODE_SYMBOL_FOR_UNIT_SEPARATOR = 0x241F,
-	UNICODE_SYMBOL_FOR_SPACE = 0x2420,
-	UNICODE_SYMBOL_FOR_DELETE = 0x2421,
-	UNICODE_BLANK_SYMBOL = 0x2422,
-	UNICODE_OPEN_BOX = 0x2423,
-	UNICODE_SYMBOL_FOR_NEWLINE = 0x2424,
-	UNICODE_SYMBOL_FOR_DELETE_FORM_TWO = 0x2425,
-	UNICODE_SYMBOL_FOR_SUBSTITUTE_FORM_TWO = 0x2426,
-
-	UNICODE_BOX_DRAWINGS_LIGHT_HORIZONTAL = 0x2500,
-	UNICODE_BOX_DRAWINGS_HEAVY_HORIZONTAL = 0x2501,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL = 0x2502,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL	= 0x2503,
-	UNICODE_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_HORIZONTAL = 0x2504,
-	UNICODE_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_HORIZONTAL = 0x2505,
-	UNICODE_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_VERTICAL	= 0x2506,
-	UNICODE_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_VERTICAL	= 0x2507,
-	UNICODE_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_HORIZONTAL = 0x2508,
-	UNICODE_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_HORIZONTAL = 0x2509,
-	UNICODE_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_VERTICAL = 0x250A,
-	UNICODE_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_VERTICAL = 0x250B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT = 0x250C,
-	UNICODE_BOX_DRAWINGS_250D = 0x250D,
-	UNICODE_BOX_DRAWINGS_250E = 0x250E,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_RIGHT = 0x250F,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT = 0x2510,
-	UNICODE_BOX_DRAWINGS_2511 = 0x2511,
-	UNICODE_BOX_DRAWINGS_2512 = 0x2512,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_LEFT = 0x2513,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT	= 0x2514,
-	UNICODE_BOX_DRAWINGS_2515 = 0x2515,
-	UNICODE_BOX_DRAWINGS_2516 = 0x2516,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_RIGHT	= 0x2517,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_LEFT	= 0x2518,
-	UNICODE_BOX_DRAWINGS_2519 = 0x2519,
-	UNICODE_BOX_DRAWINGS_251A = 0x251A,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_LEFT	= 0x251B,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT	= 0x251C,
-	UNICODE_BOX_DRAWINGS_251D = 0x251D,
-	UNICODE_BOX_DRAWINGS_251E = 0x251E,
-	UNICODE_BOX_DRAWINGS_251F = 0x251F,
-	UNICODE_BOX_DRAWINGS_2520 = 0x2520,
-	UNICODE_BOX_DRAWINGS_2521 = 0x2521,
-	UNICODE_BOX_DRAWINGS_2522= 0x2522,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL_AND_RIGHT = 0x2523,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT = 0x2524,
-	UNICODE_BOX_DRAWINGS_2525 = 0x2525,
-	UNICODE_BOX_DRAWINGS_2526 = 0x2526,
-	UNICODE_BOX_DRAWINGS_2527 = 0x2527,
-	UNICODE_BOX_DRAWINGS_2528 = 0x2528,
-	UNICODE_BOX_DRAWINGS_2529 = 0x2529,
-	UNICODE_BOX_DRAWINGS_252A = 0x252A,
-	UNICODE_BOX_DRAWINGS_252B = 0x252B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL = 0x252C,
-	UNICODE_BOX_DRAWINGS_252D = 0x252D,
-	UNICODE_BOX_DRAWINGS_252E = 0x252E,
-	UNICODE_BOX_DRAWINGS_252F = 0x252F,
-	UNICODE_BOX_DRAWINGS_2530 = 0x2530,
-	UNICODE_BOX_DRAWINGS_2531 = 0x2531,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_DOWN_HEAVY = 0x2532,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_HORIZONTAL = 0x2533,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL = 0x2534,
-	UNICODE_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_UP_LIGHT = 0x2535,
-	UNICODE_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_UP_LIGHT = 0x2536,
-	UNICODE_BOX_DRAWINGS_UP_LIGHT_AND_HORIZONTAL_HEAVY = 0x2537,
-	UNICODE_BOX_DRAWINGS_UP_HEAVY_AND_HORIZONTAL_LIGHT = 0x2538,
-	UNICODE_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_UP_HEAVY = 0x2539,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_UP_HEAVY = 0x253A,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_HORIZONTAL = 0x253B,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL = 0x253C,
-	UNICODE_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_VERTICAL_LIGHT = 0x253D,
-	UNICODE_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_VERTICAL_LIGHT = 0x253E,
-	UNICODE_BOX_DRAWINGS_VERTICAL_LIGHT_AND_HORIZONTAL_HEAVY = 0x253F,
-	UNICODE_BOX_DRAWINGS_UP_HEAVY_AND_DOWN_HORIZONTAL_LIGHT	= 0x2540,
-	UNICODE_BOX_DRAWINGS_DOWN_HEAVY_AND_UP_HORIZONTAL_LIGHT	= 0x2541,
-	UNICODE_BOX_DRAWINGS_VERTICAL_HEAVY_AND_HORIZONTAL_LIGHT = 0x2542,
-	UNICODE_BOX_DRAWINGS_LEFT_UP_HEAVY_AND_RIGHT_DOWN_LIGHT	= 0x2543,
-	UNICODE_BOX_DRAWINGS_RIGHT_UP_HEAVY_AND_LEFT_DOWN_LIGHT	= 0x2544,
-	UNICODE_BOX_DRAWINGS_LEFT_DOWN_HEAVY_AND_RIGHT_UP_LIGHT	= 0x2545,
-	UNICODE_BOX_DRAWINGS_RIGHT_DOWN_HEAVY_AND_LEFT_UP_LIGHT	= 0x2546,
-	UNICODE_BOX_DRAWINGS_DOWN_LIGHT_AND_UP_HORIZONTAL_HEAVY	= 0x2547,
-	UNICODE_BOX_DRAWINGS_UP_LIGHT_AND_DOWN_HORIZONTAL_HEAVY	= 0x2548,
-	UNICODE_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_VERTICAL_HEAVY = 0x2549,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_VERTICAL_HEAVY = 0x254A,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL_AND_HORIZONTAL = 0x254B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_HORIZONTAL = 0x254C,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_HORIZONTAL = 0x254D,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_VERTICAL	= 0x254E,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_VERTICAL	= 0x254F,
-	UNICODE_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE = 0x2561,
-	UNICODE_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE = 0x2562,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_RIGHT = 0x256D,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_LEFT = 0x256E,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_UP_AND_LEFT = 0x256F,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_UP_AND_RIGHT	= 0x2570,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_RIGHT_TO_LOWER_LEFT = 0x2571,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_LEFT_TO_LOWER_RIGHT = 0x2572,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_CROSS = 0x2573,
-	UNICODE_BOX_DRAWINGS_LIGHT_LEFT	= 0x2574,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP = 0x2575,
-	UNICODE_BOX_DRAWINGS_LIGHT_RIGHT = 0x2576,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN	= 0x2577,
-	UNICODE_BOX_DRAWINGS_HEAVY_LEFT	= 0x2578,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP = 0x2579,
-	UNICODE_BOX_DRAWINGS_HEAVY_RIGHT = 0x257A,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN	= 0x257B,
-	UNICODE_BOX_DRAWINGS_LIGHT_LEFT_AND_HEAVY_RIGHT	= 0x257C,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_HEAVY_DOWN = 0x257D,
-	UNICODE_BOX_DRAWINGS_HEAVY_LEFT_AND_LIGHT_RIGHT	= 0x257E,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_LIGHT_DOWN = 0x257F,
-
-	UNICODE_UPPER_HALF_BLOCK = 0x2580,
-	UNICODE_LOWER_ONE_EIGHTH_BLOCK	= 0x2581,
-	UNICODE_LOWER_ONE_QUARTER_BLOCK	= 0x2582,
-	UNICODE_LOWER_THREE_EIGHTHS_BLOCK = 0x2583,
-	UNICODE_LOWER_HALF_BLOCK = 0x2584,
-	UNICODE_LOWER_FIVE_EIGHTHS_BLOCK = 0x2585,
-	UNICODE_LOWER_THREE_QUARTERS_BLOCK = 0x2586,
-	UNICODE_LOWER_SEVEN_EIGHTHS_BLOCK = 0x2587,
-	UNICODE_FULL_BLOCK = 0x2588,
-	UNICODE_LEFT_SEVEN_EIGHTHS_BLOCK = 0x2589,
-	UNICODE_LEFT_THREE_QUARTERS_BLOCK = 0x258A,
-	UNICODE_LEFT_FIVE_EIGHTHS_BLOCK	= 0x258B,
-	UNICODE_LEFT_HALF_BLOCK	= 0x258C,
-	UNICODE_LEFT_THREE_EIGHTHS_BLOCK = 0x258D,
-	UNICODE_LEFT_ONE_QUARTER_BLOCK = 0x258E,
-	UNICODE_LEFT_ONE_EIGHTH_BLOCK = 0x258F,
-	UNICODE_RIGHT_HALF_BLOCK = 0x2590,
-	UNICODE_LIGHT_SHADE = 0x2591,
-	UNICODE_MEDIUM_SHADE = 0x2591,
-	UNICODE_DARK_SHADE = 0x2592,
-	UNICODE_RIGHT_ONE_EIGHTH_BLOCK = 0x2595,
-	UNICODE_UPPER_ONE_EIGHTH_BLOCK = 0x2594,
-
-	UNICODE_BLACK_SQUARE = 0x25A0,
-	UNICODE_BLACK_SMALL_SQUARE = 0x25AA,
-	UNICODE_BLACK_RECTANGLE = 0x25AC,
-	UNICODE_BLACK_UP_POINTING_TRIANGLE = 0x25B2,
-	UNICODE_BLACK_RIGHT_POINTING_POINTER = 0x25BA,
-	UNICODE_BLACK_DOWN_POINTING_TRIANGLE = 0x25BC,
-	UNICODE_BLACK_LEFT_POINTING_POINTER = 0x25C4,
-	UNICODE_WHITE_CIRCLE = 0x25CB,
-	UNICODE_INVERSE_BULLET = 0x25D8,
-	UNICODE_INVERSE_WHITE_CIRCLE = 0x25D9,
-
-	UNICODE_BLACK_MEDIUM_SQUARE = 0x25FC,
-	UNICODE_WHITE_MEDIUM_SMALL_SQUARE = 0x25FD,
-	UNICODE_BLACK_MEDIUM_SMALL_SQUARE = 0x25FE,
-	UNICODE_LOWER_RIGHT_TRIANGLE = 0x25FF,
-	UNICODE_BLACK_SUN_WITH_RAYS = 0x2600,
-	UNICODE_CLOUD = 0x2601,
-	UNICODE_UMBRELLA = 0x2602,
-	UNICODE_SNOWMAN = 0x2603,
-	UNICODE_COMET = 0x2604,
-	UNICODE_BLACK_STAR = 0x2605,
-	UNICODE_WHITE_STAR = 0x2606,
-	UNICODE_LIGHTNING = 0x2607,
-	UNICODE_THUNDERSTORM = 0x2608,
-	UNICODE_SUN = 0x2609,
-	UNICODE_ASCENDING_NODE = 0x260A,
-	UNICODE_DESCENDING_NODE = 0x260B,
-	UNICODE_CONJUNCTION = 0x260C,
-	UNICODE_OPPOSITION = 0x260D,
-	UNICODE_BLACK_TELEPHONE = 0x260E,
-	UNICODE_WHITE_TELEPHONE = 0x260F,
-	UNICODE_BALLOT_BOX = 0x2610,
-	UNICODE_BALLOT_BOX_WITH_CHECK = 0x2611,
-	UNICODE_BALLOT_BOX_WITH_X = 0x2612,
-	UNICODE_SALTIRE = 0x2613,
-	UNICODE_UMBRELLA_WITH_RAIN_DROPS = 0x2614,
-	UNICODE_HOT_BEVERAGE = 0x2615,
-	UNICODE_WHITE_SHOGI_PIECE = 0x2616,
-	UNICODE_BLACK_SHOGI_PIECE = 0x2617,
-	UNICODE_SHAMROCK = 0x2618,
-	UNICODE_REVERSED_ROTATED_FLORAL_HEART_BULLET = 0x2619,
-	UNICODE_BLACK_LEFT_POINTING_INDEX = 0x261A,
-	UNICODE_BLACK_RIGHT_POINTING_INDEX = 0x261B,
-	UNICODE_WHITE_LEFT_POINTING_INDEX = 0x261C,
-	UNICODE_WHITE_UP_POINTING_INDEX = 0x261D,
-	UNICODE_WHITE_RIGHT_POINTING_INDEX = 0x261E,
-	UNICODE_WHITE_DOWN_POINTING_INDEX = 0x261F,
-	UNICODE_SKULL_AND_CROSSBONES = 0x2620,
-	UNICODE_CAUTION_SIGN = 0x2621,
-	UNICODE_RADIOACTIVE_SIGN = 0x2622,
-	UNICODE_BIOHAZARD_SIGN = 0x2623,
-	UNICODE_CADUCEUS = 0x2624,
-	UNICODE_ANKH = 0x2625,
-	UNICODE_ORTHODOX_CROSS = 0x2626,
-	UNICODE_CHI_RHO = 0x2627,
-	UNICODE_CROSS_OF_LORRAINE = 0x2628,
-	UNICODE_CROSS_OF_JERUSALEM = 0x2629,
-	UNICODE_STAR_AND_CRESCENT = 0x262A,
-	UNICODE_FARSI_SYMBOL = 0x262B,
-	UNICODE_ADI_SHAKTI = 0x262C,
-	UNICODE_HAMMER_AND_SICKLE = 0x262D,
-	UNICODE_PEACE_SYMBOL = 0x262E,
-	UNICODE_YIN_YANG = 0x262F,
-	UNICODE_TRIGRAM_FOR_HEAVEN = 0x2630,
-	UNICODE_TRIGRAM_FOR_LAKE = 0x2631,
-	UNICODE_TRIGRAM_FOR_FIRE = 0x2632,
-	UNICODE_TRIGRAM_FOR_THUNDER = 0x2633,
-	UNICODE_TRIGRAM_FOR_WIND = 0x2634,
-	UNICODE_TRIGRAM_FOR_WATER = 0x2635,
-	UNICODE_TRIGRAM_FOR_MOUNTAIN = 0x2636,
-	UNICODE_TRIGRAM_FOR_EARTH = 0x2637,
-	UNICODE_WHEEL_OF_DHARMA = 0x2638,
-	UNICODE_WHITE_FROWNING_FACE = 0x2639,
-	UNICODE_WHITE_SMILING_FACE = 0x263A,
-	UNICODE_BLACK_SMILING_FACE = 0x263B,
-	UNICODE_WHITE_SUN_WITH_RAYS = 0x263C,
-	UNICODE_FEMALE_SIGN = 0x2640,
-	UNICODE_EIGHTH_NOTE = 0x266A,
-	UNICODE_BEAMED_EIGHTH_NOTES = 0x266B,
-	UNICODE_MALE_SIGN = 0x2642,
-	UNICODE_BLACK_HEART_SUIT = 0x2665,
-	UNICODE_BLACK_DIAMOND_SUIT = 0x2666,
-	UNICODE_BLACK_CLUB_SUIT = 0x2663,
-	UNICODE_BLACK_SPADE_SUIT = 0x2660,
-
-	UNICODE_CHECK_MARK = 0x2713,
-	UNICODE_HEAVY_CHECK_MARK = 0x2714,
-
-	UNICODE_MULTIPLICATION_X = 0x2715,
-	UNICODE_HEAVY_MULTIPLICATION_X = 0x2716,
-	UNICODE_BALLOT_X = 0x2717,
-	UNICODE_HEAVY_BALLOT_X = 0x2718,
-
-	UNICODE_BLACK_LARGE_SQUARE = 0x2B1B,
-
-	UNICODE_BLACK_VERY_SMALL_SQUARE = 0x2B1D,
-
-	UNICODE_BLACK_SQUARE_CENTERED = 0x2BC0,
-
-	UNICODE_IDEOGRAPHIC_SPACE = 0x3000,	// Fullwidth space
-
-	UNICODE_KATAKANA_LETTER_TU = 0x30C4,
-
-	UNICODE_VARIATION_SELECTOR_1 = 0xFE00,
-	UNICODE_VARIATION_SELECTOR_2 = 0xFE01,
-	UNICODE_VARIATION_SELECTOR_3 = 0xFE02,
-	UNICODE_VARIATION_SELECTOR_4 = 0xFE03,
-	UNICODE_VARIATION_SELECTOR_5 = 0xFE04,
-	UNICODE_VARIATION_SELECTOR_6 = 0xFE05,
-	UNICODE_VARIATION_SELECTOR_7 = 0xFE06,
-	UNICODE_VARIATION_SELECTOR_8 = 0xFE07,
-	UNICODE_VARIATION_SELECTOR_9 = 0xFE08,
-	UNICODE_VARIATION_SELECTOR_10 = 0xFE09,
-	UNICODE_VARIATION_SELECTOR_11 = 0xFE0A,
-	UNICODE_VARIATION_SELECTOR_12 = 0xFE0B,
-	UNICODE_VARIATION_SELECTOR_13 = 0xFE0C,
-	UNICODE_VARIATION_SELECTOR_14 = 0xFE0D,
-	UNICODE_VARIATION_SELECTOR_15 = 0xFE0E,
-	UNICODE_VARIATION_SELECTOR_16 = 0xFE0F,
-	UNICODE_ZERO_WIDTH_NO_BREAK_SPACE = 0xFEFF,
-
-	UNICODE_SMALL_COMMA = 0xFE50,
-	UNICODE_SMALL_IDEOGRAPHIC_COMMA = 0xFE51,
-	UNICODE_SMALL_FULL_STOP = 0xFE52,
-	UNICODE_SMALL_SEMICOLON = 0xFE54,
-	UNICODE_SMALL_COLON = 0xFE55,
-	UNICODE_SMALL_QUESTION_MARK = 0xFE56,
-	UNICODE_SMALL_EXCLAMATION_MARK = 0xFE57,
-	UNICODE_SMALL_EM_DASH = 0xFE58,
-	UNICODE_SMALL_LEFT_PARENTHESIS = 0xFE59,
-	UNICODE_SMALL_RIGHT_PARENTHESIS = 0xFE5A,
-	UNICODE_SMALL_LEFT_CURLY_BRACKET = 0xFE5B,
-	UNICODE_SMALL_RIGHT_CURLY_BRACKET = 0xFE5C,
-	UNICODE_SMALL_LEFT_TORTOISE_SHELL_BRACKET = 0xFE5D,
-	UNICODE_SMALL_RIGHT_TORTOISE_SHELL_BRACKET = 0xFE5E,
-	UNICODE_SMALL_NUMBER_SIGN = 0xFE5F,
-	UNICODE_SMALL_AMPERSAND = 0xFE60,
-	UNICODE_SMALL_ASTERISK = 0xFE61,
-	UNICODE_SMALL_PLUS_SIGN = 0xFE62,
-	UNICODE_SMALL_HYPHEN_MINUS = 0xFE63,
-	UNICODE_SMALL_LESS_THAN_SIGN = 0xFE64,
-	UNICODE_SMALL_GREATER_THAN_SIGN = 0xFE65,
-	UNICODE_SMALL_EQUALS_SIGN = 0xFE66,
-	UNICODE_SMALL_REVERSE_SOLIDUS = 0xFE68,
-	UNICODE_SMALL_DOLLAR_SIGN = 0xFE69,
-	UNICODE_SMALL_PERCENT_SIGN = 0xFE6A,
-	UNICODE_SMALL_COMMERCIAL_AT = 0xFE6B,
-
-	UNICODE_FULLWIDTH_EXCLAMATION_MARK = 0xFF01,
-	UNICODE_FULLWIDTH_TILDE = 0xFF5E,
-	UNICODE_FULLWIDTH_LEFT_WHITE_PARENTHESIS = 0xFF5F,
-	UNICODE_FULLWIDTH_RIGHT_WHITE_PARENTHESIS = 0xFF60,
-
-	UNICODE_HALFWIDTH_BLACK_SQUARE = 0xFFED,
-	UNICODE_HALFWIDTH_WHITE_CIRCLE = 0xFFEE,
-
-	UNICODE_REPLACEMENT_CHARACTER = 0xFFFD
-};
-
-// Blocks
-#define UNICODE_BLOCK_BASIC_LATIN_BEGIN							0x0000
-#define UNICODE_BLOCK_BASIC_LATIN_END							0x007F
-#define UNICODE_BLOCK_HANGUL_JAMO_BEGIN							0x1100
-#define UNICODE_BLOCK_HANGUL_JAMO_END							0x11FF
-#define UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_BEGIN				0x2E80	// Fullwidth
-#define UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_END				0x2EFF	// Fullwidth
-#define UNICODE_BLOCK_KANGXI_RADICALS_BEGIN						0x2F00	// Fullwidth
-#define UNICODE_BLOCK_KANGXI_RADICALS_END						0x2FDF	// Fullwidth
-#define UNICODE_BLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_BEGIN	0x2FF0	// Fullwidth
-#define UNICODE_BLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_END	0x2FFF	// Fullwidth
-#define UNICODE_BLOCK_CJK_SYMBOLS_AND_PUNCTUATION_BEGIN			0x3000	// Fullwidth 0x3000 - 0x3029
-#define UNICODE_BLOCK_CJK_SYMBOLS_AND_PUNCTUATION_END			0x303F  // Fullwidth 0x3030 - 0x303E
-#define UNICODE_BLOCK_HIRAGANA_BEGIN							0x3040	// Fullwidth 0x3040 - 0x3098
-#define UNICODE_BLOCK_HIRAGANA_END								0x309F	// Fullwidth 0x309B - 0x309F
-#define UNICODE_BLOCK_KATAKANA_BEGIN							0x30A0	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_END								0x30FF	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_BEGIN							0x3100	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_END								0x312F	// Fullwidth
-#define UNICODE_BLOCK_HANGUL_COMPATIBILITY_JAMO_BEGIN			0x3130	// Fullwidth
-#define UNICODE_BLOCK_HANGUL_COMPATIBILITY_JAMO_END				0x318F	// Fullwidth
-#define UNICODE_BLOCK_KANBUN_BEGIN								0x3190	// Fullwidth
-#define UNICODE_BLOCK_KANBUN_END								0x319F	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_EXTENDED_BEGIN					0x31A0	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_EXTENDED_END						0x31BF	// Fullwidth
-#define UNICODE_BLOCK_CJK_STROKES_BEGIN							0x31C0	// Fullwidth
-#define UNICODE_BLOCK_CJK_STROKES_END							0x31EF	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_PHONETIC_EXTENSIONS_BEGIN		0x31F0	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_PHONETIC_EXTENSIONS_END			0x31FF	// Fullwidth
-#define UNICIDE_BLOCK_YI_RADICALS_BEGIN							0xA490	// Fullwidth	
-#define UNICIDE_BLOCK_YI_RADICALS_END							0xA4CF	// Fullwidth
-#define UNICIDE_BLOCK_HANGUL_SYLLABLES_BEGIN					0xAC00	// Fullwidth
-#define UNICIDE_BLOCK_HANGUL_SYLLABLES_END						0xD7AF	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_BEGIN		0xF900	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_END			0xFAFF	// Fullwidth
-#define UNICODE_BLOCK_VERTICAL_FORMS_BEGIN						0xFE10	// Fullwidth
-#define UNICODE_BLOCK_VERTICAL_FORMS_END						0xFE1F	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_BEGIN				0xFE30	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_END				0xFE4F	// Fullwidth
-#define UNICODE_BLOCK_SMALL_FORM_VARIANTS_BEGIN					0xFE50	// Fullwidth
-#define UNICODE_BLOCK_SMALL_FORM_VARIANTS_END					0xFE6F
-#define UNICODE_BLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS_BEGIN		0xFF00
-#define UNICODE_BLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS_END			0xFFEF
-
-// Sub-Blocks
-#define UNICODE_SUBBLOCK_FULLWIDTH_HANGUL_BEGIN					0x1100
-#define UNICODE_SUBBLOCK_FULLWIDTH_HANGUL_END					0x115F
-#define UNICODE_SUBBLOCK_FULLWIDTH_CHARS_BEGIN					0xFF01
-#define UNICODE_SUBBLOCK_FULLWIDTH_CHARS_END					0xFF60
-#define UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_BEGIN				0xFFE0
-#define UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_END					0xFFE6
-
-#endif // Don't add anything after this line
diff --git a/xpdev/wrapdll.h b/xpdev/wrapdll.h
deleted file mode 100644
index 74f9ece..0000000
--- a/xpdev/wrapdll.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Defines DLLEXPORT for cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(DLLEXPORT)
-	#undef DLLEXPORT
-#endif
-
-#if defined(_WIN32) && (defined(WRAPPER_IMPORTS) || defined(WRAPPER_EXPORTS))
-	#if defined(WRAPPER_IMPORTS)
-		#define DLLEXPORT	__declspec(dllimport)
-	#else
-		#define DLLEXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 || !_DLL*/
-	#define DLLEXPORT
-#endif
-
diff --git a/xpdev/wraptest.c b/xpdev/wraptest.c
deleted file mode 100644
index cf92bf2..0000000
--- a/xpdev/wraptest.c
+++ /dev/null
@@ -1,418 +0,0 @@
-/* wraptest.c */
-
-/* Verification of cross-platform development wrappers */
-
-/* $Id: wraptest.c,v 1.45 2019/07/24 04:15:54 rswindell Exp $ */
-
-#include <time.h>	/* ctime */
-
-#include "genwrap.h"
-#include "conwrap.h"
-#include "dirwrap.h"
-#include "filewrap.h"
-#include "sockwrap.h"
-#include "threadwrap.h"
-#include "xpbeep.h"
-#include "xpendian.h"
-
-#define LOCK_FNAME	"test.fil"
-#define LOCK_OFFSET	0
-#define LOCK_LEN	4
-
-static void getkey(void);
-static void sem_test_thread(void* arg);
-static void sem_test_thread_block(void* arg);
-static void sleep_test_thread(void* arg);
-static void sopen_test_thread(void* arg);
-static void sopen_child_thread(void* arg);
-static void lock_test_thread(void* arg);
-
-
-typedef struct {
-	sem_t parent_sem;
-	sem_t child_sem;
-} thread_data_t;
-
-int main()
-{
-	char	str[128];
-	char	compiler[128];
-	char	fpath[MAX_PATH+1];
-	char*	path = ".";
-	char*	glob_pattern = "*wrap*";
-	int		i;
-	int		ch;
-	uint	u;
-	time_t	t;
-	glob_t	g;
-	DIR*	dir;
-	DIRENT*	dirent;
-	thread_data_t thread_data;
-	int	fd;
-	int	fd2;
-	int	canrelock=0;
-	clock_t	ticks;
-
-	/* Show platform details */
-	DESCRIBE_COMPILER(compiler);
-	printf("%-15s: %s\n","Platform",PLATFORM_DESC);
-	printf("%-15s: %s\n","Version",os_version(str));
-	printf("%-15s: %s\n","Compiler"	,compiler);
-	printf("%-15s: %ld\n","Random Number",xp_random(1000));
-
-	for(i=0;i<3;i++) {
-		if(_beginthread(
-			  sopen_child_thread	/* entry point */
-			 ,0  					/* stack size (0=auto) */
-			 ,(void*)i				/* data */
-			 )==(unsigned long)-1)
-			printf("_beginthread failed\n");
-		else
-			SLEEP(1);
-	}
-	printf("Waiting for all sopen_child_threads to close...\n");
-	SLEEP(5000);	/* wait for all threads to quit */
-
-	/* Exclusive sopen test */
-	printf("\nsopen() test\n");
-	if((fd=sopen(LOCK_FNAME,O_RDWR|O_CREAT,SH_DENYRW,S_IREAD|S_IWRITE))==-1) {
-		perror(LOCK_FNAME);
-		return(errno);
-	}
-	printf("%s is opened with an exclusive (read/write) lock\n",LOCK_FNAME);
-	getkey();
-	if(_beginthread(
-		  sopen_test_thread	/* entry point */
-		 ,0  				/* stack size (0=auto) */
-		 ,NULL				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else
-		SLEEP(1000);
-	close(fd);
-
-	/* sopen()/lock test */
-	printf("\nlock() test\n");
-	if((fd=sopen(LOCK_FNAME,O_RDWR|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE))==-1) {
-		perror(LOCK_FNAME);
-		return(errno);
-	}
-	write(fd,"lock testing\n",LOCK_LEN);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)
-		printf("lock() succeeds\n");
-	else
-		printf("!FAILURE: lock() non-functional (or file already locked)\n");
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)  {
-		printf("!FAILURE: Subsequent lock of region was allowed (will skip some tests)\n");
-		canrelock=1;
-	}
-		
-	if(_beginthread(
-		  lock_test_thread	/* entry point */
-		 ,0  				/* stack size (0=auto) */
-		 ,NULL				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else
-		SLEEP(1000);
-	if(canrelock)
-		printf("?? Skipping some tests due to inability to detect own locks\n");
-	else  {
-		if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-			printf("Locks in first thread survive open()/close() in other thread\n");
-		else
-			printf("!FAILURE: lock() in first thread lost by open()/close() in other thread\n");
-		if(lock(fd,LOCK_OFFSET+LOCK_LEN+1,LOCK_LEN))
-			printf("!FAILURE: file locking\n");
-		else
-			printf("Record locking\n");
-	}
-	if((fd2=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))==-1) {
-		printf("Cannot reopen SH_DENYRW while lock is held\n");
-		close(fd2);
-	}
-	else  {
-		printf("!FAILURE: can reopen SH_DENYRW while lock is held\n");
-	}
-	if(unlock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("!FAILURE: unlock() non-functional\n");
-	if(lock(fd,LOCK_OFFSET+LOCK_LEN+1,LOCK_LEN))
-		printf("Cannot re-lock after non-overlapping unlock()\n");
-	else
-		printf("!FAILURE: can re-lock after non-overlappping unlock()\n");
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("!FAILURE: cannot re-lock unlocked area\n");
-	close(fd);
-
-	/* getch test */
-	printf("\ngetch() test (ESC to continue)\n");
-	do {
-		ch=getch();
-		printf("getch() returned %d\n",ch);
-	} while(ch!=ESC);
-
-	/* kbhit test */
-	printf("\nkbhit() test (any key to continue)\n");
-	while(!kbhit()) {
-		printf(".");
-		fflush(stdout);
-		SLEEP(500);
-	}
-	getch();	/* remove character from keyboard buffer */
-
-	/* BEEP test */
-	printf("\nBEEP() test\n");
-	getkey();
-	for(i=750;i>250;i-=5)
-		BEEP(i,15);
-	for(;i<1000;i+=5)
-		BEEP(i,15);
-
-	/* SLEEP test */
-	printf("\nSLEEP(5 second) test\n");
-	getkey();
-	t=time(NULL);
-	printf("sleeping... ");
-	fflush(stdout);
-	ticks=msclock();
-	SLEEP(5000);
-	printf("slept %ld seconds (%ld according to msclock)\n",time(NULL)-t,(msclock()-ticks)/MSCLOCKS_PER_SEC);
-
-	/* Thread SLEEP test */
-	printf("\nThread SLEEP(5 second) test\n");
-	getkey();
-	i=0;
-	if(_beginthread(
-		  sleep_test_thread	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&i				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		SLEEP(1);			/* yield to child thread */
-		while(i==0) {
-			printf(".");
-			fflush(stdout);
-			SLEEP(1000);
-		}
-	}
-
-	/* glob test */
-	printf("\nglob(%s) test\n",glob_pattern);
-	getkey();
-	i=glob(glob_pattern,GLOB_MARK,NULL,&g);
-	if(i==0) {
-		for(u=0;u<g.gl_pathc;u++)
-			printf("%s\n",g.gl_pathv[u]);
-		globfree(&g);
-	} else
-		printf("glob(%s) returned %d\n",glob_pattern,i);
-
-	/* opendir (and other directory functions) test */
-	printf("\nopendir(%s) test\n",path);
-	getkey();
-	printf("\nDirectory of %s\n\n",FULLPATH(fpath,path,sizeof(fpath)));
-	dir=opendir(path);
-	while(dir!=NULL && (dirent=readdir(dir))!=NULL) {
-		t=fdate(dirent->d_name);
-		printf("%.24s %10lu  %06o  %s%c\n"
-			,ctime(&t)
-			,flength(dirent->d_name)
-			,getfattr(dirent->d_name)
-			,dirent->d_name
-			,isdir(dirent->d_name) ? '/':0
-			);
-	}
-	if(dir!=NULL)
-		closedir(dir);
-	printf("\nFree disk space: %lu kbytes\n",getfreediskspace(path,1024));
-
-	/* Thread (and inter-process communication) test */
-	printf("\nSemaphore test\n");
-	getkey();
-	if(sem_init(&thread_data.parent_sem
-		,0 /* shared between processes */
-		,0 /* initial count */
-		)) {
-		printf("sem_init failed\n");
-	}
-	if(sem_init(&thread_data.child_sem
-		,0	/* shared between processes */
-		,0	/* initial count */
-		)) {
-		printf("sem_init failed\n");
-	}
-	if(_beginthread(
-		  sem_test_thread	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&thread_data		/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		sem_wait(&thread_data.child_sem);	/* wait for thread to begin */
-		for(i=0;i<10;i++) {
-			printf("<parent>");
-			sem_post(&thread_data.parent_sem);
-			sem_wait(&thread_data.child_sem);
-		}
-		sem_wait(&thread_data.child_sem);	/* wait for thread to end */
-	}
-	sem_destroy(&thread_data.parent_sem);
-	sem_destroy(&thread_data.child_sem);
-
-	printf("\nSemaphore blocking test\n");
-	getkey();
-	sem_init(&thread_data.parent_sem
-		,0 /* shared between processes */
-		,0 /* initial count */
-		);
-	sem_init(&thread_data.child_sem
-		,0	/* shared between processes */
-		,0	/* initial count */
-		);
-	if(_beginthread(
-		  sem_test_thread_block	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&thread_data		/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		sem_wait(&thread_data.child_sem);	/* wait for thread to begin */
-		for(i=0;i<10;i++) {
-			printf("<parent>");
-			SLEEP(5000);
-			sem_post(&thread_data.parent_sem);
-			sem_wait(&thread_data.child_sem);
-		}
-		sem_wait(&thread_data.child_sem);	/* wait for thread to end */
-	}
-	printf("\nsem_trywait_block test...");
-	t=time(NULL);
-	sem_trywait_block(&thread_data.parent_sem,5000);
-	printf("\ntimed-out after %ld seconds (should be 5 seconds)\n",time(NULL)-t);
-	sem_destroy(&thread_data.parent_sem);
-	sem_destroy(&thread_data.child_sem);
-	printf("\nendian check...");
-	memcpy(&i,"\x01\x02\x03\x04",4);
-	if(LE_LONG(i)==67305985) {
-		printf("OK!\n");
-	}
-	else {
-		printf("FAILED!\n");
-	}
-	return 0;
-}
-
-static void getkey(void)
-{
-	printf("Hit any key to continue...");
-	fflush(stdout);
-	getch();
-	printf("\r%30s\r","");
-	fflush(stdout);
-}
-
-static void sleep_test_thread(void* arg)
-{
-	time_t t=time(NULL);
-	printf("child sleeping");
-	fflush(stdout);
-	SLEEP(5000);
-	printf("\nchild awake after %ld seconds\n",time(NULL)-t);
-
-	*(int*)arg=1;	/* signal parent: we're done */
-}
-
-static void sem_test_thread(void* arg)
-{
-	ulong i;
-	thread_data_t* data = (thread_data_t*)arg;
-
-	printf("sem_test_thread entry\n");
-	sem_post(&data->child_sem);		/* signal parent: we've started */
-
-	for(i=0;i<10;i++) {
-		sem_wait(&data->parent_sem);
-		printf(" <child>\n");
-		sem_post(&data->child_sem);
-	}
-
-	printf("sem_test_thread exit\n");
-	sem_post(&data->child_sem);		/* signal parent: we're done */
-}
-
-static void sem_test_thread_block(void* arg)
-{
-	ulong i;
-	thread_data_t* data = (thread_data_t*)arg;
-
-	printf("sem_test_thread_block entry\n");
-	sem_post(&data->child_sem);		/* signal parent: we've started */
-
-	for(i=0;i<10;i++) {
-		if(sem_trywait_block(&data->parent_sem,500))  {
-			printf(" sem_trywait_block() timed out");
-			sem_wait(&data->parent_sem);
-		}
-		else  {
-			printf(" FAILURE: Didn't block");
-		}
-		printf(" <child>\n");
-		sem_post(&data->child_sem);
-	}
-
-	printf("sem_test_thread_block exit\n");
-	sem_post(&data->child_sem);		/* signal parent: we're done */
-}
-
-static void lock_test_thread(void* arg)
-{
-	int	fd;
-
-	fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYNO);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)
-		printf("!FAILURE: Lock not effective between threads\n");
-	else
-		printf("Locks effective between threads\n");
-	close(fd);
-	fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYNO);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("Locks survive file open()/close() in other thread\n");
-	else
-		printf("!FAILURE: Locks do not survive file open()/close() in other thread\n");
-	close(fd);
-}
-
-static void sopen_test_thread(void* arg)
-{
-	int fd;
-
-	if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYWR))!=-1)
-		printf("!FAILURE: allowed to reopen with SH_DENYWR\n");
-	else if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))!=-1)
-		printf("!FAILURE: allowed to reopen with SH_DENYRW\n");
-	else
-		printf("reopen disallowed\n");
-
-	if(fd!=-1)
-		close(fd);
-}
-
-static void sopen_child_thread(void* arg)
-{
-	int fd;
-
-	printf("sopen_child_thread: %d begin\n",(int)arg);
-	if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))!=-1) {
-		if(arg)
-			printf("!FAILURE: was able to reopen in child thread\n");
-		else {
-			SLEEP(5000);
-		}
-		close(fd);
-	} else if(arg==0)
-		perror(LOCK_FNAME);
-	printf("sopen_child_thread: %d end\n",(int)arg);
-}
-
-/* End of wraptest.c */
diff --git a/xpdev/xp_dl.c b/xpdev/xp_dl.c
deleted file mode 100644
index 11527c6..0000000
--- a/xpdev/xp_dl.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <stdio.h>
-#include "dirwrap.h"
-#include "xp_dl.h"
-
-#ifndef STATIC_LINK
-#if defined(__unix__)
-
-DLLEXPORT dll_handle xp_dlopen(const char **names, int mode, int major)
-{
-	const char	*name;
-	char		fname[MAX_PATH+1];
-	dll_handle	ret=NULL;
-	int			i;
-
-	for(; *names && (*names)[0]; names++) {
-		name=*names;
-		/* Try for version match */
-		sprintf(fname, "lib%s.so.%d", name, major);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match */
-		sprintf(fname, "lib%s.so", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match without the prefix */
-		sprintf(fname, "%s.so", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try all previous major versions */
-		for(i=major-1; i>=0; i--) {
-			sprintf(fname, "lib%s.so.%d", name, i);
-			if((ret=dlopen(fname, mode))!=NULL)
-				return(ret);
-		}
-
-#if defined(__APPLE__) && defined(__MACH__)
-		/* Try for version match */
-		sprintf(fname, "lib%s.%d.dylib", name, major);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match */
-		sprintf(fname, "lib%s.dylib", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try all previous major versions */
-		for(i=major-1; i>=0; i--) {
-			sprintf(fname, "lib%s.%d.dylib", name, i);
-			if((ret=dlopen(fname, mode))!=NULL)
-				return(ret);
-		}
-#endif	/* OS X */
-	}
-
-	return(NULL);
-}
-#elif defined(_WIN32)
-DLLEXPORT dll_handle xp_dlopen(const char **names, int mode, int major)
-{
-	char		fname[MAX_PATH+1];
-	dll_handle	ret=NULL;
-
-	for(; *names && (*names)[0]; names++) {
-		sprintf(fname, "%s.dll", *names);
-		if((ret=LoadLibrary(fname))!=NULL)
-			return(ret);
-	}
-	return(NULL);
-}
-#endif	/* __unix__,_WIN32 */
-
-#endif	/* STATIC_LINK */
diff --git a/xpdev/xp_dl.h b/xpdev/xp_dl.h
deleted file mode 100644
index 70779a6..0000000
--- a/xpdev/xp_dl.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _XP_DL_H_
-#define _XP_DL_H_
-
-#include "wrapdll.h"
-
-#ifndef STATIC_LINK
-#if defined(__unix__)
-	#include <dlfcn.h>
-
-	typedef void * dll_handle;
-	DLLEXPORT dll_handle xp_dlopen(const char **name, int mode, int major);
-	#define xp_dlsym(handle, name)				dlsym(handle, #name)
-	#define xp_dlclose(handle)					dlclose(handle)
-#elif defined(_WIN32)
-	#include <windows.h>
-
-	typedef HMODULE dll_handle;
-	DLLEXPORT dll_handle xp_dlopen(const char **name, int mode, int major);
-	#define xp_dlsym(handle, name)				((void *)GetProcAddress(handle, #name))
-	#define xp_dlclose(handle)					(FreeLibrary(handle)?0:-1)
-
-	/* Unused values for *nix compatability */
-	enum {
-		 RTLD_LAZY
-		,RTLD_NOW
-		,RTLD_GLOBAL
-		,RTLD_LOCAL
-		,RTLD_TRACE
-	};
-#endif
-#else
-	typedef void* dll_handle;
-
-	#define xp_dlopen(name, mode, major)	(name)
-	#define xp_dlsym(handle, name)			(name)
-	#define xp_dlclose(handle)				(0)
-#endif
-
-#endif
diff --git a/xpdev/xp_syslog.h b/xpdev/xp_syslog.h
deleted file mode 100644
index 7d9cab5..0000000
--- a/xpdev/xp_syslog.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef XP_SYSLOG_H_
-#define XP_SYSLOG_H_
-#include <stdarg.h>
-
-
-/* priorities */
-#define LOG_EMERG		0		/* system is unusable */
-#define LOG_ALERT		1		/* action must be taken immediately */
-#define LOG_CRIT		2		/* critical conditions */
-#define LOG_ERR			3		/* error conditions */
-#define LOG_WARNING		4		/* warning conditions */
-#define LOG_NOTICE		5		/* normal but significant condition */
-#define LOG_INFO		6		/* informational */
-#define LOG_DEBUG		7		/* debug-level messages */
-
-#define LOG_KERN		(0<<3)	/* kernel messages */
-#define LOG_USER		(1<<3)	/* random user-level messages */
-#define LOG_MAIL		(2<<3)	/* mail system */
-#define LOG_DAEMON		(3<<3)	/* system daemons */
-#define LOG_AUTH		(4<<3)	/* authorization messages */
-#define LOG_SYSLOG		(5<<3)	/* messages generated internally by syslogd */
-#define LOG_LPR			(6<<3)	/* line printer subsystem */
-#define LOG_NEWS		(7<<3)	/* network news subsystem */
-#define LOG_UUCP		(8<<3)	/* UUCP subsystem */
-#define LOG_CRON		(9<<3)	/* clock daemon */
-#define LOG_AUTHPRIV	(10<<3)	/* authorization messages (private) */
-								/* Facility #10 clashes in DEC UNIX, where */
-								/* it's defined as LOG_MEGASAFE for AdvFS  */
-								/* event logging.                          */
-#define LOG_FTP			(11<<3)	/* ftp daemon */
-#define LOG_NTP			(12<<3)	/* NTP subsystem */
-#define LOG_SECURITY	(13<<3)	/* security subsystems (firewalling, etc.) */
-#define LOG_CONSOLE		(14<<3)	/* /dev/console output */
-
-/* facility codes */
-#define LOG_LOCAL0		(16<<3)	/* reserved for local use */
-#define LOG_LOCAL1		(17<<3)	/* reserved for local use */
-#define LOG_LOCAL2		(18<<3)	/* reserved for local use */
-#define LOG_LOCAL3		(19<<3)	/* reserved for local use */
-#define LOG_LOCAL4		(20<<3)	/* reserved for local use */
-#define LOG_LOCAL5		(21<<3)	/* reserved for local use */
-#define LOG_LOCAL6		(22<<3)	/* reserved for local use */
-#define LOG_LOCAL7		(23<<3)	/* reserved for local use */
-
-/* Masks to extract parts */
-#define LOG_PRIMASK     0x07    /* mask to extract priority part */
-#define LOG_FACMASK     0x03f8  /* mask to extract facility part */
-
-/* Logopts for xp_openlog() */
-#define LOG_CONS		0x02	/* log on the console if errors in sending */
-#define LOG_PERROR		0x20	/* log to stderr as well */
-
-/* Port number */
-#define SYSLOG_PORT 514
-
-void xp_set_loghost(const char *hostname);
-void xp_openlog(const char *ident, int logopt, int facility);
-void xp_vsyslog(int priority, const char *message, va_list va);
-void xp_syslog(int priority, const char *message, ...);
-
-#endif
diff --git a/xpdev/xpbeep.c b/xpdev/xpbeep.c
deleted file mode 100644
index 4e8e6ce..0000000
--- a/xpdev/xpbeep.c
+++ /dev/null
@@ -1,1235 +0,0 @@
-/* $Id: xpbeep.c,v 1.113 2020/05/15 01:12:10 deuce Exp $ */
-
-/* TODO: USE PORTAUDIO! */
-
-/* standard headers */
-#include <math.h>
-#include <stdlib.h>
-#include "xp_dl.h"
-
-#if defined(_WIN32)
-	#include <windows.h>
-	#include <mmsystem.h>
-#elif defined(__unix__)
-	#include <fcntl.h>
-	#include <sys/ioctl.h>
-	#if SOUNDCARD_H_IN==1
-		#include <sys/soundcard.h>
-	#elif SOUNDCARD_H_IN==2
-		#include <soundcard.h>
-	#elif SOUNDCARD_H_IN==3
-		#include <linux/soundcard.h>
-	#else
-		#ifndef USE_ALSA_SOUND
-			#warning Cannot find soundcard.h
-		#endif
-	#endif
-	#ifdef USE_ALSA_SOUND
-		#include <dlfcn.h>
-		#include <alsa/asoundlib.h>
-	#endif
-	/* KIOCSOUND */
-	#if defined(__FreeBSD__)
-		#include <sys/kbio.h>
-	#elif defined(__linux__)
-		#include <sys/kd.h>	
-	#elif defined(__solaris__)
-		#include <sys/kbio.h>
-		#include <sys/kbd.h>
-	#endif
-	#if (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H)
-		#include <machine/spkr.h>
-	#elif defined(__FreeBSD__)
-		#if defined(HAS_DEV_SPEAKER_SPEAKER_H)
-			#include <dev/speaker/speaker.h>
-		#elif defined(HAS_MACHINE_SPEAKER_H)
-			#include <machine/speaker.h>
-		#endif
-	#endif
-#endif
-
-/* xpdev headers */
-#ifdef WITH_PORTAUDIO
-#include <portaudio.h>
-#endif
-
-#ifdef WITH_PULSEAUDIO
-#include <pulse/simple.h>
-#endif
-
-#ifdef WITH_SDL_AUDIO
-#include "sdlfuncs.h"
-#endif
-
-#include "genwrap.h"
-#include "xpbeep.h"
-
-#define S_RATE	22050
-
-#ifdef XPDEV_THREAD_SAFE
-#include "threadwrap.h"
-
-static BOOL sample_thread_running=FALSE;
-static sem_t sample_pending_sem;
-static sem_t sample_complete_sem;
-static pthread_mutex_t sample_mutex;
-static pthread_mutex_t handle_mutex;
-static const unsigned char *sample_buffer;
-static int samples_posted;
-static size_t sample_size;
-
-#endif
-
-static BOOL sound_device_open_failed=FALSE;
-#ifdef USE_ALSA_SOUND
-static BOOL alsa_device_open_failed=FALSE;
-#endif
-#ifdef WITH_SDL_AUDIO
-static BOOL sdl_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PORTAUDIO
-static BOOL portaudio_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PULSEAUDIO
-static BOOL pulseaudio_device_open_failed=FALSE;
-#endif
-
-enum {
-	 SOUND_DEVICE_CLOSED
-	,SOUND_DEVICE_WIN32
-	,SOUND_DEVICE_ALSA
-	,SOUND_DEVICE_OSS
-	,SOUND_DEVICE_SDL
-	,SOUND_DEVICE_PORTAUDIO
-	,SOUND_DEVICE_PULSEAUDIO
-};
-
-static int handle_type=SOUND_DEVICE_CLOSED;
-static int handle_rc;
-
-#ifdef WITH_PULSEAUDIO
-struct pulseaudio_api_struct {
-	pa_simple* (*simple_new)(const char * server, const char * name, pa_stream_direction_t dir, const char * dev, const char * stream_name, const pa_sample_spec * ss, const pa_channel_map * map, const pa_buffer_attr * attr, int * error);
-	int (*simple_write)(pa_simple * s, const void * data, size_t bytes, int * error);
-	int (*simple_drain)(pa_simple * s, int * error);
-	void (*simple_free)(pa_simple * s);
-};
-struct pulseaudio_api_struct *pu_api = NULL;
-static pa_simple *pu_handle;
-static int				pulseaudio_initialized=FALSE;
-#endif
-
-#ifdef WITH_PORTAUDIO
-static PaStream			*portaudio_stream;
-static int				portaudio_buf_len=0;
-static int				portaudio_buf_pos=0;
-static const unsigned char	*pawave=NULL;
-static int				portaudio_initialized=FALSE;
-#ifndef PaStream	// Detect version... defined for 1.8 and not for 1.9
-#define PortAudioCallback	void
-#define PaTimestamp		PaTime
-#endif
-struct portaudio_api_struct {
-	PaError (*init)( void );
-	PaError (*open)( PaStream** stream,
-                              int numInputChannels,
-                              int numOutputChannels,
-                              PaSampleFormat sampleFormat,
-                              double sampleRate,
-                              unsigned long framesPerBuffer,
-                              unsigned long numberOfBuffers,
-                              PortAudioCallback *callback,
-                              void *userData );
-	PaError (*close)( PaStream* );
-	PaError (*start)( PaStream *stream );
-	PaError (*stop)( PaStream *stream );
-	PaError (*active)( PaStream *stream );
-	PaError (*write)( PaStream *stream, const void *buf, unsigned long frames );
-	int	(*version)( void );
-	int	ver;
-};
-struct portaudio_api_struct *pa_api=NULL;
-#endif
-
-#ifdef WITH_SDL_AUDIO
-static SDL_AudioSpec	spec;
-static int				sdl_audio_buf_len=0;
-static int				sdl_audio_buf_pos=0;
-static const unsigned char	*swave;
-static SDL_sem			*sdlToneDone;
-#endif
-
-#ifdef _WIN32
-static	HWAVEOUT		waveOut;
-static	WAVEHDR			wh[2];
-static	int				curr_wh;
-#endif
-
-#ifdef USE_ALSA_SOUND
-static snd_pcm_t *playback_handle;
-static snd_pcm_hw_params_t *hw_params=NULL;
-#endif
-
-#ifdef AFMT_U8
-static	int dsp;
-#endif
-
-#define WAVE_PI	3.14159265358979323846
-#define WAVE_TPI 6.28318530717958647692
-
-#ifdef USE_ALSA_SOUND
-struct alsa_api_struct {
-	int		(*snd_pcm_open)
-				(snd_pcm_t **pcm, const char *name, snd_pcm_stream_t stream, int mode);
-	int		(*snd_pcm_hw_params_malloc)
-				(snd_pcm_hw_params_t **ptr);
-	int		(*snd_pcm_hw_params_any)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
-	int		(*snd_pcm_hw_params_set_access)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access);
-	int		(*snd_pcm_hw_params_set_format)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val);
-	int		(*snd_pcm_hw_params_set_rate_near)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir);
-	int		(*snd_pcm_hw_params_set_channels)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val);
-	int		(*snd_pcm_hw_params)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
-	int		(*snd_pcm_prepare)
-				(snd_pcm_t *pcm);
-	void	(*snd_pcm_hw_params_free)
-				(snd_pcm_hw_params_t *obj);
-	int 	(*snd_pcm_close)
-				(snd_pcm_t *pcm);
-	snd_pcm_sframes_t (*snd_pcm_writei)
-				(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size);
-	int		(*snd_pcm_drain)
-				(snd_pcm_t *pcm);
-};
-
-struct alsa_api_struct *alsa_api=NULL;
-#endif
-
-#ifdef XPDEV_THREAD_SAFE
-static void init_sample(void);
-static BOOL xp_play_sample_locked(const unsigned char *sample, size_t size, BOOL background);
-#endif
-
-/********************************************************************************/
-/* Calculate and generate a sound wave pattern (thanks to Deuce!)				*/
-/********************************************************************************/
-void xptone_makewave(double freq, unsigned char *wave, int samples, enum WAVE_SHAPE shape)
-{
-	int	i;
-	int midpoint;
-	double inc;
-	double pos;
-	BOOL endhigh;
-	int crossings;
-	int numcross=0;
-
-	if(freq==0) {
-		memset(wave, 128, samples);
-	}
-	else {
-		midpoint=samples/2;
-		inc=8.0*atan(1.0);
-		inc *= ((double)freq / (double)S_RATE);
-
-		for(i=0;i<samples;i++) {
-			pos=(inc*(double)i);
-			pos -= (int)(pos/WAVE_TPI)*WAVE_TPI;
-			switch(shape) {
-				case WAVE_SHAPE_SINE:
-					wave[i]=(sin (pos))*127+128;
-					break;
-				case WAVE_SHAPE_SINE_HARM:
-					wave[i]=(sin (pos))*64+128;
-					wave[i]=(sin ((inc*2)*(double)i))*24;
-					wave[i]=(sin ((inc*3)*(double)i))*16;
-					break;
-				case WAVE_SHAPE_SAWTOOTH:
-					wave[i]=(WAVE_TPI-pos)*40.5;
-					break;
-				case WAVE_SHAPE_SQUARE:
-					wave[i]=(pos<WAVE_PI)?255:0;
-					break;
-				case WAVE_SHAPE_SINE_SAW:
-					wave[i]=(((sin (pos))*127+128)+((WAVE_TPI-pos)*40.5))/2;
-					break;
-				case WAVE_SHAPE_SINE_SAW_CHORD:
-					wave[i]=(((sin (pos))*64+128)+((WAVE_TPI-pos)*6.2))/2;
-					wave[i]+=(sin ((inc/2)*(double)i))*24;
-					wave[i]+=(sin ((inc/3)*(double)i))*16;
-					break;
-				case WAVE_SHAPE_SINE_SAW_HARM:
-					wave[i]=(((sin (pos))*64+128)+((WAVE_TPI-pos)*6.2))/2;
-					wave[i]+=(sin ((inc*2)*(double)i))*24;
-					wave[i]+=(sin ((inc*3)*(double)i))*16;
-					break;
-			}
-		}
-
-		/* Now we have a "perfect" wave... 
-		 * we must clean it up now to avoid click/pop
-		 */
-		if(wave[samples-1]>128)
-			endhigh=TRUE;
-		else
-			endhigh=FALSE;
-		/* Completely remove the last wave fragment */
-		i=samples-1;
-		if(wave[i]!=128) {
-			for(;i>midpoint;i--) {
-				if(endhigh && wave[i]<128)
-					break;
-				if(!endhigh && wave[i]>128)
-					break;
-				wave[i]=128;
-			}
-		}
-
-		/* Number of crossings should be on the order of 5ms worth... according to the ARRL */
-		/* We're ASSuming that a full wave crosses twice */
-		numcross=freq/100;
-		if(numcross) {
-			/* Ramp up and down by one third for three corssings of 128 */
-			crossings=0;
-			for(i=0; i<(samples-1); i++) {
-				if(((wave[i]<128 && wave[i+1]>=128) || (wave[i]>128 && wave[i+1]<=128)) && i>2) {
-					crossings++;
-					if(crossings>=numcross)
-						break;
-				}
-				wave[i]=128+((wave[i]-128)/((numcross-crossings)*(numcross-crossings)));
-			}
-			crossings=0;
-			for(i=samples-1; i>0; i--) {
-				if(((wave[i]<128 && wave[i-1]>=128) || (wave[i]>128 && wave[i-1]<=128)) && i>2) {
-					crossings++;
-					if(crossings>=numcross)
-						break;
-				}
-				wave[i]=128+((wave[i]-128)/((numcross-crossings)*(numcross-crossings)));
-			}
-		}
-	}
-}
-
-#ifdef WITH_PORTAUDIO
-/*
- * Used by v18 library, not v19!
- */
-static int portaudio_callback(void *inputBuffer
-				, void *outputBuffer
-				, unsigned long framesPerBuffer
-				, const PaTimestamp outTime
-				, void *userData )
-{
-	int copylen=framesPerBuffer;
-	int maxlen=portaudio_buf_len-portaudio_buf_pos;
-
-	if(copylen>maxlen) {
-		copylen=maxlen;
-		memset(((char *)outputBuffer)+copylen, 128, framesPerBuffer-copylen);
-	}
-	if(copylen) {
-		memcpy(outputBuffer, (*((unsigned char **)userData))+portaudio_buf_pos, copylen);
-		portaudio_buf_pos+=copylen;
-	}
-	if(portaudio_buf_pos >= portaudio_buf_len)
-		return(1);
-	return(0);
-}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-void sdl_fillbuf(void *userdata, Uint8 *stream, int len)
-{
-	int	copylen=len;
-	int maxlen=sdl_audio_buf_len-sdl_audio_buf_pos;
-
-	/* Copy in the current buffer */
-	if(copylen>maxlen)
-		copylen=maxlen;
-	/* Fill with silence */
-	if(len>copylen)
-		memset(stream+copylen, spec.silence, len-copylen);
-	if(copylen) {
-		memcpy(stream, swave+sdl_audio_buf_pos, copylen);
-		sdl_audio_buf_pos+=copylen;
-		/* If we're done, post the semaphore */
-		if(sdl_audio_buf_pos>=sdl_audio_buf_len) {
-			xpbeep_sdl.SemPost(sdlToneDone);
-			sdl_audio_buf_len=0;
-			sdl_audio_buf_pos=0;
-			free((void *)swave);
-		}
-	}
-}
-#endif
-
-#ifdef XPDEV_THREAD_SAFE
-pthread_once_t sample_initialized_pto = PTHREAD_ONCE_INIT;
-#endif
-static BOOL
-xptone_open_locked(void)
-{
-#ifdef _WIN32
-	WAVEFORMATEX	w;
-#endif
-
-#ifdef AFMT_U8
-	int format=AFMT_U8;
-	int channels=1;
-	int	rate=S_RATE;
-	int	fragsize=0x7fff0004;
-#endif
-
-	/* Already open */
-
-	if(handle_type!=SOUND_DEVICE_CLOSED) {
-		handle_rc++;
-		return(TRUE);
-	}
-
-#ifdef WITH_PULSEAUDIO
-	if(!pulseaudio_device_open_failed) {
-		if(pu_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"pulse-simple",NULL};
-			if(((pu_api=(struct pulseaudio_api_struct *)malloc(sizeof(struct pulseaudio_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,0))==NULL)
-					|| ((pu_api->simple_new=xp_dlsym(dl,pa_simple_new))==NULL)
-					|| ((pu_api->simple_write=xp_dlsym(dl,pa_simple_write))==NULL)
-					|| ((pu_api->simple_drain=xp_dlsym(dl,pa_simple_drain))==NULL)
-					|| ((pu_api->simple_free=xp_dlsym(dl,pa_simple_free))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(pu_api);
-				pu_api=NULL;
-			}
-			if(pu_api==NULL) {
-				pulseaudio_device_open_failed=TRUE;
-			}
-		}
-		if(pu_api != NULL) {
-			handle_type=SOUND_DEVICE_PULSEAUDIO;
-			handle_rc++;
-#ifdef XPDEV_THREAD_SAFE
-			pthread_mutex_unlock(&handle_mutex);
-			pthread_mutex_lock(&sample_mutex);
-			if (samples_posted == 0)
-				xp_play_sample_locked((unsigned char *)"\x80", 1, FALSE);
-			pthread_mutex_unlock(&sample_mutex);
-#else
-			xptone(0, 1, WAVE_SHAPE_SQUARE);
-#endif
-			if (pulseaudio_device_open_failed) {
-				handle_type = SOUND_DEVICE_CLOSED;
-			}
-			else {
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(!portaudio_device_open_failed) {
-		if(pa_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"portaudio",NULL};
-			if(((pa_api=(struct portaudio_api_struct *)malloc(sizeof(struct portaudio_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,0))==NULL)
-					|| ((pa_api->init=xp_dlsym(dl,Pa_Initialize))==NULL)
-					|| ((pa_api->open=xp_dlsym(dl,Pa_OpenDefaultStream))==NULL)
-					|| ((pa_api->close=xp_dlsym(dl,Pa_CloseStream))==NULL)
-					|| ((pa_api->start=xp_dlsym(dl,Pa_StartStream))==NULL)
-					||
-						(
-							((pa_api->active=xp_dlsym(dl,Pa_StreamActive))==NULL)
-							&& ((pa_api->active=xp_dlsym(dl,Pa_IsStreamActive))==NULL)
-						)
-					|| ((pa_api->stop=xp_dlsym(dl,Pa_StopStream))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(pa_api);
-				pa_api=NULL;
-			}
-			else {
-				/* Get version and other optional pointers */
-				pa_api->ver=1800;
-				if((pa_api->version=xp_dlsym(dl, Pa_GetVersion))!=NULL) {
-					pa_api->ver=pa_api->version();
-					if(pa_api->ver >= 1899) {
-						if((pa_api->write=xp_dlsym(dl, Pa_WriteStream))==NULL) {
-							xp_dlclose(dl);
-							free(pa_api);
-							pa_api=NULL;
-						}
-					}
-				}
-			}
-			if(pa_api==NULL) {
-				portaudio_device_open_failed=TRUE;
-			}
-		}
-		if(pa_api != NULL) {
-			if(!portaudio_initialized) {
-				if(pa_api->init() != paNoError)
-					portaudio_device_open_failed=TRUE;
-				else
-					portaudio_initialized=TRUE;
-			}
-			if(portaudio_initialized) {
-				if(pa_api->open(&portaudio_stream
-						, 0	/* No input */
-						, 1	/* Mono output */
-						, paUInt8
-						, S_RATE
-						, 256
-						, 0
-						, pa_api->ver >= 1899 ? NULL : portaudio_callback
-						, &pawave) != paNoError)
-					portaudio_device_open_failed=TRUE;
-				else {
-					handle_type=SOUND_DEVICE_PORTAUDIO;
-					handle_rc++;
-					return(TRUE);
-				}
-			}
-		}
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(!sdl_device_open_failed) {
-		if(init_sdl_audio()==-1) {
-			sdl_device_open_failed=TRUE;
-		}
-		else {
-			spec.freq=22050;
-			spec.format=AUDIO_U8;
-			spec.channels=1;
-			spec.samples=256;		/* Size of audio buffer */
-			spec.size=256;
-			spec.callback=sdl_fillbuf;
-			spec.userdata=NULL;
-			if(xpbeep_sdl.OpenAudio(&spec, NULL)==-1) {
-				sdl_device_open_failed=TRUE;
-			}
-			else {
-				sdlToneDone=xpbeep_sdl.SDL_CreateSemaphore(0);
-				sdl_audio_buf_len=0;
-				sdl_audio_buf_pos=0;
-				xpbeep_sdl.PauseAudio(FALSE);
-				handle_type=SOUND_DEVICE_SDL;
-				handle_rc++;
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef _WIN32
-	if(!sound_device_open_failed) {
-		w.wFormatTag = WAVE_FORMAT_PCM;
-		w.nChannels = 1;
-		w.nSamplesPerSec = S_RATE;
-		w.wBitsPerSample = 8;
-		w.nBlockAlign = (w.wBitsPerSample * w.nChannels) / 8;
-		w.nAvgBytesPerSec = w.nSamplesPerSec * w.nBlockAlign;
-
-		if(!sound_device_open_failed && waveOutOpen(&waveOut, WAVE_MAPPER, &w, 0, 0, 0)!=MMSYSERR_NOERROR)
-			sound_device_open_failed=TRUE;
-		if(sound_device_open_failed)
-			return(FALSE);
-		memset(&wh, 0, sizeof(wh));
-		wh[0].dwBufferLength=S_RATE*15/2+1;
-		wh[1].dwBufferLength=S_RATE*15/2+1;
-		handle_type=SOUND_DEVICE_WIN32;
-		if(!sound_device_open_failed) {
-			handle_rc++;
-			return(TRUE);
-		}
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(!alsa_device_open_failed) {
-		if(alsa_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"asound", NULL};
-			if(((alsa_api=(struct alsa_api_struct *)malloc(sizeof(struct alsa_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,2))==NULL)
-					|| ((alsa_api->snd_pcm_open=xp_dlsym(dl,snd_pcm_open))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_malloc=xp_dlsym(dl,snd_pcm_hw_params_malloc))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_any=xp_dlsym(dl,snd_pcm_hw_params_any))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_access=xp_dlsym(dl,snd_pcm_hw_params_set_access))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_format=xp_dlsym(dl,snd_pcm_hw_params_set_format))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_rate_near=xp_dlsym(dl,snd_pcm_hw_params_set_rate_near))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_channels=xp_dlsym(dl,snd_pcm_hw_params_set_channels))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params=xp_dlsym(dl,snd_pcm_hw_params))==NULL)
-					|| ((alsa_api->snd_pcm_prepare=xp_dlsym(dl,snd_pcm_prepare))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_free=xp_dlsym(dl,snd_pcm_hw_params_free))==NULL)
-					|| ((alsa_api->snd_pcm_close=xp_dlsym(dl,snd_pcm_close))==NULL)
-					|| ((alsa_api->snd_pcm_writei=xp_dlsym(dl,snd_pcm_writei))==NULL)
-					|| ((alsa_api->snd_pcm_drain=xp_dlsym(dl,snd_pcm_drain))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(alsa_api);
-				alsa_api=NULL;
-				alsa_device_open_failed=TRUE;
-			}
-			if(alsa_api==NULL)
-				alsa_device_open_failed=TRUE;
-		}
-		if(alsa_api!=NULL) {
-			unsigned int rate=S_RATE;
-			if((alsa_api->snd_pcm_open(&playback_handle, "default", SND_PCM_STREAM_PLAYBACK, 0)<0)
-					|| (alsa_api->snd_pcm_hw_params_malloc(&hw_params)<0)
-					|| (alsa_api->snd_pcm_hw_params_any(playback_handle, hw_params)<0)
-					|| (alsa_api->snd_pcm_hw_params_set_access(playback_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED) < 0)
-					|| (alsa_api->snd_pcm_hw_params_set_format(playback_handle, hw_params, SND_PCM_FORMAT_U8) < 0)
-					|| (alsa_api->snd_pcm_hw_params_set_rate_near(playback_handle, hw_params, &rate, 0) < 0) 
-					|| (alsa_api->snd_pcm_hw_params_set_channels(playback_handle, hw_params, 1) < 0)
-					|| (alsa_api->snd_pcm_hw_params(playback_handle, hw_params) < 0)
-					|| (alsa_api->snd_pcm_prepare(playback_handle) < 0)) {
-				alsa_device_open_failed=TRUE;
-				if(hw_params!=NULL)
-					alsa_api->snd_pcm_hw_params_free(hw_params);
-				if(playback_handle!=NULL) {
-					alsa_api->snd_pcm_close(playback_handle);
-					playback_handle=NULL;
-				}
-			}
-			else {
-				alsa_api->snd_pcm_hw_params_free(hw_params);
-				handle_type=SOUND_DEVICE_ALSA;
-				handle_rc++;
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(!sound_device_open_failed) {
-		if((dsp=open("/dev/dsp",O_WRONLY,0))<0) {
-			sound_device_open_failed=TRUE;
-		}
-		else  {
-			ioctl(dsp, SNDCTL_DSP_SETFRAGMENT, &fragsize);
-			if((ioctl(dsp, SNDCTL_DSP_SETFMT, &format)==-1) || format!=AFMT_U8) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-			else if((ioctl(dsp, SNDCTL_DSP_CHANNELS, &channels)==-1) || channels!=1) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-			else if((ioctl(dsp, SNDCTL_DSP_SPEED, &rate)==-1) || rate!=S_RATE) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-		}
-	}
-	if(sound_device_open_failed) {
-		return(FALSE);
-	}
-	handle_type=SOUND_DEVICE_OSS;
-	if(!sound_device_open_failed) {
-		handle_rc++;
-		return(TRUE);
-	}
-#endif
-
-	return(FALSE);
-}
-
-BOOL
-xptone_open(void)
-{
-	BOOL ret;
-#ifdef XPDEV_THREAD_SAFE
-	pthread_once(&sample_initialized_pto, init_sample);
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	ret = xptone_open_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-	return ret;
-}
-
-static void
-xptone_complete_locked(void)
-{
-	if(handle_type==SOUND_DEVICE_CLOSED) {
-		return;
-	}
-
-#ifdef WITH_PULSEAUDIO
-	else if (handle_type == SOUND_DEVICE_PULSEAUDIO) {
-		int err;
-		if (pu_handle)
-			pu_api->simple_drain(pu_handle, &err);
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	else if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		pa_api->stop(portaudio_stream);
-		if (pawave) {
-			free((void *)pawave);
-			pawave = NULL;
-		}
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	else if(handle_type==SOUND_DEVICE_SDL) {
-		while(xpbeep_sdl.GetAudioStatus()==SDL_AUDIO_PLAYING)
-			SLEEP(1);
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[0].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[0], sizeof(wh))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-			FREE_AND_NULL(wh[0].lpData);
-		}
-		if(wh[1].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[1], sizeof(wh))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-			FREE_AND_NULL(wh[1].lpData);
-		}
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		if(!alsa_device_open_failed)
-			alsa_api->snd_pcm_drain(playback_handle);
-	}
-#endif
-
-#ifdef AFMT_U8
-	else if(handle_type==SOUND_DEVICE_OSS) {
-		ioctl(dsp, SNDCTL_DSP_SYNC, NULL);
-	}
-#endif
-}
-
-void
-xptone_complete(void)
-{
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	xptone_complete_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-}
-
-BOOL xptone_close_locked(void)
-{
-	xptone_complete_locked();
-
-	if (handle_rc <= 0)
-		return FALSE;
-	if (--handle_rc)
-		return TRUE;
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		pa_api->close(portaudio_stream);
-	}
-#endif
-
-#ifdef WITH_PULSEAUDIO
-	if(handle_type==SOUND_DEVICE_PULSEAUDIO) {
-		if (pu_handle)
-			pu_api->simple_free(pu_handle);
-		pu_handle = NULL;
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL) {
-		xpbeep_sdl.CloseAudio();
-		xpbeep_sdl.SDL_DestroySemaphore(sdlToneDone);
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		waveOutClose(waveOut);
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		alsa_api->snd_pcm_close (playback_handle);
-		playback_handle=NULL;
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(handle_type==SOUND_DEVICE_OSS) {
-		close(dsp);
-	}
-#endif
-	handle_type=SOUND_DEVICE_CLOSED;
-	sound_device_open_failed=FALSE;
-#ifdef USE_ALSA_SOUND
-	alsa_device_open_failed=FALSE;
-#endif
-#ifdef WITH_SDL_AUDIO
-	sdl_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PORTAUDIO
-	portaudio_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PULSEAUDIO
-	pulseaudio_device_open_failed = FALSE;
-#endif
-
-	return(TRUE);
-}
-
-BOOL
-xptone_close(void)
-{
-	BOOL ret;
-
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	ret = xptone_close_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-	return ret;
-}
-
-static BOOL
-do_xp_play_sample(const unsigned char *sampo, size_t sz, int *freed)
-{
-	const unsigned char *samp;
-	int need_copy = 0;
-#ifdef AFMT_U8
-	int wr;
-	int	i;
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		if(pa_api->ver < 1899)
-			need_copy = 1;
-	}
-#endif
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32)
-		need_copy = 1;
-#endif
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL)
-		need_copy = 1;
-#endif
-
-	if (freed)
-		*freed = need_copy;
-	if (need_copy) {
-		if (freed) {
-			samp = sampo;
-		}
-		else {
-			samp = malloc(sz);
-			if (!samp)
-				return FALSE;
-			memcpy((void *)samp, sampo, sz);
-		}
-	}
-	else {
-		samp = sampo;
-	}
-
-#ifdef WITH_PULSEAUDIO
-	if(handle_type==SOUND_DEVICE_PULSEAUDIO) {
-		int err;
-		pa_sample_spec ss;
-		ss.format = PA_SAMPLE_U8;
-		ss.rate = 22050;
-		ss.channels = 1;
-		if (pu_handle == NULL) {
-			if((pu_handle = pu_api->simple_new(NULL, "XPBeep", PA_STREAM_PLAYBACK, NULL, "Beeps and Boops", &ss, NULL, NULL, NULL)) == NULL) {
-				pulseaudio_device_open_failed=TRUE;
-				pulseaudio_initialized=FALSE;
-				xptone_close_locked();
-				xptone_open_locked();
-			}
-			else
-				pulseaudio_initialized=TRUE;
-		}
-		if (pulseaudio_initialized)
-			pu_api->simple_write(pu_handle, sampo, sz, &err);
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		if(pa_api->ver >= 1899) {
-			pa_api->start(portaudio_stream);
-			pa_api->write(portaudio_stream, samp, sz);
-		}
-		else {
-			xptone_complete_locked();
-			pawave=samp;
-			portaudio_buf_pos=0;
-			portaudio_buf_len=sz;
-			pa_api->start(portaudio_stream);
-		}
-		return TRUE;
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL) {
-		xpbeep_sdl.LockAudio();
-		swave=samp;
-		sdl_audio_buf_pos=0;
-		sdl_audio_buf_len=sz;
-		xpbeep_sdl.UnlockAudio();
-		xpbeep_sdl.PauseAudio(FALSE);
-		xpbeep_sdl.SemWait(sdlToneDone);
-		xpbeep_sdl.PauseAudio(TRUE);
-		return TRUE;
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[curr_wh].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-		}
-		free(wh[curr_wh].lpData);
-		wh[curr_wh].lpData=samp;
-		wh[curr_wh].dwBufferLength=sz;
-		if(waveOutPrepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==MMSYSERR_NOERROR) {
-			if(waveOutWrite(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==MMSYSERR_NOERROR) {
-				curr_wh ^= 1;
-			}
-		}
-		return TRUE;
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		int ret;
-		int written=0;
-
-		while (written < sz) {
-			ret = alsa_api->snd_pcm_writei(playback_handle, samp + written, sz - written);
-			if (ret < 0) {
-				if (alsa_api->snd_pcm_prepare(playback_handle) == 0) {
-					ret = 0;
-				}
-				else {
-					if (written == 0) {
-						/* Go back and try OSS */
-						xptone_close_locked();
-						alsa_device_open_failed = TRUE;
-						xptone_open_locked();
-					}
-					break;
-				}
-			}
-			written += ret;
-		}
-		if (written == sz)
-			return TRUE;
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(handle_type==SOUND_DEVICE_OSS) {
-		wr=0;
-		while(wr<sz) {
-			i=write(dsp, samp+wr, sz-wr);
-			if(i>=0)
-				wr+=i;
-		}
-		return TRUE;
-	}
-#endif
-
-	return FALSE;
-}
-
-#ifdef XPDEV_THREAD_SAFE
-void xp_play_sample_thread(void *data)
-{
-	BOOL			must_close;
-	BOOL			posted_last=TRUE;
-	BOOL			waited=FALSE;
-	unsigned char	*sample=NULL;
-	size_t			this_sample_size;
-	int freed;
-
-	SetThreadName("Sample Play");
-	sample_thread_running=TRUE;
-	sem_post(&sample_complete_sem);
-	while(1) {
-		must_close = FALSE;
-		if(!waited) {
-			if(sem_wait(&sample_pending_sem)!=0)
-				goto error_return;
-		}
-		else
-			waited=FALSE;
-		posted_last=FALSE;
-		pthread_mutex_lock(&handle_mutex);
-
-		if(handle_type==SOUND_DEVICE_CLOSED) {
-			must_close=TRUE;
-			if(!xptone_open_locked()) {
-				sem_post(&sample_complete_sem);
-				pthread_mutex_unlock(&handle_mutex);
-				continue;
-			}
-		}
-
-		if(pthread_mutex_lock(&sample_mutex)!=0) {
-			pthread_mutex_unlock(&handle_mutex);
-			goto error_return;
-		}
-		this_sample_size=sample_size;
-		FREE_AND_NULL(sample);
-		sample=(unsigned char *)malloc(sample_size);
-		if(sample==NULL) {
-				sem_post(&sample_complete_sem);
-				pthread_mutex_unlock(&sample_mutex);
-				pthread_mutex_unlock(&handle_mutex);
-				continue;
-		}
-		memcpy(sample, sample_buffer, this_sample_size);
-		pthread_mutex_unlock(&sample_mutex);
-
-		do_xp_play_sample(sample, this_sample_size, &freed);
-		if (freed)
-			sample = NULL;
-		sem_post(&sample_complete_sem);
-		posted_last=TRUE;
-		if(must_close) {
-			if(sem_trywait(&sample_pending_sem)==0) {
-				waited=TRUE;
-			}
-			else {
-				xptone_close_locked();
-			}
-		}
-		pthread_mutex_unlock(&handle_mutex);
-	}
-
-error_return:
-#ifdef _WIN32
-	pthread_mutex_lock(&handle_mutex);
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[curr_wh].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-		}
-		FREE_AND_NULL(wh[curr_wh].lpData);
-	}
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-
-	FREE_AND_NULL(sample);
-	xptone_close();
-	if(!posted_last) {
-		sem_post(&sample_complete_sem);
-	}
-	sample_thread_running=FALSE;
-}
-
-static void
-init_sample(void)
-{
-	pthread_mutex_init(&sample_mutex, NULL);
-	pthread_mutex_init(&handle_mutex, NULL);
-	sem_init(&sample_pending_sem, 0, 0);
-	sem_init(&sample_complete_sem, 0, 0);
-}
-
-static BOOL xp_play_sample_locked(const unsigned char *sample, size_t size, BOOL background)
-{
-	if(!sample_thread_running) {
-		_beginthread(xp_play_sample_thread, 0,NULL);
-		sem_wait(&sample_complete_sem);
-	}
-
-	while(samples_posted > 0) {
-		pthread_mutex_unlock(&sample_mutex);
-		sem_wait(&sample_complete_sem);
-		pthread_mutex_lock(&sample_mutex);
-		samples_posted--;
-	}
-	sample_buffer=sample;
-	sample_size=size;
-	samples_posted++;
-	sem_post(&sample_pending_sem);
-	if(!background) {
-		while(samples_posted > 0) {
-			pthread_mutex_unlock(&sample_mutex);
-			sem_wait(&sample_complete_sem);
-			pthread_mutex_lock(&sample_mutex);
-			samples_posted--;
-		}
-	}
-	return TRUE;
-}
-
-/*
- * This MUST not return false after sample goes into the sample buffer in the background.
- * If it does, the caller won't be able to free() it.
- */
-BOOL xp_play_sample(const unsigned char *sample, size_t size, BOOL background)
-{
-	BOOL ret;
-	pthread_once(&sample_initialized_pto, init_sample);
-
-	pthread_mutex_lock(&sample_mutex);
-	ret = xp_play_sample_locked(sample, size, background);
-	pthread_mutex_unlock(&sample_mutex);
-	return(ret);
-}
-#else
-BOOL xp_play_sample(const unsigned char *sample, size_t sample_size, BOOL background)
-{
-	BOOL must_close=FALSE;
-	BOOL ret;
-
-	if(handle_type==SOUND_DEVICE_CLOSED) {
-		must_close=TRUE;
-		if(!xptone_open())
-			return(FALSE);
-	}
-
-	ret = do_xp_play_sample(sample, sample_size, NULL);
-	if(must_close)
-		xptone_close();
-	return(ret);
-}
-#endif
-
-/********************************************************************************/
-/* Play a tone through the wave/DSP output device (sound card) - Deuce			*/
-/********************************************************************************/
-
-BOOL xptone(double freq, DWORD duration, enum WAVE_SHAPE shape)
-{
-	unsigned char	*wave;
-	int samples;
-	BOOL ret;
-
-	wave=(unsigned char *)malloc(S_RATE*15/2+1);
-	if(!wave)
-		return FALSE;
-	if(freq<17 && freq != 0)
-		freq=17;
-	samples=S_RATE*duration/1000;
-	if(freq) {
-		if(samples<=S_RATE/freq*2)
-			samples=S_RATE/freq*2;
-	}
-	if(freq==0 || samples > S_RATE/freq*2) {
-		int sample_len;
-
-		xptone_makewave(freq,wave,S_RATE*15/2,shape);
-		for(sample_len=S_RATE*15/2-1; sample_len && wave[sample_len]==128; sample_len--)
-			;
-		sample_len++;
-		while(samples > S_RATE*15/2) {
-			if(!xp_play_sample(wave, sample_len, TRUE)) {
-				free(wave);
-				return FALSE;
-			}
-			samples -= sample_len;
-		}
-	}
-	xptone_makewave(freq,wave,samples,shape);
-	ret = xp_play_sample(wave, samples, FALSE);
-	free(wave);
-	return ret;
-}
-
-#ifdef __unix__
-/****************************************************************************/
-/* Generate a tone at specified frequency for specified milliseconds		*/
-/* Thanks to Casey Martin (and Deuce) for this code							*/
-/****************************************************************************/
-void unix_beep(int freq, int dur)
-{
-	static int console_fd=-1;
-
-#if (defined(__FreeBSD__) && defined(HAS_MACHINE_SPEAKER_H)) || ((defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H))
-	int speaker_fd=-1;
-	tone_t tone;
-
-	speaker_fd = open("/dev/speaker", O_WRONLY|O_APPEND);
-	if(speaker_fd != -1)  {
-		tone.frequency=freq;
-		tone.duration=dur/10;
-		ioctl(speaker_fd,SPKRTONE,&tone);
-		close(speaker_fd);
-		return;
-	}
-#endif
-
-#if !defined(__GNU__) && !defined(__QNX__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(__HAIKU__)
-	if(console_fd == -1) 
-  		console_fd = open("/dev/console", O_NOCTTY);
-	
-	if(console_fd != -1) {
-#if defined(__solaris__)
-		ioctl(console_fd, KIOCCMD, KBD_CMD_BELL);
-#else
-		if(freq != 0)	/* Don't divide by zero */
-			ioctl(console_fd, KIOCSOUND, (int) (1193180 / freq));
-#endif /* solaris */
-		SLEEP(dur);
-#if defined(__solaris__)
-		ioctl(console_fd, KIOCCMD, KBD_CMD_NOBELL);	/* turn off tone */
-#else
-		ioctl(console_fd, KIOCSOUND, 0);	/* turn off tone */
-#endif /* solaris */
-	}
-#endif
-}
-
-#endif
-
-/********************************************************************************/
-/* Play sound through DSP/wave device, if unsuccessful, play through PC speaker	*/
-/********************************************************************************/
-void xpbeep(double freq, DWORD duration)
-{
-	if(xptone(freq,duration,WAVE_SHAPE_SINE_SAW_HARM))
-		return;
-
-#if defined(_WIN32)
-	Beep((DWORD)(freq+.5), duration);
-#elif defined(__unix__)
-	unix_beep((int)(freq+.5),duration);
-#endif
-}
diff --git a/xpdev/xpbeep.h b/xpdev/xpbeep.h
deleted file mode 100644
index 93bac7d..0000000
--- a/xpdev/xpbeep.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id: xpbeep.h,v 1.16 2020/04/15 15:18:00 deuce Exp $ */
-
-#ifndef _XPBEEP_H_
-#define _XPBEEP_H_
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(_WIN32)
-	#if 0
-	#define BEEP(freq,dur)	xpbeep((double)(freq),(DWORD)(dur))
-	#else
-	#define BEEP(freq,dur)	Beep((DWORD)(freq),(DWORD)(dur))
-	#endif
-#elif defined(__OS2__)
-	#define BEEP(freq,dur)	DosBeep(freq,dur)
-#elif defined(__unix__) || defined(__APPLE__)
-	#define BEEP(freq,dur)	xpbeep((double)(freq),(DWORD)(dur))
-#else
-	#error "Unsupported Target: Need some macros and/or function prototypes here."
-#endif
-
-enum WAVE_SHAPE {
-	 WAVE_SHAPE_SINE
-	,WAVE_SHAPE_SAWTOOTH
-	,WAVE_SHAPE_SQUARE
-	,WAVE_SHAPE_SINE_SAW
-	,WAVE_SHAPE_SINE_HARM
-	,WAVE_SHAPE_SINE_SAW_CHORD
-	,WAVE_SHAPE_SINE_SAW_HARM
-};
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-DLLEXPORT void xptone_makewave(double freq, unsigned char *wave, int samples, enum WAVE_SHAPE shape);
-DLLEXPORT BOOL xptone_open(void);
-DLLEXPORT BOOL xptone_close(void);
-DLLEXPORT void xpbeep(double freq, DWORD duration);
-DLLEXPORT BOOL xp_play_sample(const unsigned char *sample, size_t sample_size, BOOL background);
-DLLEXPORT void xptone_complete(void);
-DLLEXPORT BOOL xptone(double freq, DWORD duration, enum WAVE_SHAPE);
-#ifdef __unix__
-DLLEXPORT void unix_beep(int freq, int dur);
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/xpdatetime.c b/xpdev/xpdatetime.c
deleted file mode 100644
index e27df40..0000000
--- a/xpdev/xpdatetime.c
+++ /dev/null
@@ -1,457 +0,0 @@
-/* xpdatetime.c */
-
-/* Cross-platform (and eXtra Precision) date/time functions */
-
-/* $Id: xpdatetime.c,v 1.13 2015/11/25 07:27:07 sbbs Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>		/* memset */
-#include "datewrap.h"	/* sane_mktime */
-#include "xpdatetime.h"	/* xpDateTime_t */
-
-/**************************************/
-/* Cross-platform date/time functions */
-/**************************************/
-
-xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day
-							  ,unsigned hour, unsigned minute, float second
-							  ,xpTimeZone_t zone)
-{
-	xpDateTime_t	xpDateTime;
-
-	xpDateTime.date.year	= year;
-	xpDateTime.date.month	= month;
-	xpDateTime.date.day		= day;
-	xpDateTime.time.hour	= hour;
-	xpDateTime.time.minute	= minute;
-	xpDateTime.time.second	= second;
-	xpDateTime.zone			= zone;
-
-	return xpDateTime;
-}
-
-xpDateTime_t xpDateTime_now(void)
-{
-#if defined(_WIN32)
-	SYSTEMTIME systime;
-
-	GetLocalTime(&systime);
-	return(xpDateTime_create(systime.wYear,systime.wMonth,systime.wDay
-		,systime.wHour,systime.wMinute,(float)systime.wSecond+(systime.wMilliseconds*0.001F)
-		,xpTimeZone_local()));
-#else	/* !Win32 (e.g. Unix) */
-	struct tm tm;
-	struct timeval tv;
-	time_t	t;
-
-	gettimeofday(&tv, NULL);
-	t=tv.tv_sec;
-	localtime_r(&t,&tm);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec+(tv.tv_usec*0.00001)
-		,xpTimeZone_local());
-#endif
-}
-
-/* Return local timezone offset (in minutes) */
-xpTimeZone_t xpTimeZone_local(void)
-{
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DARWIN__) || defined(__linux__)
-	struct tm tm;
-	time_t t=time(NULL);
-
-	localtime_r(&t, &tm);
-	return(tm.tm_gmtoff/60);
-#elif defined(_WIN32)
-	TIME_ZONE_INFORMATION	tz;
-	DWORD					tzRet;
-
-	/*****************************/
-	/* Get Time-zone information */
-	/*****************************/
-    memset(&tz,0,sizeof(tz));
-	tzRet=GetTimeZoneInformation(&tz);
-	switch(tzRet) {
-		case TIME_ZONE_ID_DAYLIGHT:
-			tz.Bias += tz.DaylightBias;
-			break;
-		case TIME_ZONE_ID_STANDARD:
-			tz.Bias += tz.StandardBias;
-			break;
-	}
-
-	return -tz.Bias;
-#else
-
-#if defined(__BORLANDC__) || defined(__CYGWIN__)
-	#define timezone _timezone
-#endif
-
-	/* Converts (_)timezone from seconds west of UTC to minutes east of UTC */
-	/* Adjust for DST, assuming adjustment is always 60 minutes <sigh> */
-	return -((timezone/60) - (daylight*60));
-#endif
-}
-
-/* TODO: Supports local timezone and UTC only, currently */
-time_t xpDateTime_to_time(xpDateTime_t xpDateTime)
-{
-	struct tm tm;
-
-	ZERO_VAR(tm);
-
-	if(xpDateTime.date.year==0)
-		return(INVALID_TIME);
-
-	tm.tm_year	= xpDateTime.date.year;
-	tm.tm_mon	= xpDateTime.date.month;
-	tm.tm_mday	= xpDateTime.date.day;
-
-	tm.tm_hour	= xpDateTime.time.hour;
-	tm.tm_min	= xpDateTime.time.minute;
-	tm.tm_sec	= (int)xpDateTime.time.second;
-
-	if(xpDateTime.zone == xpTimeZone_UTC)
-		return sane_timegm(&tm);
-	if(xpDateTime.zone == xpTimeZone_LOCAL || xpDateTime.zone == xpTimeZone_local())
-		return sane_mktime(&tm);
-	return INVALID_TIME;
-}
-
-/* This version ignores the timezone in xpDateTime and always uses mktime() */
-time_t xpDateTime_to_localtime(xpDateTime_t xpDateTime)
-{
-	xpDateTime.zone = xpTimeZone_LOCAL;
-	return xpDateTime_to_time(xpDateTime);
-}
-
-xpDateTime_t time_to_xpDateTime(time_t ti, xpTimeZone_t zone)
-{
-	xpDateTime_t	never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return(never);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec
-		,zone==xpTimeZone_LOCAL ? xpTimeZone_local() : zone);
-}
-
-xpDate_t time_to_xpDate(time_t ti)
-{
-	xpDate_t never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return never;
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec, /* zone: */0).date;
-}
-
-xpDateTime_t gmtime_to_xpDateTime(time_t ti)
-{
-	xpDateTime_t	never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(gmtime_r(&ti,&tm)==NULL)
-		return(never);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec
-		,xpTimeZone_UTC);
-}
-
-/**********************************************/
-/* Decimal-coded ISO-8601 date/time functions */
-/**********************************************/
-
-isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime)
-{
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	if(xpDateTime.date.year==0)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(xpDateTime.time.hour,xpDateTime.time.minute,xpDateTime.time.second);
-
-	return isoDate_create(xpDateTime.date.year,xpDateTime.date.month,xpDateTime.date.day);
-}
-
-xpDateTime_t isoDateTime_to_xpDateTime(isoDate_t date, isoTime_t ti)
-{
-	return xpDateTime_create(isoDate_year(date),isoDate_month(date),isoDate_day(date)
-		,isoTime_hour(ti),isoTime_minute(ti),(float)isoTime_second(ti),xpTimeZone_local());
-}
-
-isoDate_t time_to_isoDateTime(time_t ti, isoTime_t* isoTime)
-{
-	struct tm tm;
-
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(tm.tm_hour,tm.tm_min,tm.tm_sec);
-
-	return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
-}
-
-isoTime_t time_to_isoTime(time_t ti)
-{
-	isoTime_t isoTime;
-	
-	time_to_isoDateTime(ti,&isoTime);
-
-	return isoTime;
-}
-
-isoDate_t gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime)
-{
-	struct tm tm;
-
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	ZERO_VAR(tm);
-	if(gmtime_r(&ti,&tm)==NULL)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(tm.tm_hour,tm.tm_min,tm.tm_sec);
-
-	return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
-}
-
-isoTime_t gmtime_to_isoTime(time_t ti)
-{
-	isoTime_t isoTime;
-	
-	gmtime_to_isoDateTime(ti,&isoTime);
-
-	return isoTime;
-}
-
-time_t isoDateTime_to_time(isoDate_t date, isoTime_t ti)
-{
-	struct tm tm;
-
-	ZERO_VAR(tm);
-
-	if(date==0)
-		return(INVALID_TIME);
-
-	tm.tm_year	= isoDate_year(date);
-	tm.tm_mon	= isoDate_month(date);
-	tm.tm_mday	= isoDate_day(date);
-
-	tm.tm_hour	= isoTime_hour(ti);
-	tm.tm_min	= isoTime_minute(ti);
-	tm.tm_sec	= isoTime_second(ti);
-
-	return sane_mktime(&tm);
-}
-
-/****************************************************************************/
-/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings			*/
-/****************************************************************************/
-
-char* xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t maxlen)
-{
-	if(sep==NULL)
-		sep="-";
-
-	snprintf(str,maxlen,"%04u%s%02u%s%02u"
-		,date.year	,sep
-		,date.month	,sep
-		,date.day);
-
-	return str;
-}
-
-/* precision	example output
- * -2			"14"
- * -1			"14:02"
- * 0            "14:02:39"
- * 1            "14:02:39.8"
- * 2            "14:02:39.82"
- * 3            "14:02:39.829"
- */
-char* xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision
-								   ,char* str, size_t maxlen)
-{
-	if(sep==NULL)
-		sep=":";
-
-	if(precision < -1)			/* HH */
-		snprintf(str, maxlen, "%02u", ti.hour);
-	else if(precision < 0)		/* HH:MM */
-		snprintf(str, maxlen, "%02u%s%02u"
-			,ti.hour		,sep
-			,ti.minute
-			);
-	else						/* HH:MM:SS[.fract] */
-		snprintf(str, maxlen, "%02u%s%02u%s%0*.*f"
-			,ti.hour		,sep
-			,ti.minute		,sep
-			,precision ? (precision+3) : 2
-			,precision
-			,ti.second
-			);
-
-	return str;
-}
-
-char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep
-								   ,char *str, size_t maxlen)
-{
-	xpTimeZone_t	tz=zone;
-
-	if(tz==xpTimeZone_UTC)
-		return "Z";
-
-	if(sep==NULL)
-		sep=":";
-
-	if(tz<0)
-		tz=-tz;
-
-	snprintf(str,maxlen,"%c%02u%s%02u"
-		,zone < 0 ? '-':'+'
-		,tz/60
-		,sep
-		,tz%60);
-
-	return str;
-}
-
-char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt
-								   ,const char* date_sep, const char* datetime_sep, const char* time_sep
-								   ,int precision
-								   ,char* str, size_t maxlen)
-{
-	char			tz_str[16];
-	char			date_str[16];
-	char			time_str[16];
-	
-	if(datetime_sep==NULL)	datetime_sep="T";
-
-	snprintf(str,maxlen,"%s%s%s%s"
-		,xpDate_to_isoDateStr(dt.date, date_sep, date_str, sizeof(date_str))
-		,datetime_sep
-		,xpTime_to_isoTimeStr(dt.time, time_sep, precision, time_str, sizeof(time_str))
-		,xpTimeZone_to_isoTimeZoneStr(dt.zone,time_sep,tz_str,sizeof(tz_str)));
-
-	return str;
-}
-
-/****************************************************************************/
-/* isoDate/Time/Zone String parsing functions								*/
-/****************************************************************************/
-
-BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone)
-{
-	unsigned hour=0,minute=0;
-
-	switch(*str) {
-		case 0:		/* local time-zone */
-			*zone = xpTimeZone_local();	
-			return TRUE;	
-		case 'Z':	/* UTC */
-			*zone = xpTimeZone_UTC;		
-			return TRUE;
-		case '+':
-		case '-':	/* "+/- HH[:]MM" */
-			if(sscanf(str+1,"%2u%*s%2u",&hour,&minute)>=1) {
-				*zone = (hour*60) + minute;
-				if(*str=='-')
-					*zone = -(*zone);
-				return TRUE;
-			}
-			break;
-	}
-	return FALSE;
-}
-
-/* TODO: adjust times in 24:xx:xx format */
-xpDateTime_t isoDateTimeStr_parse(const char* str)
-{
-	char zone[16];
-	xpDateTime_t	xpDateTime;
-
-	zone[0]=0;
-	ZERO_VAR(xpDateTime);
-
-	if((sscanf(str,"%4u-%2u-%2uT%2u:%2u:%f%6s"		/* CCYY-MM-DDThh:MM:ss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=2
-	||	sscanf(str,"%4u%2u%2uT%2u%2u%f%6s"			/* CCYYMMDDThhmmss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=4
-	||	sscanf(str,"%4u%2u%2u%2u%2u%f%6s"			/* CCYYMMDDhhmmss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=1
-		) && isoTimeZoneStr_parse(zone,&xpDateTime.zone))
-		return xpDateTime;
-
-	return xpDateTime;
-}
diff --git a/xpdev/xpdatetime.h b/xpdev/xpdatetime.h
deleted file mode 100644
index 74f91c2..0000000
--- a/xpdev/xpdatetime.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Cross-platform (and eXtra Precision) date/time functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPDATETIME_H_
-#define _XPDATETIME_H_
-
-#include "gen_defs.h"	/* uint32_t and time_t */
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/**************************************/
-/* Cross-platform date/time functions */
-/**************************************/
-
-#define INVALID_TIME	(time_t)-1	/* time_t representation of an invalid date/time */
-
-typedef struct {
-	unsigned	year;	/* 0-9999 */
-	unsigned	month;	/* 1-12 */
-	unsigned	day;	/* 1-31 */
-} xpDate_t;
-
-typedef struct {
-	unsigned	hour;	/* 0-23 */
-	unsigned	minute;	/* 0-59 */
-	float		second;	/* 0.0-59.999, supports fractional seconds */
-} xpTime_t;
-
-typedef int xpTimeZone_t;
-#define xpTimeZone_UTC		0
-#define xpTimeZone_LOCAL	1
-
-typedef struct {
-	xpDate_t		date;
-	xpTime_t		time;
-	xpTimeZone_t	zone;	/* minutes +/- UTC */
-} xpDateTime_t;
-
-DLLEXPORT xpDateTime_t	xpDateTime_create(unsigned year, unsigned month, unsigned day
-								   ,unsigned hour, unsigned minute, float second
-								   ,xpTimeZone_t);
-DLLEXPORT xpDateTime_t	xpDateTime_now(void);
-DLLEXPORT time_t		xpDateTime_to_time(xpDateTime_t);
-DLLEXPORT time_t		xpDateTime_to_localtime(xpDateTime_t);
-DLLEXPORT xpDate_t		time_to_xpDate(time_t);
-DLLEXPORT xpDateTime_t	time_to_xpDateTime(time_t, xpTimeZone_t);
-DLLEXPORT xpDateTime_t	gmtime_to_xpDateTime(time_t);
-DLLEXPORT xpTimeZone_t	xpTimeZone_local(void);
-
-/**********************************************/
-/* Decimal-coded ISO-8601 date/time functions */
-/**********************************************/
-
-typedef uint32_t	isoDate_t;	/* CCYYMMDD (decimal) */
-typedef uint32_t	isoTime_t;	/* HHMMSS   (decimal) */
-
-#define			isoDate_create(year,mon,day)	(((year)*10000)+((mon)*100)+(day))
-#define			isoTime_create(hour,min,sec)	(((hour)*10000)+((min)*100)+((unsigned)sec))
-				
-#define			isoDate_year(date)				((date)/10000)
-#define			isoDate_month(date)				(((date)/100)%100)
-#define			isoDate_day(date)				((date)%100)
-												
-#define			isoTime_hour(time)				((time)/10000)
-#define			isoTime_minute(time)			(((time)/100)%100)
-#define			isoTime_second(time)			((time)%100)
-
-DLLEXPORT BOOL			isoTimeZoneStr_parse(const char* str, xpTimeZone_t*);
-DLLEXPORT xpDateTime_t	isoDateTimeStr_parse(const char* str);
-
-/**************************************************************/
-/* Conversion between time_t (local and GMT) and isoDate/Time */
-/**************************************************************/
-DLLEXPORT isoTime_t		time_to_isoTime(time_t);
-DLLEXPORT isoTime_t		gmtime_to_isoTime(time_t);
-DLLEXPORT isoDate_t		time_to_isoDateTime(time_t, isoTime_t*);
-DLLEXPORT isoDate_t		gmtime_to_isoDateTime(time_t, isoTime_t*);
-DLLEXPORT time_t		isoDateTime_to_time(isoDate_t, isoTime_t);
-#define			time_to_isoDate(t)		time_to_isoDateTime(t,NULL)
-#define			gmtime_to_isoDate(t)	gmtime_to_isoDateTime(t,NULL)
-
-/***************************************************/
-/* Conversion between xpDate/Time and isoDate/Time */
-/***************************************************/
-
-#define			xpDate_to_isoDate(date)	isoDate_create((date).year,(date).month,(date).day)
-#define			xpTime_to_isoTime(time)	isoTime_create((time).hour,(time).minute,(unsigned)((time).second))
-
-DLLEXPORT xpDateTime_t	isoDateTime_to_xpDateTime(isoDate_t, isoTime_t);
-DLLEXPORT isoDate_t		xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*);
-
-/*****************************************************************/
-/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */
-/*****************************************************************/
-
-/* NULL sep (separator) values are automatically replaced with ISO-standard separators */
-
-/* precision	example output
- * -2			"14"
- * -1			"14:02"
- * 0            "14:02:39"
- * 1            "14.02:39.8"
- * 2            "14.02:39.82"
- * 3            "14.02:39.829"
- */
-DLLEXPORT char* xpDate_to_isoDateStr(xpDate_t
-						,const char* sep
-						,char* str, size_t maxlen);
-DLLEXPORT char* xpTime_to_isoTimeStr(xpTime_t
-						,const char* sep
-						,int precision
-						,char* str, size_t maxlen);
-DLLEXPORT char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t
-						,const char* sep
-						,char *str, size_t maxlen);
-DLLEXPORT char* xpDateTime_to_isoDateTimeStr(xpDateTime_t
-						,const char* date_sep, const char* datetime_sep, const char* time_sep
-						,int precision
-						,char* str, size_t maxlen);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/xpendian.h b/xpdev/xpendian.h
deleted file mode 100644
index fedf80c..0000000
--- a/xpdev/xpendian.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* xpendian.h */
-
-/* Macros to convert integer "endianness" */
-
-/* $Id: xpendian.h,v 1.6 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPENDIAN_H
-#define _XPENDIAN_H
-
-/************************/
-/* byte-swapping macros */
-/************************/
-#define BYTE_SWAP_16(x)	((((short)(x)&0xff00)>>8) | (((short)(x)&0x00ff)<<8))
-#define BYTE_SWAP_32(x)	((((long)(x)&0xff000000)>>24) | (((long)(x)&0x00ff0000)>>8) | (((long)(x)&0x0000ff00)<<8) | (((long)(x)&0x000000ff)<<24))
-
-/* these may need to be updated for > 32-bit platforms */
-#define BYTE_SWAP_SHORT(x)	BYTE_SWAP_16(x)
-#define BYTE_SWAP_LONG(x)	BYTE_SWAP_32(x)
-
-/* auto-detect integer size */
-#define BYTE_SWAP_INT(x)	(sizeof(x)==sizeof(short) ? BYTE_SWAP_SHORT(x) : sizeof(x)==sizeof(long) ? BYTE_SWAP_LONG(x) : (x))
-
-/********************************/
-/* Architecture-specific macros */
-/********************************/
-#ifdef __BIG_ENDIAN__	/* e.g. Motorola */
-
-	#define BE_SHORT(x)		(x)
-	#define BE_LONG(x)		(x)
-	#define BE_INT16(x)		(x)
-	#define BE_INT32(x)		(x)
-	#define BE_INT(x)		(x)
-	#define LE_SHORT(x)		BYTE_SWAP_SHORT(x)
-	#define LE_LONG(x)		BYTE_SWAP_LONG(x)
-	#define LE_INT16(x)		BYTE_SWAP_16(x)
-	#define LE_INT32(x)		BYTE_SWAP_32(x)
-	#define LE_INT(x)		BYTE_SWAP_INT(x)
-
-#else	/* Little Endian (e.g. Intel) */
-
-	#define LE_SHORT(x)		(x)
-	#define LE_LONG(x)		(x)
-	#define LE_INT16(x)		(x)
-	#define LE_INT32(x)		(x)
-	#define LE_INT(x)		(x)
-	#define BE_SHORT(x)		BYTE_SWAP_SHORT(x)
-	#define BE_LONG(x)		BYTE_SWAP_LONG(x)
-	#define BE_INT16(x)		BYTE_SWAP_16(x)
-	#define BE_INT32(x)		BYTE_SWAP_32(x)
-	#define BE_INT(x)		BYTE_SWAP_INT(x)
-
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/xpevent.c b/xpdev/xpevent.c
deleted file mode 100644
index 35e5f42..0000000
--- a/xpdev/xpevent.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* xpevent.c */
-
-/* *nix emulation of Win32 *Event API */
-
-/* $Id: xpevent.c,v 1.17 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>		/* malloc() */
-#include "xpevent.h"
-#include "genwrap.h"
-
-xpevent_t
-CreateEvent(void *sec, BOOL bManualReset, BOOL bInitialState, void *name)
-{
-	xpevent_t	event;
-
-	event = (xpevent_t)malloc(sizeof(struct xpevent));
-	if (event == NULL) {
-		errno = ENOSPC;
-		return(NULL);
-	}
-	memset(event,0,sizeof(struct xpevent));
-
-	/*
-	 * Initialize
-	 */
-	if (pthread_mutex_init(&event->lock, NULL) != 0) {
-		free(event);
-		errno = ENOSPC;
-		return(NULL);
-	}
-
-	if (pthread_cond_init(&event->gtzero, NULL) != 0) {
-		while(pthread_mutex_destroy(&event->lock)==EBUSY)
-			SLEEP(1);
-		free(event);
-		errno = ENOSPC;
-		return(NULL);
-	}
-
-	event->mreset=bManualReset;
-	event->value=bInitialState;
-	event->nwaiters = 0;
-	event->magic=EVENT_MAGIC;
-
-	return(event);
-}
-
-BOOL
-SetEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	event->value=TRUE;
-	if (event->nwaiters > 0) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&event->gtzero);
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	return(TRUE);
-}
-
-BOOL
-ResetEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	event->value=FALSE;
-
-	pthread_mutex_unlock(&event->lock);
-
-	return(TRUE);
-}
-
-BOOL
-CloseEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	/* Make sure there are no waiters. */
-	pthread_mutex_lock(&event->lock);
-	if (event->nwaiters > 0) {
-		pthread_mutex_unlock(&event->lock);
-		errno = EBUSY;
-		return(FALSE);
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	while(pthread_mutex_destroy(&event->lock)==EBUSY)
-		SLEEP(1);
-	while(pthread_cond_destroy(&event->gtzero)==EBUSY)
-		SLEEP(1);
-	event->magic = 0;
-
-	free(event);
-
-	return(TRUE);
-}
-
-DWORD
-WaitForEvent(xpevent_t event, DWORD ms)
-{
-	DWORD	retval=WAIT_FAILED;
-	struct timespec abstime;
-	struct timeval currtime;
-
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(WAIT_FAILED);
-	}
-
-	if(ms && ms!=INFINITE) {
-		gettimeofday(&currtime,NULL);
-		abstime.tv_sec=currtime.tv_sec + ((currtime.tv_usec/1000 + ms)/1000);
-		abstime.tv_nsec=(currtime.tv_usec*1000 + ms*1000000)%1000000000;
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	if(event->value)
-		retval=WAIT_OBJECT_0;
-
-	while ((!(event->value)) || (event->verify!=NULL && !event->verify(event->cbdata))) {
-		event->nwaiters++;
-		switch(ms) {
-			case 0:
-				if(event->value)
-					retval=WAIT_OBJECT_0;
-				else
-					retval=WAIT_TIMEOUT;
-				event->nwaiters--;
-				goto DONE;
-				break;
-			case INFINITE:
-				retval=pthread_cond_wait(&event->gtzero, &event->lock);
-				if(retval) {
-					errno=retval;
-					retval=WAIT_FAILED;
-					event->nwaiters--;
-					goto DONE;
-				}
-				break;
-			default:
-				retval=pthread_cond_timedwait(&event->gtzero, &event->lock, &abstime);
-				if(retval)  {
-					if(retval==ETIMEDOUT)
-						retval=WAIT_TIMEOUT;
-					else {
-						errno=retval;
-						retval=WAIT_FAILED;
-					}
-					event->nwaiters--;
-					goto DONE;
-				}
-		}
-		event->nwaiters--;
-	}
-
-  DONE:
-
-	if(retval==WAIT_OBJECT_0) {
-		if(!event->mreset)
-			event->value=FALSE;
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	return retval;
-}
diff --git a/xpdev/xpevent.h b/xpdev/xpevent.h
deleted file mode 100644
index 01972b9..0000000
--- a/xpdev/xpevent.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* xpevent.h */
-
-/* *nix emulation of Win32 *Event API */
-
-/* $Id: xpevent.h,v 1.6 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPEVENT_H_
-#define _XPEVENT_H_
-
-#include <pthread.h>
-#include "gen_defs.h"
-
-#if defined(__solaris__)
-#include <xpsem.h>	/* u_int32_t */
-#endif
-
-/* Opaque type definition. */
-struct xpevent;
-typedef struct xpevent *xpevent_t;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-xpevent_t	CreateEvent(void *sec, BOOL bManualReset, BOOL bInitialState, void *name);
-BOOL		SetEvent(xpevent_t event);
-BOOL		ResetEvent(xpevent_t event);
-BOOL		CloseEvent(xpevent_t event);
-DWORD		WaitForEvent(xpevent_t event, DWORD ms);
-#if defined(__cplusplus)
-}
-#endif
-
-struct xpevent {
-#define EVENT_MAGIC       ((u_int32_t) 0x09fa4014)
-        u_int32_t       magic;
-        pthread_mutex_t lock;
-        pthread_cond_t  gtzero;
-        BOOL			value;
-		BOOL			mreset;
-        DWORD			nwaiters;
-		void			*cbdata;
-		BOOL			(*verify)(void *);
-};
-
-#define INFINITE 	((DWORD)(-1))
-enum {
-	 WAIT_OBJECT_0
-	,WAIT_TIMEOUT
-	,WAIT_FAILED
-};
-
-#endif
diff --git a/xpdev/xpmap.c b/xpdev/xpmap.c
deleted file mode 100644
index eaf002f..0000000
--- a/xpdev/xpmap.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* mmap() style cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "xpmap.h"
-#include <stdlib.h>	// malloc()
-
-#if defined(__unix__)
-
-#include <unistd.h>	// close()
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-struct xpmapping* xpmap(const char *filename, enum xpmap_type type)
-{
-	int					fd;
-	void				*addr=NULL;
-	int					oflags;
-	int					mflags;
-	int					mprot;
-	struct stat			sb;
-	struct xpmapping	*ret;
-
-	switch(type) {
-		case XPMAP_READ:
-			oflags=O_RDONLY;
-			mflags=0;
-			mprot=PROT_READ;
-			break;
-		case XPMAP_WRITE:
-			oflags=O_RDWR;
-			mflags=MAP_SHARED;
-			mprot=PROT_READ|PROT_WRITE;
-			break;
-		case XPMAP_COPY:
-			oflags=O_RDWR;
-			mflags=MAP_PRIVATE;
-			mprot=PROT_READ|PROT_WRITE;
-			break;
-	}
-
-	fd=open(filename, oflags);
-	if(fd == -1)
-		return NULL;
-	if(fstat(fd, &sb)==-1) {
-		close(fd);
-		return NULL;
-	}
-	addr=mmap(NULL, sb.st_size, mprot, mflags, fd, 0);
-	if(addr==MAP_FAILED) {
-		close(fd);
-		return NULL;
-	}
-	ret=(struct xpmapping *)malloc(sizeof(struct xpmapping));
-	if(ret==NULL) {
-		munmap(addr, sb.st_size);
-		close(fd);
-		return NULL;
-	}
-	ret->addr=addr;
-	ret->fd=fd;
-	ret->size=sb.st_size;
-	return ret;
-}
-
-void xpunmap(struct xpmapping *map)
-{
-	munmap(map->addr, map->size);
-	close(map->fd);
-	free(map);
-}
-
-#elif defined(_WIN32)
-
-struct xpmapping* xpmap(const char *filename, enum xpmap_type type)
-{
-	HFILE				fd;
-	HANDLE				md;
-	OFSTRUCT			of;
-	UINT				oflags;
-	DWORD				mprot;
-	DWORD				maccess;
-	DWORD				size;
-	void				*addr;
-	struct xpmapping	*ret;
-
-	switch(type) {
-		case XPMAP_READ:
-			oflags=OF_READ|OF_SHARE_DENY_NONE;
-			mprot=PAGE_READONLY;
-			maccess=FILE_MAP_READ;
-			break;
-		case XPMAP_WRITE:
-			oflags=OF_READWRITE|OF_SHARE_DENY_NONE;
-			mprot=PAGE_READWRITE;
-			maccess=FILE_MAP_WRITE;
-			break;
-		case XPMAP_COPY:
-			oflags=OF_READ|OF_SHARE_DENY_NONE;
-			mprot=PAGE_WRITECOPY;
-			maccess=FILE_MAP_COPY;
-			break;
-	}
-
-	fd=OpenFile(filename, &of, oflags);
-	if(fd == HFILE_ERROR)
-		return NULL;
-	if((size=GetFileSize((HANDLE)fd, NULL))==INVALID_FILE_SIZE)
-		return NULL;
-	md=CreateFileMapping((HANDLE)fd, NULL, mprot, 0, size, NULL);
-	if(md==NULL)
-		return NULL;
-	addr=MapViewOfFile(md, maccess, 0, 0, size);
-	ret=(struct xpmapping *)malloc(sizeof(struct xpmapping));
-	if(ret==NULL) {
-		CloseHandle(md);
-		UnmapViewOfFile(addr);
-		return NULL;
-	}
-	ret->addr=addr;
-	ret->fd=(HANDLE)fd;
-	ret->md=md;
-	ret->size=size;
-	return ret;
-}
-
-void xpunmap(struct xpmapping *map)
-{
-	UnmapViewOfFile(map->addr);
-	CloseHandle(map->md);
-	CloseHandle(map->fd);
-	free(map);
-}
-
-#else
-
-	#error "Need mmap wrappers."
-
-#endif
diff --git a/xpdev/xpmap.h b/xpdev/xpmap.h
deleted file mode 100644
index 5f1ffd6..0000000
--- a/xpdev/xpmap.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* mmap() style cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPMAP_H
-#define _XPMAP_H
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-enum xpmap_type {
-	XPMAP_READ,
-	XPMAP_WRITE,
-	XPMAP_COPY
-};
-
-#if defined(__unix__)
-
-#include <sys/mman.h>
-struct xpmapping {
-	void	*addr;
-	int		fd;
-	size_t	size;
-};
-
-#elif defined(_WIN32)
-
-struct xpmapping {
-	void		*addr;
-	HANDLE		fd;
-	HANDLE		md;
-	uint64_t	size;
-};
-
-#else
-
-	#error "Need mmap wrappers."
-
-#endif
-
-DLLEXPORT struct xpmapping* xpmap(const char *filename, enum xpmap_type type);
-DLLEXPORT void xpunmap(struct xpmapping *map);
-
-#endif
diff --git a/xpdev/xpprintf.c b/xpdev/xpprintf.c
deleted file mode 100644
index 7f481e9..0000000
--- a/xpdev/xpprintf.c
+++ /dev/null
@@ -1,1483 +0,0 @@
-/* xpprintf.c */
-// vi: tabstop=4
-
-/* Deuce's vs[n]printf() replacement */
-
-/* $Id: xpprintf.c,v 1.62 2018/04/07 07:21:46 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__linux__) && !defined(_GNU_SOURCE)
-	#define _GNU_SOURCE	// asprintf() on Linux
-#endif
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "genwrap.h"    /* alloca() */
-
-#include "xpprintf.h"
-#include "gen_defs.h"
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-int vasprintf(char **strptr, const char *format, va_list va)
-{
-	va_list	va2;
-	int		ret;
-
-	if (strptr == NULL)
-		return -1;
-	va_copy(va2, va);
-	ret = _vscprintf(format, va);
-	*strptr = (char *)malloc(ret+1);
-	if (*strptr == NULL) {
-		va_end(va2);
-		return -1;
-	}
-	ret = vsprintf(*strptr, format, va2);
-	va_end(va2);
-	return ret;
-}
-
-int asprintf(char **strptr, const char *format, ...)
-{
-	va_list	va;
-	int		ret;
-
-	if (strptr == NULL)
-		return -1;
-	va_start(va, format);
-	ret=vasprintf(strptr, format, va);
-	va_end(va);
-	return ret;
-}
-#endif
-
-/* Maximum length of a format specifier including the % */
-#define MAX_FORMAT_LEN	256
-
-void xp_asprintf_free(char *format)
-{
-	free(format);
-}
-
-int xp_printf_get_type(const char *format)
-{
-	const char	*p;
-	int		modifier=0;
-	int		j;
-	int		correct_type=0;
-
-	if(!*(size_t *)format)
-		return(0);
-	p=format+*(size_t *)format;
-	if(*p!='%')
-		return(0);
-	p++;
-
-	/*
-	 * Skip flags (zero or more)
-	 */
-	j=1;
-	while(j) {
-		switch(*p) {
-			case '#':
-				p++;
-				break;
-			case '-':
-				p++;
-				break;
-			case '+':
-				p++;
-				break;
-			case ' ':
-				p++;
-				break;
-			case '0':
-				p++;
-				break;
-			case '\'':
-				p++;
-				break;
-			default:
-				j=0;
-				break;
-		}
-	}
-	if(*p=='*')
-		return(XP_PRINTF_TYPE_INT);
-	while(*p>= '0' && *p <= '9')
-		p++;
-	if(*p=='.') {
-		p++;
-		if(*p=='*')
-			return(XP_PRINTF_TYPE_INT);
-	}
-	while(*p>= '0' && *p <= '9')
-		p++;
-	switch(*p) {
-		case 'h':
-			modifier='h';
-			p++;
-			if(*p=='h') {
-				p++;
-				modifier+='h'<<8;
-			}
-			break;
-		case 'l':
-			modifier='l';
-			p++;
-			if(*p=='l') {
-				p++;
-				modifier+='l'<<8;
-			}
-			break;
-		case 'j':
-			modifier='j';
-			p++;
-			break;
-		case 't':
-			modifier='t';
-			p++;
-			break;
-		case 'z':
-			modifier='z';
-			p++;
-			break;
-		case 'L':
-			modifier='L';
-			p++;
-			break;
-	}
-	/*
-	 * The next char is now the type... if type is auto, 
-	 * set type to what it SHOULD be
-	 */
-	switch(*p) {
-		/* INT types */
-		case 'd':
-		case 'i':
-			switch(modifier) {
-				case 'h'|'h'<<8:
-					correct_type=XP_PRINTF_TYPE_SCHAR;
-					break;
-				case 'h':
-					correct_type=XP_PRINTF_TYPE_SHORT;
-					break;
-				case 'l':
-					correct_type=XP_PRINTF_TYPE_LONG;
-					break;
-#if defined(XP_PRINTF_TYPE_ULONGLONG)
-				case 'l'|'l'<<8:
-					correct_type=XP_PRINTF_TYPE_LONGLONG;
-					break;
-#endif
-				case 'j':
-					correct_type=XP_PRINTF_TYPE_INTMAX;
-					break;
-				case 't':
-					correct_type=XP_PRINTF_TYPE_PTRDIFF;
-					break;
-				case 'z':
-					/*
-					 * ToDo this is a signed type of same size
-					 * as size_t
-					 */
-					correct_type=XP_PRINTF_TYPE_LONG;
-					break;
-				default:
-					correct_type=XP_PRINTF_TYPE_INT;
-					break;
-			}
-			break;
-		case 'o':
-		case 'u':
-		case 'x':
-		case 'X':
-			switch(modifier) {
-				case 'h'|'h'<<8:
-					correct_type=XP_PRINTF_TYPE_UCHAR;
-					break;
-				case 'h':
-					correct_type=XP_PRINTF_TYPE_USHORT;
-					break;
-				case 'l':
-					correct_type=XP_PRINTF_TYPE_ULONG;
-					break;
-#if defined(XP_PRINTF_TYPE_ULONGLONG)
-				case 'l'|'l'<<8:
-					correct_type=XP_PRINTF_TYPE_ULONGLONG;
-					break;
-#endif
-				case 'j':
-					correct_type=XP_PRINTF_TYPE_UINTMAX;
-					break;
-				case 't':
-					/*
-					 * ToDo this is an unsigned type of same size
-					 * as ptrdiff_t
-					 */
-					correct_type=XP_PRINTF_TYPE_ULONG;
-					break;
-				case 'z':
-					correct_type=XP_PRINTF_TYPE_SIZET;
-					break;
-				default:
-					correct_type=XP_PRINTF_TYPE_UINT;
-					break;
-			}
-			break;
-		case 'a':
-		case 'A':
-		case 'e':
-		case 'E':
-		case 'f':
-		case 'F':
-		case 'g':
-		case 'G':
-			switch(modifier) {
-				case 'L':
-					correct_type=XP_PRINTF_TYPE_LONGDOUBLE;
-					break;
-				case 'l':
-				default:
-					correct_type=XP_PRINTF_TYPE_DOUBLE;
-					break;
-			}
-			break;
-		case 'C':
-			/* ToDo wide chars... not yet supported */
-			correct_type=XP_PRINTF_TYPE_CHAR;
-			break;
-		case 'c':
-			switch(modifier) {
-				case 'l':
-					/* ToDo wide chars... not yet supported */
-				default:
-					correct_type=XP_PRINTF_TYPE_CHAR;
-			}
-			break;
-		case 'S':
-			/* ToDo wide chars... not yet supported */
-			correct_type=XP_PRINTF_TYPE_CHARP;
-			break;
-		case 's':
-			switch(modifier) {
-				case 'l':
-					/* ToDo wide chars... not yet supported */
-				default:
-					correct_type=XP_PRINTF_TYPE_CHARP;
-			}
-			break;
-		case 'p':
-			correct_type=XP_PRINTF_TYPE_VOIDP;
-			break;
-	}
-	return(correct_type);
-}
-
-/*
- * Performs the next replacement in format using the variable
- * specified as the only vararg which is currently the type
- * specified in type (defined in xpprintf.h).
- *
- * Does not currently support the $ argument selector.
- *
- * Currently, the type is not overly useful, but this could be used for
- * automatic type conversions (ie: int to char *).  Right now it just assures
- * that the type passed to sprintf() is the type passed to
- * xp_asprintf_next().
- */
-char* xp_asprintf_next(char *format, int type, ...)
-{
-	va_list vars;
-	char			*p;
-	char			*newbuf;
-	int				i=0,j;
-	unsigned int	ui=0;
-	long int		l=0;
-	unsigned long int	ul=0;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-	long long int	ll=0;
-	unsigned long long int	ull=0;
-#endif
-	double			d=0;
-	long double		ld=0;
-	char*			cp=NULL;
-	void*			pntr=NULL;
-	size_t			s=0;
-	unsigned long	offset=0;
-	unsigned long	offset2=0;
-	size_t			format_len;
-	size_t			this_format_len;
-	char			int_buf[MAX_FORMAT_LEN];
-	char			*entry;
-	char			this_format[MAX_FORMAT_LEN];
-	char			*fmt;
-	int				modifier=0;
-	int				correct_type=0;
-	char			num_str[128];		/* More than enough room for a 256-bit int */
-
-	/*
-	 * Check if we're already done...
-	 */
-	if(!*(size_t *) format)
-		return(format);
-
-	p=format+*(size_t *)format;
-	offset=p-format;
-	format_len=*(size_t *)(format+sizeof(size_t))+sizeof(size_t)*2+1;
-	this_format[0]=0;
-	fmt=this_format;
-	*(fmt++)=*(p++);
-
-	/*
-	 * Skip flags (zero or more)
-	 */
-	j=1;
-	while(j) {
-		switch(*p) {
-			case '#':
-				*(fmt++)=*(p++);
-				break;
-			case '-':
-				*(fmt++)=*(p++);
-				break;
-			case '+':
-				*(fmt++)=*(p++);
-				break;
-			case ' ':
-				*(fmt++)=*(p++);
-				break;
-			case '0':
-				*(fmt++)=*(p++);
-				break;
-			case '\'':
-				*(fmt++)=*(p++);
-				break;
-			default:
-				j=0;
-				break;
-		}
-	}
-
-	/*
-	 * If width is '*' then the argument is an int
-	 * which specifies the width.
-	 */
-	if(*p=='*') {		/* The argument is this width */
-		va_start(vars, type);
-		i=sprintf(int_buf,"%d", va_arg(vars, int));
-		va_end(vars);
-		if(i > 1) {
-			/*
-			 * We must calculate this before we go mucking about
-			 * with format and p
-			 */
-			offset2=p-format;
-			newbuf=(char *)realloc(format, format_len+i-1 /* -1 for the '*' that's already there */);
-			if(newbuf==NULL)
-				return(NULL);
-			format=newbuf;
-			p=format+offset2;
-			/*
-			 * Move trailing end to make space... leaving the * where it
-			 * is so it can be overwritten
-			 */
-			memmove(p+i, p+1, format-p+format_len-1);
-			memcpy(p, int_buf, i);
-			*(size_t *)(format+sizeof(size_t))+=i-1;
-		}
-		else
-			*p=int_buf[0];
-		p=format+offset;
-		*(size_t *)format=p-format;
-		return(format);
-	}
-	/* Skip width */
-	while(*p >= '0' && *p <= '9')
-		*(fmt++)=*(p++);
-	/* Check for precision */
-	if(*p=='.') {
-		*(fmt++)=*(p++);
-		/*
-		 * If the precision is '*' then the argument is an int which
-		 * specifies the precision.
-		 */
-		if(*p=='*') {
-			va_start(vars, type);
-			i=sprintf(int_buf,"%d", va_arg(vars, int));
-			va_end(vars);
-			if(i > 1) {
-				/*
-				 * We must calculate this before we go mucking about
-				 * with format and p
-				 */
-				offset2=p-format;
-				newbuf=(char *)realloc(format, format_len+i-1 /* -1 for the '*' that's already there */);
-				if(newbuf==NULL)
-					return(NULL);
-				format=newbuf;
-				p=format+offset2;
-				/*
-				 * Move trailing end to make space... leaving the * where it
-				 * is so it can be overwritten
-				 */
-				memmove(p+i, p+1, format-p+format_len-1);
-				memcpy(p, int_buf, i);
-				*(size_t *)(format+sizeof(size_t))+=i-1;
-			}
-			else
-				*p=int_buf[0];
-			p=format+offset;
-			*(size_t *)format=p-format;
-			return(format);
-		}
-		/* Skip precision */
-		while(*p >= '0' && *p <= '9')
-			*(fmt++)=*(p++);
-	}
-
-	/* Skip/Translate length modifiers */
-	/*
-	 * ToDo: This could (should?) convert the standard ll modifier
-	 * to the MSVC equivilant (I64 or something?)
-	 * if you do this, the calculations using this_format_len will need
-	 * rewriting.
-	 */
-	switch(*p) {
-		case 'h':
-			modifier='h';
-			*(fmt++)=*(p++);
-			if(*p=='h') {
-				*(fmt++)=*(p++);
-				modifier+='h'<<8;
-			}
-			break;
-		case 'l':
-			modifier='l';
-			*(fmt++)=*(p++);
-			if(*p=='l') {
-				*(fmt++)=*(p++);
-				modifier+='l'<<8;
-			}
-			break;
-		case 'j':
-			modifier='j';
-			*(fmt++)=*(p++);
-			break;
-		case 't':
-			modifier='t';
-			*(fmt++)=*(p++);
-			break;
-		case 'z':
-			modifier='z';
-			*(fmt++)=*(p++);
-			break;
-		case 'L':
-			modifier='L';
-			*(fmt++)=*(p++);
-			break;
-	}
-
-	/*
-	 * The next char is now the type... if type is auto, 
-	 * set type to what it SHOULD be
-	 */
-	if(type==XP_PRINTF_TYPE_AUTO || type & XP_PRINTF_CONVERT) {
-		switch(*p) {
-			/* INT types */
-			case 'd':
-			case 'i':
-				switch(modifier) {
-					case 'h'|'h'<<8:
-						correct_type=XP_PRINTF_TYPE_SCHAR;
-						break;
-					case 'h':
-						correct_type=XP_PRINTF_TYPE_SHORT;
-						break;
-					case 'l':
-						correct_type=XP_PRINTF_TYPE_LONG;
-						break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-					case 'l'|'l'<<8:
-						correct_type=XP_PRINTF_TYPE_LONGLONG;
-						break;
-#endif
-					case 'j':
-						correct_type=XP_PRINTF_TYPE_INTMAX;
-						break;
-					case 't':
-						correct_type=XP_PRINTF_TYPE_PTRDIFF;
-						break;
-					case 'z':
-						/*
-						 * ToDo this is a signed type of same size
-						 * as size_t
-						 */
-						correct_type=XP_PRINTF_TYPE_LONG;
-						break;
-					default:
-						correct_type=XP_PRINTF_TYPE_INT;
-						break;
-				}
-				break;
-			case 'o':
-			case 'u':
-			case 'x':
-			case 'X':
-				switch(modifier) {
-					case 'h'|'h'<<8:
-						correct_type=XP_PRINTF_TYPE_UCHAR;
-						break;
-					case 'h':
-						correct_type=XP_PRINTF_TYPE_USHORT;
-						break;
-					case 'l':
-						correct_type=XP_PRINTF_TYPE_ULONG;
-						break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-					case 'l'|'l'<<8:
-						correct_type=XP_PRINTF_TYPE_ULONGLONG;
-						break;
-#endif
-					case 'j':
-						correct_type=XP_PRINTF_TYPE_UINTMAX;
-						break;
-					case 't':
-						/*
-						 * ToDo this is an unsigned type of same size
-						 * as ptrdiff_t
-						 */
-						correct_type=XP_PRINTF_TYPE_ULONG;
-						break;
-					case 'z':
-						correct_type=XP_PRINTF_TYPE_SIZET;
-						break;
-					default:
-						correct_type=XP_PRINTF_TYPE_UINT;
-						break;
-				}
-				break;
-			case 'a':
-			case 'A':
-			case 'e':
-			case 'E':
-			case 'f':
-			case 'F':
-			case 'g':
-			case 'G':
-				switch(modifier) {
-					case 'L':
-						correct_type=XP_PRINTF_TYPE_LONGDOUBLE;
-						break;
-					case 'l':
-					default:
-						correct_type=XP_PRINTF_TYPE_DOUBLE;
-						break;
-				}
-				break;
-			case 'C':
-				/* ToDo wide chars... not yet supported */
-				correct_type=XP_PRINTF_TYPE_CHAR;
-				break;
-			case 'c':
-				switch(modifier) {
-					case 'l':
-						/* ToDo wide chars... not yet supported */
-					default:
-						correct_type=XP_PRINTF_TYPE_CHAR;
-				}
-				break;
-			case 'S':
-				/* ToDo wide chars... not yet supported */
-				correct_type=XP_PRINTF_TYPE_CHARP;
-				break;
-			case 's':
-				switch(modifier) {
-					case 'l':
-						/* ToDo wide chars... not yet supported */
-					default:
-						correct_type=XP_PRINTF_TYPE_CHARP;
-				}
-				break;
-			case 'p':
-				correct_type=XP_PRINTF_TYPE_VOIDP;
-				break;
-		}
-	}
-	if(type==XP_PRINTF_TYPE_AUTO)
-		type=correct_type;
-
-	/*
-	 * Copy the arg to the passed type.
-	 */
-	va_start(vars, type);
-	switch(type & ~XP_PRINTF_CONVERT) {
-		case XP_PRINTF_TYPE_CHAR:
-		case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-			i=va_arg(vars, int);
-			break;
-		case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-			/*
-			 * ToDo: If it's a %c, and the value is 0, should it output [null]
-			 * or should it terminate the string?
-			 */
-			ui=va_arg(vars, unsigned int);
-			break;
-		case XP_PRINTF_TYPE_LONG:
-			l=va_arg(vars, long);
-			break;
-		case XP_PRINTF_TYPE_ULONG:
-			ul=va_arg(vars, unsigned long int);
-			break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-		case XP_PRINTF_TYPE_LONGLONG:
-			ll=va_arg(vars, long long int);
-			break;
-		case XP_PRINTF_TYPE_ULONGLONG:
-			ull=va_arg(vars, unsigned long long int);
-			break;
-#endif
-		case XP_PRINTF_TYPE_CHARP:
-			cp=va_arg(vars, char*);
-			break;
-		case XP_PRINTF_TYPE_DOUBLE:
-			d=va_arg(vars, double);
-			break;
-		case XP_PRINTF_TYPE_LONGDOUBLE:
-			ld=va_arg(vars, long double);
-			break;
-		case XP_PRINTF_TYPE_VOIDP:
-			pntr=va_arg(vars, void*);
-			break;
-		case XP_PRINTF_TYPE_SIZET:
-			s=va_arg(vars, size_t);
-			break;
-	}
-	va_end(vars);
-
-	if(type & XP_PRINTF_CONVERT) {
-		type=type & ~XP_PRINTF_CONVERT;
-		if(type != correct_type) {
-			switch(correct_type) {
-				case XP_PRINTF_TYPE_CHAR:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							i=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							i=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							i=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							i=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							i=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							if(cp)
-								i=*cp;
-							else
-								i=0;
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							i=(int)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							i=(int)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							i=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							i=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_INT:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							i=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							i=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							i=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							i=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							i=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							i=strtol(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							i=(int)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							i=(int)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							i=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							i=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_UINT:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ui=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ui=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ui=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ui=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ui=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							ui=strtoul(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ui=(unsigned)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ui=(unsigned)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ui=(unsigned long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ui=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_LONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							l=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							l=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							l=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							l=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							l=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							l=strtol(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							l=(long)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							l=(long)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							l=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							l=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_ULONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ul=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ul=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ul=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ul=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ul=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							ul=strtoul(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ul=(unsigned long)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ul=(unsigned long)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ul=(unsigned long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ul=s;
-							break;
-					}
-					break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-				case XP_PRINTF_TYPE_LONGLONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ll=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ll=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ll=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ll=ul;
-							break;
-						case XP_PRINTF_TYPE_LONGLONG:
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ll=ull;
-							break;
-						case XP_PRINTF_TYPE_CHARP:
-							ll=strtoll(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ll=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ll=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ll=(long long)((intptr_t)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ll=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_ULONGLONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ull=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ull=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ull=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ull=ul;
-							break;
-						case XP_PRINTF_TYPE_LONGLONG:
-							ull=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							break;
-						case XP_PRINTF_TYPE_CHARP:
-							ull=strtoull(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ull=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ull=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ull=(unsigned long long int)((uintptr_t)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ull=s;
-							break;
-					}
-					break;
-#endif
-				case XP_PRINTF_TYPE_CHARP:
-					num_str[0]=0;
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							sprintf(num_str, "%d", i);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							sprintf(num_str, "%u", i);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							sprintf(num_str, "%ld", l);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							sprintf(num_str, "%lu", ul);
-							cp=num_str;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							/* ToDo MSVC doesn't like this */
-							sprintf(num_str, "%lld", ll);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							/* ToDo MSVC doesn't like this */
-							sprintf(num_str, "%llu", ull);
-							cp=num_str;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							sprintf(num_str, "%f", d);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							sprintf(num_str, "%Lf", ld);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							/* ToDo: Or should this pretend it's a char *? */
-							sprintf(num_str, "%p", pntr);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							sprintf(num_str, "%zu", s);
-							cp=num_str;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_DOUBLE:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							d=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							d=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							d=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							d=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							d=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							d=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							d=strtod(cp, NULL);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							d=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							d=(double)((long int)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							d=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_LONGDOUBLE:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ld=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ld=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ld=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ld=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ld=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ld=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							/* strtold() isn't ubiquitous yet */
-							ld=strtod(cp, NULL);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ld=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ld=(long double)((long int)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ld=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_VOIDP:
-					/* ToDo: this is nasty... */
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							pntr=(void *)((intptr_t)i);
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							pntr=(void *)((uintptr_t)ui);
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							pntr=(void *)((intptr_t)l);
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							pntr=(void *)((uintptr_t)ul);
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							pntr=(void *)((intptr_t)ll);
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							pntr=(void *)((uintptr_t)ull);
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							pntr=(void *)(cp);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							pntr=(void *)((intptr_t)d);
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							pntr=(void *)((intptr_t)ld);
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							pntr=(void *)((intptr_t)s);
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_SIZET:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							s=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							s=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							s=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							s=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							s=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							s=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							s=strtol(cp, NULL, 0);	/* was strtoll */
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							s=(size_t)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							s=(size_t)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							s=(size_t)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							break;
-					}
-					break;
-			}
-			type=correct_type;
-		}
-	}
-
-	/* The next char is now the type... check the length required to spore the printf()ed string */
-	*(fmt++)=*p;
-	*fmt=0;
-	entry=NULL;
-	switch(type) {
-		case XP_PRINTF_TYPE_CHAR:	/* Also includes char and short */
-		case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-			j=asprintf(&entry, this_format, i);
-			break;
-		case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-			j=asprintf(&entry, this_format, ui);
-			break;
-		case XP_PRINTF_TYPE_LONG:
-			j=asprintf(&entry, this_format, l);
-			break;
-		case XP_PRINTF_TYPE_ULONG:
-			j=asprintf(&entry, this_format, ul);
-			break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-		case XP_PRINTF_TYPE_LONGLONG:
-			j=asprintf(&entry, this_format, ll);
-			break;
-		case XP_PRINTF_TYPE_ULONGLONG:
-			j=asprintf(&entry, this_format, ull);
-			break;
-#endif
-		case XP_PRINTF_TYPE_CHARP:
-			if(cp==NULL)
-				j=asprintf(&entry, this_format, "<null>");
-			else
-				j=asprintf(&entry, this_format, cp);
-			break;
-		case XP_PRINTF_TYPE_DOUBLE:
-			j=asprintf(&entry, this_format, d);
-			break;
-		case XP_PRINTF_TYPE_LONGDOUBLE:
-			j=asprintf(&entry, this_format, ld);
-			break;
-		case XP_PRINTF_TYPE_VOIDP:
-			j=asprintf(&entry, this_format, pntr);
-			break;
-		case XP_PRINTF_TYPE_SIZET:
-			j=asprintf(&entry, this_format, s);
-			break;
-		default:
-			j = -1;
-			entry = NULL;
-			break;
-	}
-
-	if (j<0) {
-		FREE_AND_NULL(entry);
-		entry = strdup("<error>");
-		j=strlen(entry);
-	}
-
-	this_format_len=strlen(this_format);
-	if(j>=0) {
-		/*
-		 * This isn't necessary if it's already the right size,
-		 * or it's too large... this realloc() should only need to grow
-		 * the string.
-		 */
-		if(format_len < (format_len-this_format_len+j)) {
-			newbuf=(char *)realloc(format, format_len-this_format_len+j);
-			if(newbuf==NULL) {
-				FREE_AND_NULL(entry);
-				return(NULL);
-			}
-			format=newbuf;
-		}
-		/* Move trailing end to make space */
-		memmove(format+offset+j, format+offset+this_format_len, format_len-offset-this_format_len);
-		memcpy(format+offset, entry, j);
-		p=format+offset+j;
-	}
-	else
-		p=format+offset+this_format_len;
-	FREE_AND_NULL(entry);
-
-	*(size_t *)(format+sizeof(size_t))=format_len-this_format_len+j-sizeof(size_t)*2-1;
-
-	/*
-	 * Search for next non-%% separateor and set offset
-	 * to zero if none found for wrappers to know when
-	 * they're done.
-	 */
-	for(; *p; p++) {
-		if(*p=='%') {
-			if(*(p+1) == '%')
-				p++;
-			else
-				break;
-		}
-	}
-	if(!*p)
-		*(size_t *)format=0;
-	else
-		*(size_t *)format=p-format;
-	return(format);
-}
-
-char* xp_asprintf_start(const char *format)
-{
-	char	*ret;
-	char	*p;
-
-	ret=(char *)malloc(strlen(format)+1+((sizeof(size_t)*2)));
-	if(ret==NULL)
-		return(NULL);
-	/* Place current offset at the start of the buffer */
-	strcpy(ret+sizeof(size_t)*2,format);
-	/* Place the current length after the offset */
-	*(size_t *)(ret+sizeof(size_t))=strlen(format);
-
-	/*
-	 * Find the next non %% format, leaving %% as it is
-	 */
-	for(p=ret+sizeof(size_t)*2; *p; p++) {
-		if(*p=='%') {
-			if(*(p+1) == '%')
-				p++;
-			else
-				break;
-		}
-	}
-	if(!*p)
-		*(size_t *)ret=0;
-	else
-		*(size_t *)ret=p-ret;
-	return(ret);
-}
-
-char* xp_asprintf_end(char *format, size_t *lenret)
-{
-	char	*p;
-	size_t	len;
-	size_t	end_len;
-
-	len=*(size_t *)(format+sizeof(size_t));
-	end_len=len;
-	for(p=format+sizeof(size_t)*2; len; p++, len--) {
-		if(*p=='%' && *(p+1)=='%') {
-			memmove(p, p+1, len--);
-			end_len--;
-		}
-	}
-	memmove(format, format+sizeof(size_t)*2, end_len+1);
-	if(lenret)
-		*lenret=end_len;
-	return(format);
-}
-
-char* xp_vasprintf(const char *format, va_list va)
-{
-	char	*working;
-	char	*next;
-	int		type;
-
-	next=xp_asprintf_start(format);
-	if(next==NULL)
-		return(NULL);
-	working=next;
-	while(*(size_t *)working) {
-		type=xp_printf_get_type(working);
-		switch(type) {
-			case 0:
-				free(working);
-				return(NULL);
-			case XP_PRINTF_TYPE_CHAR:
-			case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-				next=xp_asprintf_next(working, type, va_arg(va, int));
-				break;
-			case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned int));
-				break;
-			case XP_PRINTF_TYPE_LONG:
-				next=xp_asprintf_next(working, type, va_arg(va, long));
-				break;
-			case XP_PRINTF_TYPE_ULONG:
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned long));
-				break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-			case XP_PRINTF_TYPE_LONGLONG:
-				next=xp_asprintf_next(working, type, va_arg(va, long long));
-				break;
-			case XP_PRINTF_TYPE_ULONGLONG:
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned long long));
-				break;
-#endif
-			case XP_PRINTF_TYPE_CHARP:
-				next=xp_asprintf_next(working, type, va_arg(va, char *));
-				break;
-			case XP_PRINTF_TYPE_DOUBLE:
-				next=xp_asprintf_next(working, type, va_arg(va, double));
-				break;
-			case XP_PRINTF_TYPE_LONGDOUBLE:
-				next=xp_asprintf_next(working, type, va_arg(va, long double));
-				break;
-			case XP_PRINTF_TYPE_VOIDP:
-				next=xp_asprintf_next(working, type, va_arg(va, void *));
-				break;
-			case XP_PRINTF_TYPE_SIZET:
-				next=xp_asprintf_next(working, type, va_arg(va, size_t));
-				break;
-		}
-		if(next==NULL) {
-			free(working);
-			return(NULL);
-		}
-		working=next;
-	}
-	next=xp_asprintf_end(working, NULL);
-	if(next==NULL) {
-		free(working);
-		return(NULL);
-	}
-	return(next);
-}
-
-char* xp_asprintf(const char *format, ...)
-{
-	char	*ret;
-	va_list	va;
-
-	va_start(va, format);
-	ret=xp_vasprintf(format, va);
-	va_end(va);
-	return(ret);
-}
-
-#if defined(XP_PRINTF_TEST)
-
-int main(int argc, char *argv[])
-{
-	char	*format;
-	char	*p;
-	int	i,j;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-	long long L;
-#endif
-	long l;
-	char *cp;
-	double d;
-	float f;
-	long double D;
-
-	p=xp_asprintf("%%%%%*.*f %% %%%ss %cs %*.*lu",3,3,123.123456789,"%llutesting%",32,3,3,123);
-	printf("%s\n",p);
-	free(p);
-	if(argc < 2)
-		return(1);
-
-	format=argv[1];
-	format=xp_asprintf_start(format);
-	for(j=2; j<argc; j++) {
-		switch(argv[j][0]) {
-			case 'f':
-				f=(float)atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_FLOAT,f);
-				break;
-			case 'd':
-				d=atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_DOUBLE,d);
-				break;
-			case 'D':
-				/* Don't know of a thing that converts a string to a long double */
-				D=atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONGDOUBLE,D);
-				break;
-			case 'i':
-				i=atoi(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_INT,i);
-				break;
-			case 'l':
-				l=atol(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONG,l);
-				break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-			case 'L':
-				L=strtoll(argv[j]+1, NULL, 10);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONGLONG,L);
-				break;
-#endif
-			case 's':
-				cp=argv[j]+1;
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_CHARP,cp);
-				break;
-		}
-		if(p==NULL) {
-			printf("Failed converting on item after %s\n",format);
-			return(1);
-		}
-		format=p;
-	}
-	p=xp_asprintf_end(format, NULL);
-	printf("At end, value is: '%s'\n",p);
-	free(p);
-}
-
-#endif
diff --git a/xpdev/xpprintf.h b/xpdev/xpprintf.h
deleted file mode 100644
index 940c68e..0000000
--- a/xpdev/xpprintf.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Deuce's vs[n]printf() replacement */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPPRINTF_H_
-#define _XPPRINTF_H_
-
-#include <stdarg.h>
-#include "wrapdll.h"
-
-/* Supported printf argument types */
-#define XP_PRINTF_TYPE_AUTO			0
-#define XP_PRINTF_TYPE_INT			1
-#define XP_PRINTF_TYPE_UINT			2
-#define XP_PRINTF_TYPE_CHAR			3		/* Assumes a signed char */
-#define XP_PRINTF_TYPE_SCHAR		XP_PRINTF_TYPE_INT
-#define XP_PRINTF_TYPE_UCHAR		XP_PRINTF_TYPE_UINT
-#define XP_PRINTF_TYPE_SHORT		XP_PRINTF_TYPE_INT
-#define XP_PRINTF_TYPE_USHORT		XP_PRINTF_TYPE_UINT
-#define XP_PRINTF_TYPE_LONG			4
-#define XP_PRINTF_TYPE_ULONG		5
-#if !defined(_MSC_VER) && !defined(__BORLANDC__)
-	#define XP_PRINTF_TYPE_LONGLONG		6
-	#define XP_PRINTF_TYPE_ULONGLONG	7
-#endif
-#define XP_PRINTF_TYPE_CHARP		8
-#define XP_PRINTF_TYPE_DOUBLE		9
-#define XP_PRINTF_TYPE_FLOAT		XP_PRINTF_TYPE_DOUBLE	/* Floats are promoted to doubles */
-#define XP_PRINTF_TYPE_LONGDOUBLE	10
-#define XP_PRINTF_TYPE_VOIDP		11
-#define XP_PRINTF_TYPE_INTMAX		12	/* Not currently implemented */
-#define XP_PRINTF_TYPE_UINTMAX		13	/* Not currently implemented */
-#define XP_PRINTF_TYPE_PTRDIFF		14	/* Not currently implemented */
-#define XP_PRINTF_TYPE_SIZET		15
-
-#define XP_PRINTF_CONVERT		(1<<31)	/* OR with type to request a conversion - Not implemented */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-DLLEXPORT void xp_asprintf_free(char *format);
-DLLEXPORT char* xp_asprintf_start(const char *format);
-DLLEXPORT char* xp_asprintf_next(char *format, int type, ...);
-DLLEXPORT char* xp_asprintf_end(char *format, size_t *endlen);
-DLLEXPORT char* xp_asprintf(const char *format, ...);
-DLLEXPORT char* xp_vasprintf(const char *format, va_list va);
-DLLEXPORT int xp_printf_get_type(const char *format);
-#if defined(_MSC_VER) || defined(__MSVCRT__) || defined(__BORLANDC__)
-DLLEXPORT int vasprintf(char **strptr, const char *format, va_list va);
-DLLEXPORT int asprintf(char **strptr, const char *format, ...);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/xpdev/xpsem.c b/xpdev/xpsem.c
deleted file mode 100644
index 2c63ce7..0000000
--- a/xpdev/xpsem.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * $Id: xpsem.c,v 1.13 2012/01/26 01:44:02 deuce Exp $
- *
- * Copyright (C) 2000 Jason Evans <jasone@freebsd.org>.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice(s), this list of conditions and the following disclaimer as
- *    the first lines of this file unmodified other than the possible
- *    addition of one or more copyright notices.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice(s), this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc_r/uthread/uthread_sem.c,v 1.3.2.1 2000/07/18 02:05:57 jasone Exp $
- */
-
-#include <errno.h>
-#include "xpsem.h"
-#include <pthread.h>
-#include <sys/time.h>
-#include <stdlib.h>
-#include "gen_defs.h"
-#include "genwrap.h"
-
-int
-xp_sem_init(xp_sem_t *sem, int pshared, unsigned int value)
-{
-	int	retval;
-
-	/*
-	 * Range check the arguments.
-	 */
-	if (pshared != 0) {
-		/*
-		 * The user wants a semaphore that can be shared among
-		 * processes, which this implementation can't do.  Sounds like a
-		 * permissions problem to me (yeah right).
-		 */
-		errno = EPERM;
-		retval = -1;
-		goto RETURN;
-	}
-
-	if (value > XP_SEM_VALUE_MAX) {
-		errno = EINVAL;
-		retval = -1;
-		goto RETURN;
-	}
-
-	*sem = (xp_sem_t)malloc(sizeof(struct xp_sem));
-	if (*sem == NULL) {
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-
-	/*
-	 * Initialize the semaphore.
-	 */
-	if (pthread_mutex_init(&(*sem)->lock, NULL) != 0) {
-		free(*sem);
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-
-	if (pthread_cond_init(&(*sem)->gtzero, NULL) != 0) {
-		while(pthread_mutex_destroy(&(*sem)->lock)==EBUSY)
-			SLEEP(1);
-		free(*sem);
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-	
-	(*sem)->count = (uint32_t)value;
-	(*sem)->nwaiters = 0;
-	(*sem)->magic = XP_SEM_MAGIC;
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_destroy(xp_sem_t *sem)
-{
-	int	retval;
-	
-	_SEM_CHECK_VALIDITY(sem);
-
-	/* Make sure there are no waiters. */
-	pthread_mutex_lock(&(*sem)->lock);
-	if ((*sem)->nwaiters > 0) {
-		pthread_mutex_unlock(&(*sem)->lock);
-		errno = EBUSY;
-		retval = -1;
-		goto RETURN;
-	}
-	pthread_mutex_unlock(&(*sem)->lock);
-	
-	while(pthread_mutex_destroy(&(*sem)->lock)==EBUSY)
-		SLEEP(1);
-	while(pthread_cond_destroy(&(*sem)->gtzero)==EBUSY)
-		SLEEP(1);
-	(*sem)->magic = 0;
-
-	free(*sem);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-xp_sem_t *
-xp_sem_open(const char *name, int oflag, ...)
-{
-	errno = ENOSYS;
-	return XP_SEM_FAILED;
-}
-
-int
-xp_sem_close(xp_sem_t *sem)
-{
-	errno = ENOSYS;
-	return -1;
-}
-
-int
-xp_sem_unlink(const char *name)
-{
-	errno = ENOSYS;
-	return -1;
-}
-
-int
-xp_sem_wait(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	while ((*sem)->count == 0) {
-		(*sem)->nwaiters++;
-		pthread_cond_wait(&(*sem)->gtzero, &(*sem)->lock);
-		(*sem)->nwaiters--;
-	}
-	(*sem)->count--;
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-
-	return retval;
-}
-
-int
-xp_sem_trywait(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	if ((*sem)->count > 0) {
-		(*sem)->count--;
-		retval = 0;
-	} else {
-		errno = EAGAIN;
-		retval = -1;
-	}
-	
-	pthread_mutex_unlock(&(*sem)->lock);
-
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_post(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	(*sem)->count++;
-	if ((*sem)->nwaiters > 0) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&(*sem)->gtzero);
-	}
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_getvalue(xp_sem_t *sem, int *sval)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-	*sval = (int)(*sem)->count;
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_setvalue(xp_sem_t *sem, int sval)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-	(*sem)->count=(uint32_t)sval;
-	if (((*sem)->nwaiters > 0) && sval) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&(*sem)->gtzero);
-	}
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_timedwait(xp_sem_t *sem, const struct timespec *abs_timeout)
-{
-	int	retval=0;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	while ((*sem)->count == 0) {
-		(*sem)->nwaiters++;
-		retval=pthread_cond_timedwait(&(*sem)->gtzero, &(*sem)->lock, abs_timeout);
-		(*sem)->nwaiters--;
-		if(retval)  {
-			errno=retval;
-			retval=-1;
-			break;
-		}
-	}
-	if(retval==0)
-		(*sem)->count--;
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-  RETURN:
-
-	return retval;
-}
diff --git a/xpdev/xpsem.h b/xpdev/xpsem.h
deleted file mode 100644
index 1caa83c..0000000
--- a/xpdev/xpsem.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef _XPSEM_H_
-#define _XPSEM_H_
-
-/*
- * $Id: xpsem.h,v 1.10 2012/01/26 01:44:02 deuce Exp $
- *
- * semaphore.h: POSIX 1003.1b semaphores
-*/
-
-/*-
- * Copyright (c) 1996, 1997
- *	HD Associates, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by HD Associates, Inc
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL HD ASSOCIATES OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/posix4/semaphore.h,v 1.6 2000/01/20 07:55:42 jasone Exp $
- */
-
-#include <limits.h>
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <inttypes.h>
-
-/* Opaque type definition. */
-struct xp_sem;
-typedef struct xp_sem *xp_sem_t;
-
-#define XP_SEM_FAILED	((xp_sem_t *)0)
-#define XP_SEM_VALUE_MAX	UINT_MAX
-
-#if defined(__solaris__)
-typedef unsigned int	uint32_t;
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-int	 xp_sem_init (xp_sem_t *, int, unsigned int);
-int	 xp_sem_destroy (xp_sem_t *);
-xp_sem_t	*xp_sem_open (const char *, int, ...);
-int	 xp_sem_close (xp_sem_t *);
-int	 xp_sem_unlink (const char *);
-int	 xp_sem_wait (xp_sem_t *);
-int	 xp_sem_trywait (xp_sem_t *);
-int	 xp_sem_post (xp_sem_t *);
-int	 xp_sem_getvalue (xp_sem_t *, int *);
-int	 xp_sem_setvalue (xp_sem_t *, int);
-int  xp_sem_timedwait (xp_sem_t *sem, const struct timespec *abs_timeout);
-#if defined(__cplusplus)
-}
-#endif
-
-/*
-* $Id: xpsem.h,v 1.10 2012/01/26 01:44:02 deuce Exp $
-*/
-
-/* Begin thread_private.h kluge */
-/*
- * These come out of (or should go into) thread_private.h - rather than have 
- * to copy (or symlink) the files from the source tree these definitions are 
- * inlined here.  Obviously these go away when this module is part of libc.
-*/
-
-struct xp_sem {
-#define XP_SEM_MAGIC       ((uint32_t) 0x09fa4012)
-        uint32_t       magic;
-        pthread_mutex_t lock;
-        pthread_cond_t  gtzero;
-        uint32_t       count;
-        uint32_t       nwaiters;
-};
-
-extern pthread_once_t _thread_init_once;
-extern int _threads_initialized;
-extern void  _thread_init (void);
-#define THREAD_INIT() \
-	(void) pthread_once(&_thread_init_once, _thread_init)
-#define THREAD_SAFE() \
-	(_threads_initialized != 0)
-
-#define _SEM_CHECK_VALIDITY(sem)		\
-	if (sem==NULL || (*(sem))->magic != XP_SEM_MAGIC) {	\
-		errno = EINVAL;			\
-		retval = -1;			\
-		goto RETURN;			\
-	}
-
-struct pthread_rwlockattr {
-        int             pshared;
-	};
-
-/* End thread_private.h kluge */
-
-#endif /* _XPSEM_H_ */
diff --git a/xpdev/xptime.c b/xpdev/xptime.c
deleted file mode 100644
index faa51a6..0000000
--- a/xpdev/xptime.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* $Id: xptime.c,v 1.4 2018/02/14 20:44:00 deuce Exp $ */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <string.h>
-#ifndef __unix__
-#include <dos.h>
-#endif
-#include <ctype.h>
-#define USE_SNPRINTF	/* we don't need safe_snprintf for this project */
-#include "genwrap.h"
-#include "datewrap.h"
-#include "xpdatetime.h"
-
-int main(int argc, char **argv)
-{
-	char			str[256];
-	char			revision[16];
-	time_t			t;
-	struct tm*		tp;
-	struct tm		tm;
-	int				argn=1;
-	xpDateTime_t	xpDateTime;
-
-	printf("\n");
-	DESCRIBE_COMPILER(str);
-	sscanf("$Revision: 1.4 $", "%*s %s", revision);
-
-	printf("Rev %s Built " __DATE__ " " __TIME__ " with %s\n\n", revision, str);
-
-	if(argc<2)
-		printf("usage: xptime [-z] <date_str || time_t>\n\n");
-
-	if(argc>1 && stricmp(argv[1],"-z")==0)	{ /* zulu/GMT/UTC timezone */
-		printf("Setting timezone to Zulu/GMT/UTC\n\n");
-		putenv("TZ=UTC0");
-		argn++;
-	}
-	tzset();
-
-	if((t=checktime())!=0L)
-		printf("!time() result diverges from standard by: %ld seconds\n\n",t);
-
-	printf("Current timezone: %d\n", xpTimeZone_local());
-	printf("\n");
-
-	if(argc>argn && strlen(argv[argn]) > 10) {
-		xpDateTime=isoDateTimeStr_parse(argv[argn]);
-		t=xpDateTime_to_time(xpDateTime);
-		printf("Using specified date and time:\n");
-	} else if(argc>argn) {
-		printf("Using specified time_t value:\n");
-		t=strtoul(argv[argn],NULL,0);
-		xpDateTime=time_to_xpDateTime(t,xpTimeZone_LOCAL);
-	} else {
-		printf("Using current time:\n");
-		xpDateTime=xpDateTime_now();
-		t=time(NULL);
-	}
-	printf("%-8s %-10ld  (0x%08lX)    ISO %s\n"
-		,"time_t"
-		,(long)t, (long)t
-		,xpDateTime_to_isoDateTimeStr(xpDateTime
-			,NULL, " ", NULL
-			,/* precision: */3
-			, str, sizeof(str)));
-	{
-		const char* fmt="%-8s %.24s    ISO %s\n";
-
-		if((tp=localtime_r(&t, &tm))==NULL)
-			printf("localtime() failure\n");
-		else
-			printf(fmt
-				,"local"
-				,asctime(tp)
-				,xpDateTime_to_isoDateTimeStr(
-					time_to_xpDateTime(t, xpTimeZone_LOCAL)
-					,NULL, " ", NULL
-					,/*precision: */0
-					,str, sizeof(str))
-				);
-		if((tp=gmtime_r(&t, &tm))==NULL)
-			printf("gmtime() failure\n");
-		else
-			printf(fmt
-				,"GMT"
-				,asctime(tp)
-				,xpDateTime_to_isoDateTimeStr(
-					gmtime_to_xpDateTime(t)
-					,NULL, " ", NULL
-					,/*precision: */0
-					,str, sizeof(str))
-				);
-	}
-
-	return(0);
-}
-- 
GitLab