summaryrefslogtreecommitdiffstats
path: root/rbutil
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2007-09-02 18:16:10 +0000
committerDominik Wenger <domonoky@googlemail.com>2007-09-02 18:16:10 +0000
commit53986b365cf820d2dd7d7070cfe88b7330fb408d (patch)
tree6aa540d2c09183604e70a9d60641911e6f435ff9 /rbutil
parente73f287b5aa14a209627617cbab2f219be59b775 (diff)
downloadrockbox-53986b365cf820d2dd7d7070cfe88b7330fb408d.tar.gz
rockbox-53986b365cf820d2dd7d7070cfe88b7330fb408d.zip
rbutil: removed the wx version of rbutil.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14581 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r--rbutil/Makefile78
-rwxr-xr-xrbutil/Makefile.macosx218
-rw-r--r--rbutil/archos.icobin21606 -> 0 bytes
-rw-r--r--rbutil/autodetection.cpp274
-rw-r--r--rbutil/autodetection.h90
-rwxr-xr-xrbutil/bootloaders.cpp549
-rwxr-xr-xrbutil/bootloaders.h51
-rw-r--r--rbutil/copying.txt370
-rw-r--r--rbutil/credits.h52
-rwxr-xr-xrbutil/h100sums.h23
-rwxr-xr-xrbutil/h120sums.h23
-rwxr-xr-xrbutil/h300sums.h17
-rw-r--r--rbutil/icons/Makefile39
-rw-r--r--rbutil/icons/bin2c.c172
-rw-r--r--rbutil/icons/bootloader_btn.pngbin3345 -> 0 bytes
-rw-r--r--rbutil/icons/doom_btn.pngbin2286 -> 0 bytes
-rw-r--r--rbutil/icons/font_btn.pngbin1926 -> 0 bytes
-rw-r--r--rbutil/icons/rbinstall_btn.pngbin3026 -> 0 bytes
-rw-r--r--rbutil/icons/rembootloader_btn.pngbin3693 -> 0 bytes
-rw-r--r--rbutil/icons/remrb_btn.pngbin3634 -> 0 bytes
-rw-r--r--rbutil/icons/talkfile_btn.pngbin3776 -> 0 bytes
-rw-r--r--rbutil/icons/themes_btn.pngbin2238 -> 0 bytes
-rw-r--r--rbutil/install_3d.xpm70
-rw-r--r--rbutil/install_dialogs.cpp948
-rw-r--r--rbutil/install_dialogs.h261
-rw-r--r--rbutil/installlog.cpp150
-rw-r--r--rbutil/installlog.h61
-rwxr-xr-xrbutil/irivertools.cpp604
-rwxr-xr-xrbutil/irivertools.h66
-rwxr-xr-xrbutil/md5sum.cpp298
-rwxr-xr-xrbutil/md5sum.h51
-rw-r--r--rbutil/rblogo.xpm254
-rw-r--r--rbutil/rbutil-rc.rc27
-rw-r--r--rbutil/rbutil.cbp196
-rw-r--r--rbutil/rbutil.cpp783
-rw-r--r--rbutil/rbutil.h176
-rw-r--r--rbutil/rbutil.ini299
-rw-r--r--rbutil/rbutil.iss55
-rwxr-xr-xrbutil/rbutil.r2675
-rw-r--r--rbutil/rbutilApp.cpp288
-rw-r--r--rbutil/rbutilApp.h53
-rw-r--r--rbutil/rbutilCtrls.cpp628
-rw-r--r--rbutil/rbutilCtrls.h286
-rw-r--r--rbutil/rbutilFrm.cpp1164
-rw-r--r--rbutil/rbutilFrm.h135
-rw-r--r--rbutil/rbutilFrm_XPM.xpm666
-rwxr-xr-xrbutil/rbutilqt/irivertools/mksums.pl (renamed from rbutil/mksums.pl)0
-rw-r--r--rbutil/talkfile.cpp204
-rw-r--r--rbutil/talkfile.h101
-rw-r--r--rbutil/wizard.xpm689
-rw-r--r--rbutil/wx_pch.h43
51 files changed, 0 insertions, 13187 deletions
diff --git a/rbutil/Makefile b/rbutil/Makefile
deleted file mode 100644
index fe3b5b74a1..0000000000
--- a/rbutil/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-
-# Unix-style Makefile for rbutil
-
-#detect cygwin
-ifneq ($(strip $(shell gcc -v 2>&1 | grep "cygwin")),)
- __CYGWIN__ := 1
-endif
-
-CXX=$(shell $(PREFIX)wx-config --version=2.8 --cxx)
-INC = `$(PREFIX)wx-config --version=2.8 --cxxflags`
-LIBS = `$(PREFIX)wx-config --version=2.8 --libs`
-CFLAGS= -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE
-OBJS=rbutil.o rbutilApp.o rbutilFrm.o rbutilCtrls.o install_dialogs.o bootloaders.o installlog.o ipodpatcher/ipodpatcher.o sansapatcher/sansapatcher.o irivertools.o md5sum.o autodetection.o talkfile.o
-
-ifdef __CYGWIN__
-OBJS+=ipodpatcher/ipodio-win32.o sansapatcher/sansaio-win32.o
-CFLAGS+= -mno-cygwin -mwindows
-else
-OBJS+=ipodpatcher/ipodio-posix.o sansapatcher/sansaio-posix.o
-endif
-
-
-EXTRAOBJS = $(wildcard icons/*.o)
-
-SILENT = @
-
-# Install with / as root by default
-ifndef DESTDIR
- DESTDIR=""
-endif
-
-# type "make WIN=1" for a Windows build using the Debian mingw cross-compiler
-ifdef WIN
- CROSS=i586-mingw32msvc-
- WINDRES=i586-mingw32msvc-windres
- EXT=.exe
- PREFIX=/usr/i586-mingw32msvc/bin/
- OBJS+=rbutil-rc.o
-endif
-
-.PHONY: all
-all: icons rbutil$(EXT)
-
-.cpp.o :
- $(SILENT) echo CXX $<
- $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $<
-
-.c.o :
- $(SILENT) echo CC $<
- $(SILENT) $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-rbutil-rc.o: rbutil-rc.rc
- $(WINDRES) -O coff -F pe-i386 -o $@ $<
-
-rbutil$(EXT): $(OBJS)
- $(SILENT) echo CXX $<
- $(SILENT) $(CXX) -o $@ $(OBJS) $(EXTRAOBJS) $(LIBS)
-
-.PHONY: icons
-icons:
- $(SILENT) $(MAKE) -C icons
-
-.PHONY: clean
-clean:
- rm -f rbutil rbutil.exe $(OBJS) *~
- make -C icons clean
-
-.PHONY: install
-install:
- install -D rbutil$(EXT) $(DESTDIR)/usr/bin/rbutil$(EXT)
diff --git a/rbutil/Makefile.macosx b/rbutil/Makefile.macosx
deleted file mode 100755
index 6939280e16..0000000000
--- a/rbutil/Makefile.macosx
+++ /dev/null
@@ -1,218 +0,0 @@
-# =========================================================================
-# This makefile was generated by
-# Bakefile 0.2.1 (http://bakefile.sourceforge.net)
-# Do not modify, all changes will be overwritten!
-# =========================================================================
-
-
-
-
-srcdir = /Users/dave/rockbox/rockbox-devel/rbutil
-top_srcdir = /Users/dave/src/wxMac-2.8.0/
-BK_DEPS = /Users/dave/src/wxMac-2.8.0/osx_build/bk-deps
-wx_top_builddir = /Users/dave/src/wxMac-2.8.0/osx_build
-
-prefix = /usr/local
-exec_prefix = ${prefix}
-INSTALL = /usr/bin/install -c
-EXEEXT =
-WINDRES =
-REZ = /Developer/Tools/Rez
-SETFILE = /Developer/Tools/SetFile
-NM = nm
-LIBS = -lz -lpthread -liconv
-LDFLAGS_GUI =
-CXX = g++
-CXXFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing -fno-common
-CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon
-RBUTIL_CFLAGS = $(CXXFLAGS) -DRBUTIL -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon
-LDFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System
-WX_LIB_FLAVOUR =
-TOOLKIT = MAC
-TOOLKIT_LOWERCASE = mac
-TOOLKIT_VERSION =
-TOOLCHAIN_FULLNAME = mac-ansi-release-static-2.8
-EXTRALIBS = -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -lz -lpthread -liconv
-EXTRALIBS_GUI = -framework WebKit
-HOST_SUFFIX =
-SAMPLES_RPATH_FLAG =
-SAMPLES_RPATH_POSTLINK =
-
-### Variables: ###
-
-DESTDIR =
-WX_RELEASE = 2.8
-WX_VERSION = $(WX_RELEASE).0
-LIBDIRNAME = $(wx_top_builddir)/lib
-RBUTIL_CXXFLAGS = -DRBUTIL -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
- $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
- -I$(srcdir) $(__DLLFLAG_p) $(CPPFLAGS) $(CXXFLAGS)
-RBUTIL_OBJECTS = \
- $(__rbutil_os2_lib_res) \
- rbutil.o rbutilApp.o rbutilFrm.o install_dialogs.o bootloaders.o installlog.o \
- rbutilCtrls.o ipodpatcher/ipodpatcher.o ipodpatcher/ipodio-posix.o \
- sansapatcher/sansapatcher.o sansapatcher/sansaio-posix.o \
- md5sum.o irivertools.o autodetection.o talkfile.o \
- $(__rbutil___win32rc)
-
-### Conditionally set variables: ###
-
-#CXXC = $(CXX)
-CXXC = $(BK_DEPS) $(CXX)
-#PORTNAME = base
-PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
-WXBASEPORT = _carbon
-#WXDEBUGFLAG = d
-#WXDEBUGFLAG = d
-#WXUNICODEFLAG = u
-#WXUNIVNAME = univ
-EXTRALIBS_FOR_BASE = $(EXTRALIBS)
-#EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI)
-EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI)
-#EXTRALIBS_FOR_GUI =
-__rbutil___mac_setfilecmd = \
- $(SETFILE) -a C rbutil$(EXEEXT)
-__rbutil___mac_rezcmd = $(__MACOSX_RESOURCES_p_1)
-#__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
-#__WXUNIV_DEFINE_p_1 = -d __WXUNIVERSAL__
-#__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__
-#__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
-#__EXCEPTIONS_DEFINE_p_1 = -d wxNO_EXCEPTIONS
-#__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS
-#__RTTI_DEFINE_p = -DwxNO_RTTI
-#__RTTI_DEFINE_p_1 = -d wxNO_RTTI
-#__RTTI_DEFINE_p_2 = --define wxNO_RTTI
-#__THREAD_DEFINE_p = -DwxNO_THREADS
-#__THREAD_DEFINE_p_1 = -d wxNO_THREADS
-#__THREAD_DEFINE_p_2 = --define wxNO_THREADS
-#__DLLFLAG_p = -DWXUSINGDLL
-#__DLLFLAG_p_1 = -d WXUSINGDLL
-#__DLLFLAG_p_2 = --define WXUSINGDLL
-COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd = $(NM) rbutil$(EXEEXT) | if \
- grep -q pmwin.763 ; then emxbind -ep rbutil$(EXEEXT) ; fi
-#__rbutil___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd)
-#__RCDEFDIR_p = -i \
-# $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
-#__RCDEFDIR_p_1 = --include-dir \
-# $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
-#__rbutil_os2_lib_res = \
-# $(top_srcdir)/include/wx/os2/wx.res
-__rbutil_bundle___depname = rbutil_bundle
-#____rbutil_BUNDLE_TGT_REF_DEP = \
-# rbutil.app/Contents/PkgInfo
-____rbutil_BUNDLE_TGT_REF_DEP = \
- rbutil.app/Contents/PkgInfo
-COND_MONOLITHIC_0___WXLIB_CORE_p = \
- -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX)
-__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
-COND_MONOLITHIC_0___WXLIB_BASE_p = \
- -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
-
-__WXLIB_ADV_p = -lwx_mac_adv$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-__WXLIB_NET_p = -lwx_base_carbon_net-$(WX_RELEASE)$(HOST_SUFFIX)
-__WXLIB_HTML_p = -lwx_mac_html-$(WX_RELEASE)$(HOST_SUFFIX)
-
-#__rbutil___win32rc = rbutil_rc.o
-COND_MONOLITHIC_1___WXLIB_MONO_p = \
- -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-#__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
-__LIB_TIFF_p \
- = \
- -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-__LIB_JPEG_p \
- = \
- -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-__LIB_PNG_p \
- = \
- -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-#__LIB_ZLIB_p = \
-# -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-#__LIB_ODBC_p = \
-# -lwxodbc$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \
- -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-#__LIB_REGEX_p = $(COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p)
-__LIB_EXPAT_p = \
- -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
-COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1 = $(REZ) -d __DARWIN__ -t APPL -d \
- __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) \
- $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) -i $(srcdir) $(__DLLFLAG_p_1) -i \
- $(srcdir)/../../samples $(__RCDEFDIR_p) -i $(top_srcdir)/include -o \
- rbutil$(EXEEXT) Carbon.r rbutil.r
-__MACOSX_RESOURCES_p_1 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1)
-
-### Targets: ###
-
-all: rbutil$(EXEEXT) $(__rbutil_bundle___depname) data
-
-install: all
-
-uninstall:
-
-install-strip: install
-
-clean:
- rm -rf ./.deps ./.pch
- rm -f $(RBUTIL_OBJECTS)
- rm -f rbutil$(EXEEXT)
- rm -rf rbutil.app
-
-distclean: clean
- rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
-
-rbutil$(EXEEXT): $(RBUTIL_OBJECTS) $(__rbutil___win32rc)
- $(CXX) -o $@ $(RBUTIL_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__WXLIB_ADV_p) $(__WXLIB_NET_p) $(__WXLIB_HTML_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
- $(__rbutil___mac_rezcmd)
- $(__rbutil___mac_setfilecmd)
- $(__rbutil___os2_emxbindcmd)
- $(SAMPLES_RPATH_POSTLINK)
-
-rbutil.app/Contents/PkgInfo: rbutil$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
- mkdir -p rbutil.app/Contents
- mkdir -p rbutil.app/Contents/MacOS
- mkdir -p rbutil.app/Contents/Resources
-
-
- sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \
- -e "s/EXECUTABLE/rbutil/" \
- -e "s/VERSION/$(WX_VERSION)/" \
- $(top_srcdir)/src/mac/carbon/Info.plist.in >rbutil.app/Contents/Info.plist
-
-
- echo -n "APPL????" >rbutil.app/Contents/PkgInfo
-
-
- ln -f rbutil$(EXEEXT) rbutil.app/Contents/MacOS/rbutil
-
-
- cp -f $(top_srcdir)/src/mac/carbon/wxmac.icns rbutil.app/Contents/Resources/wxmac.icns
-
-rbutil_bundle: $(____rbutil_BUNDLE_TGT_REF_DEP)
-
-data:
- @mkdir -p .
- @for f in rbutil.ini; do \
- if test ! -f ./$$f -a ! -d ./$$f ; \
- then x=yep ; \
- else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \
- fi; \
- case "$$x" in ?*) \
- cp -pRf $(srcdir)/$$f . ;; \
- esac; \
- done
-
-.cpp.o :
- $(CXXC) $(RBUTIL_CXXFLAGS) -c -o $@ $<
-
-.c.o :
- $(CC) $(RBUTIL_CFLAGS) -c -o $@ $<
-
-rbutil_rc.o: $(srcdir)/rbutil.rc
- $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include
-
-
-# Include dependency info, if present:
--include .deps/*.d
-
-.PHONY: all install uninstall clean distclean rbutil_bundle data
diff --git a/rbutil/archos.ico b/rbutil/archos.ico
deleted file mode 100644
index 6c2171337e..0000000000
--- a/rbutil/archos.ico
+++ /dev/null
Binary files differ
diff --git a/rbutil/autodetection.cpp b/rbutil/autodetection.cpp
deleted file mode 100644
index 85bfc21b11..0000000000
--- a/rbutil/autodetection.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: autodetection.cpp
- *
- * Copyright (C) 2008 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "autodetection.h"
-#include "bootloaders.h"
-/***************************************************
-* General autodetection code
-****************************************************/
-
-bool ipodpatcherDetect(UsbDeviceInfo* tempdevice)
-{
- /* use ipodpatcher for ipod detecting */
- struct ipod_t ipod;
- int n = ipod_scan(&ipod);
- if(n == 1) /* we found an ipod */
- {
- wxString temp(ipod.targetname,wxConvUTF8);
- int index = gv->plat_bootloadername.Index(temp); // use the bootloader names..
- tempdevice->device_index = index;
- tempdevice->status=DEVICEFOUND;
-
- /* find mount point if possible */
-#if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code
- wxString tmp = resolve_mount_point(wxString(ipod.diskname,wxConvUTF8)+wxT("2"));
- if( tmp != wxT("") )
- tempdevice->path = tmp;
-#endif
- return true;
-
- }
- else if (n > 1) /* to many ipods */
- {
- tempdevice->status = TOMANYDEVICES;
- return true;
- }
- else /* no ipod */
- {
- return false;
- }
-
-}
-
-bool sansapatcherDetect(UsbDeviceInfo* tempdevice)
-{
- /* scann for sansas */
- struct sansa_t sansa;
- int n = sansa_scan(&sansa);
- if(n==1)
- {
- tempdevice->device_index = gv->plat_id.Index(wxT("sansae200"));
- tempdevice->status = DEVICEFOUND;
- /* find mount point if possible */
-#if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code
- wxString tmp = resolve_mount_point(wxString(sansa.diskname,wxConvUTF8)+wxT("1"));
- if( tmp != wxT("") )
- tempdevice->path = tmp;
-#endif
- return true;
- }
- else if (n > 1)
- {
- tempdevice->status = TOMANYDEVICES;
- return true;
- }
- else
- {
- return false;
- }
-}
-
-
-bool rockboxinfoDetect(wxString filename,UsbDeviceInfo* tempdevice)
-{
- wxTextFile rockboxinfo(filename);
- rockboxinfo.Open();
- wxString line = rockboxinfo.GetFirstLine();
- wxString targetstring;
- if(line.StartsWith(wxT("Target: "), &targetstring))
- {
- int index = gv->plat_id.Index(targetstring);
- if(index < 0) return false;
-
- tempdevice->device_index = index;
- wxString myPath;
- if(filename.EndsWith(wxT(".rockbox" PATH_SEP "rockbox-info.txt"),&myPath));
- tempdevice->path = myPath;
-
- tempdevice->status = DEVICEFOUND;
-
- return true;
- }
- else
- {
- return false;
- }
-
-
-}
-
-
-bool detectDevices(UsbDeviceInfo* tempdevice)
-{
- tempdevice->device_index= 0;
- tempdevice->path=wxT("");
- tempdevice->status =NODEVICE;
-
- /* try ipodpatcher */
- if(ipodpatcherDetect(tempdevice))
- {
- return true;
- }
-
- /* try sansapatcher */
- if(sansapatcherDetect(tempdevice))
- {
- return true;
- }
-
- /*try via files on the devices */
- wxArrayString mountpoints = getPossibleMountPoints();
-
- for(unsigned int i=0;i<mountpoints.GetCount();i++)
- {
- if(wxDir::Exists(mountpoints[i]))
- {
- /*check for rockbox-info.txt */
- wxString filename;
- filename.Printf("%s" PATH_SEP ".rockbox" PATH_SEP "rockbox-info.txt",mountpoints[i].c_str());
- if(wxFile::Exists(filename))
- {
- if(rockboxinfoDetect(filename,tempdevice))
- return true;
- }
-
- }
- }
-
- return false;
-}
-
-
-
-
-
-/***************************************************
-* Windows code for autodetection
-****************************************************/
-#if defined( __WXMSW__ )
-
-wxArrayString getPossibleMountPoints()
-{
- wxArrayString tempList;
- tempList.Add(wxT("D:\\"));
- tempList.Add(wxT("E:\\"));
- tempList.Add(wxT("F:\\"));
- tempList.Add(wxT("G:\\"));
- tempList.Add(wxT("H:\\"));
- tempList.Add(wxT("I:\\"));
- tempList.Add(wxT("J:\\"));
- tempList.Add(wxT("K:\\"));
- tempList.Add(wxT("L:\\"));
- tempList.Add(wxT("M:\\"));
- tempList.Add(wxT("N:\\"));
- tempList.Add(wxT("O:\\"));
- tempList.Add(wxT("P:\\"));
- tempList.Add(wxT("Q:\\"));
- tempList.Add(wxT("R:\\"));
- tempList.Add(wxT("S:\\"));
- tempList.Add(wxT("T:\\"));
- tempList.Add(wxT("U:\\"));
- tempList.Add(wxT("V:\\"));
- tempList.Add(wxT("W:\\"));
- tempList.Add(wxT("X:\\"));
- tempList.Add(wxT("Y:\\"));
- tempList.Add(wxT("Z:\\"));
-
- return tempList;
-}
-
-
-#endif /* windows code */
-
-/**********************************************************
-* Linux code for autodetection
-*******************************************************/
-#if !(defined( __WXMSW__ ) || defined( __DARWIN__))
-
-wxArrayString getPossibleMountPoints()
-{
- wxArrayString tempList;
-
- FILE *fp = fopen( "/proc/mounts", "r" );
- if( !fp ) return tempList;
- char *dev, *dir;
- while( fscanf( fp, "%as %as %*s %*s %*s %*s", &dev, &dir ) != EOF )
- {
- wxString directory = wxString( dir, wxConvUTF8 );
- tempList.Add(directory);
- free( dev );
- free( dir );
- }
- fclose( fp );
-
- return tempList;
-}
-
-wxString resolve_mount_point( const wxString device )
-{
- FILE *fp = fopen( "/proc/mounts", "r" );
- if( !fp ) return wxT("");
- char *dev, *dir;
- while( fscanf( fp, "%as %as %*s %*s %*s %*s", &dev, &dir ) != EOF )
- {
- if( wxString( dev, wxConvUTF8 ) == device )
- {
- wxString directory = wxString( dir, wxConvUTF8 );
- free( dev );
- free( dir );
- return directory;
- }
- free( dev );
- free( dir );
- }
- fclose( fp );
- return wxT("");
-}
-
-
-
-#endif /* linux code */
-
-/**********************************************************
-* MAC code for autodetection
-*******************************************************/
-#if defined( __DARWIN__)
-
-wxArrayString getPossibleMountPoints()
-{
- wxArrayString tempList;
-
- wxDir volumes;
-
- if(volumes.Open(wxT("/Volumes")))
- {
- wxString filename;
- bool cont = volumes.GetFirst(&filename, wxEmptyString, wxDIR_DIRS);
- while ( cont )
- {
- tempList.Add(filename);
- cont = dir.GetNext(&filename);
- }
- }
- return tempList;
-
-}
-
-#endif /* Mac Code */
diff --git a/rbutil/autodetection.h b/rbutil/autodetection.h
deleted file mode 100644
index cfd0dbab96..0000000000
--- a/rbutil/autodetection.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: autodetection.h
- *
- * Copyright (C) 2008 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#ifndef AUTODETECTION_H_INCLUDED
-#define AUTODETECTION_H_INCLUDED
-
-
-/**************************************
-* General code for USB Device detection
-***************************************/
-#include "rbutil.h"
-
-#define TOMANYDEVICES 2
-#define NODEVICE 1
-#define DEVICEFOUND 0
-
-struct UsbDeviceInfo
-{
- int device_index;
- wxString path;
- int status;
-};
-
-
-bool detectDevices(UsbDeviceInfo* tempdevice);
-
-wxArrayString getPossibleMountPoints(); /* this funktion has to be implemented for every OS */
-
-
-/********************************
-* Windows header for USB Device detection and information
-**************************************/
-
-#if defined( __WXMSW__ )
-
-
-#endif /*__WXMSW__ */
-
-
-/************************************************************************+
-*Linux header for autodetection
-**************************************************************************/
-
-
-#if !(defined( __WXMSW__ ) || defined( __DARWIN__))
-
-wxString resolve_mount_point( const wxString device );
-
-
-#endif /* Linux Code */
-
-
-
-
-/************************************************************************+
-*MAc header for autodetection
-**************************************************************************/
-
-
-#if defined( __DARWIN__)
-
-
-
-#endif /* MAc Code */
-
-
-
-
-
-
-
-
-#endif
diff --git a/rbutil/bootloaders.cpp b/rbutil/bootloaders.cpp
deleted file mode 100755
index 4ac4828307..0000000000
--- a/rbutil/bootloaders.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: bootloaders.cpp
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "bootloaders.h"
-
-
-
-int verbose =0;
-// reserves memory for ipodpatcher
-bool initIpodpatcher()
-{
- if (ipod_alloc_buffer(&sectorbuf,BUFFER_SIZE) < 0) return true;
- else return false;
-}
-// uses ipodpatcher for add and rem of bootloader
-bool ipodpatcher(int mode,wxString bootloadername)
-{
- wxString src,dest,buf;
-
- struct ipod_t ipod;
-
- int n = ipod_scan(&ipod);
- if (n == 0)
- {
- ERR_DIALOG(wxT("[ERR] No ipods found."), wxT("Scanning for Ipods"));
- return false;
- }
- if (n > 1)
- {
- ERR_DIALOG(wxT("[ERR] to many ipods found."), wxT("Scanning for Ipods"));
- return false;
- }
-
- // downloading files
- if(mode == BOOTLOADER_ADD)
- {
- src = gv->bootloader_url + wxT("/ipod/")
- + bootloadername + wxT(".ipod");
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername;
- if ( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install"));
- return false;
- }
- }
-
- if (ipod_open(&ipod, 0) < 0)
- {
- ERR_DIALOG(wxT("[ERR] could not open ipod"), wxT("open Ipod"));
- return false;
- }
-
- if (read_partinfo(&ipod,0) < 0)
- {
- ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable"));
- return false;
- }
-
- if (ipod.pinfo[0].start==0)
- {
- ERR_DIALOG(wxT("[ERR] No partition 0 on disk"), wxT("reading partitiontable"));
- int i;
- double sectors_per_MB = (1024.0*1024.0)/ipod.sector_size;
-
- buf.Printf(wxT("[INFO] Part Start Sector End Sector Size (MB) Type\n"));
- ERR_DIALOG(buf, wxT("reading partitiontable"));
- for ( i = 0; i < 4; i++ ) {
- if (ipod.pinfo[i].start != 0) {
- buf.Printf(wxT("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n"),
- i,
- ipod.pinfo[i].start,
- ipod.pinfo[i].start+ipod.pinfo[i].size-1,
- ipod.pinfo[i].size/sectors_per_MB,
- get_parttype(ipod.pinfo[i].type),
- ipod.pinfo[i].type);
- ERR_DIALOG(buf, wxT("reading partitiontable"));
- }
- }
- return false;
- }
-
- read_directory(&ipod);
-
- if (ipod.nimages <= 0)
- {
- ERR_DIALOG(wxT("[ERR] Failed to read firmware directory"), wxT("reading directory"));
- return false;
- }
- if (getmodel(&ipod,(ipod.ipod_directory[0].vers>>8)) < 0)
- {
- buf.Printf(wxT("[ERR] Unknown version number in firmware (%08x)\n"),
- ipod.ipod_directory[0].vers );
- ERR_DIALOG(buf, wxT("reading directory"));
- return false;
- }
-
- if (ipod.macpod)
- {
- WARN_DIALOG(wxT("Warning this is a MacPod, Rockbox doesnt work on this. Convert it to WinPod"),wxT("MacPod"));
- }
-
-
- if(mode == BOOTLOADER_ADD)
- {
- if (ipod_reopen_rw(&ipod) < 0) {
- ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add"));
- return false;
- }
-
- if (add_bootloader(&ipod, (char*)dest.c_str(), FILETYPE_DOT_IPOD)==0) {
-
- } else {
- ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add"));
- return false;
- }
- }
- else if(mode == BOOTLOADER_REM)
- {
- if (ipod_reopen_rw(&ipod) < 0) {
- ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add"));
- return false;
- }
-
- if (ipod.ipod_directory[0].entryOffset==0) {
- ERR_DIALOG(wxT("[ERR] No bootloader detected.\n"), wxT("Bootloader del"));
- return false;
- } else {
- if (delete_bootloader(&ipod)==0) {
-
- } else {
- ERR_DIALOG(wxT("[ERR] --delete-bootloader failed.\n"), wxT("Bootloader del"));
- return false;
- }
- }
- }
-
- ipod_close(&ipod);
- return true;
-}
-
-// reserves memory for sansapatcher
-bool initSansaPatcher()
-{
- if (sansa_alloc_buffer(&sectorbuf,BUFFER_SIZE) < 0) return true;
- else return false;
-}
-
-
-// sansainstallation
-bool sansapatcher(int mode,wxString bootloadername)
-{
- wxString src,dest,buf;
-
- struct sansa_t sansa;
-
- int n = sansa_scan(&sansa);
- if (n == 0)
- {
- ERR_DIALOG(wxT("[ERR] No Sansa found."), wxT("Scanning for Sansa"));
- return false;
- }
- if (n > 1)
- {
- ERR_DIALOG(wxT("[ERR] to many Sansa found."), wxT("Scanning for Sansa"));
- return false;
- }
-
- // downloading files
- if(mode == BOOTLOADER_ADD)
- {
- src = gv->bootloader_url + wxT("/sandisk-sansa/e200/")
- + bootloadername;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername;
- if ( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Download"));
- return false;
- }
- }
-
- if (sansa_open(&sansa, 0) < 0)
- {
- ERR_DIALOG(wxT("[ERR] could not open sansa"), wxT("open Sansa"));
- return false;
- }
-
- if (sansa_read_partinfo(&sansa,0) < 0)
- {
- ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable"));
- return false;
- }
-
- int i = is_e200(&sansa);
- if (i < 0) {
- ERR_DIALOG(wxT("[ERR] Disk is not an E200 (%d), aborting.\n"), wxT("Checking Disk"));
- return false;
- }
-
- if (sansa.hasoldbootloader)
- {
- ERR_DIALOG(wxT("[ERR] ************************************************************************\n"
- "[ERR] *** OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n"
- "[ERR] *** You must reinstall the original Sansa firmware before running\n"
- "[ERR] *** sansapatcher for the first time.\n"
- "[ERR] *** See http://www.rockbox.org/twiki/bin/view/Main/SansaE200Install\n"
- "[ERR] ************************************************************************\n"),wxT("Checking Disk"));
- return false;
- }
-
- if(mode == BOOTLOADER_ADD)
- {
- if (sansa_reopen_rw(&sansa) < 0) {
- ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader add"));
- return false;
- }
-
- if (sansa_add_bootloader(&sansa, (char*)dest.c_str(), FILETYPE_MI4)==0) {
-
- } else {
- ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add"));
- }
-
- }
- else if(mode == BOOTLOADER_REM)
- {
- if (sansa_reopen_rw(&sansa) < 0) {
- ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader Remove"));
- }
-
- if (sansa_delete_bootloader(&sansa)==0) {
-
- } else {
- ERR_DIALOG(wxT("[ERR] failed to remove Bootloader"), wxT("Bootloader remove"));
- }
- }
-
- sansa_close(&sansa);
- return true;
-}
-
-// gigabeatinstallation
-bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir)
-{
- wxString path1,path2;
- wxString err;
- wxString src,dest;
-
- path1 = deviceDir
- + wxT("" PATH_SEP "GBSYSTEM" PATH_SEP "FWIMG" PATH_SEP "FWIMG01.DAT");
-
- if(mode == BOOTLOADER_ADD)
- {
- //Files downloaden
- src = gv->bootloader_url + wxT("/gigabeat/") + bootloadername;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername;
- if( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install"));
- return false;
- }
-
-
- if(!wxFileExists(path1))
- {
- ERR_DIALOG(wxT("[ERR] Coud not find ")+path1, wxT("Bootloader add"));
- return false;
- }
- path2 = path1;
- path2.Append(wxT(".ORIG"));
- if(!wxFileExists(path2))
- {
- if(!wxRenameFile(path1,path2,false))
- {
- ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ")
- + path2, wxT("Bootloader add"));
- return false;
- }
- }
-
-
- if(!wxCopyFile(dest,path1))
- {
- ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ")
- + path2, wxT("Bootloader add"));
- return false;
- }
- }
- else if(mode == BOOTLOADER_REM)
- {
- path2 = path1;
- path2.Append(wxT(".ORIG"));
- if(!wxFileExists(path2))
- {
- ERR_DIALOG(wxT("[ERR] Coud not find ") + path1,
- wxT("Bootloader del"));
- return false;
- }
- if(!wxRenameFile(path2,path1,true))
- {
- ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ")
- + path2, wxT("Bootloader del"));
- return false;
- }
- }
- return true;
-}
-
-// iaudio bootloader install
-bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir)
-{
- wxString path1,path2;
- wxString err;
- wxString src,dest;
-
- path1 = deviceDir + wxT("" PATH_SEP "FIRMWARE" PATH_SEP)
- + bootloadername;
-
- if(mode == BOOTLOADER_ADD)
- {
- //Files downloaden
- src = gv->bootloader_url + wxT("/iaudio/") + bootloadername;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername;
- if( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install"));
- return false;
- }
-
- // copy file
- if(!wxCopyFile(dest,path1))
- {
- ERR_DIALOG(wxT("[ERR] Coud not copy ")+dest+wxT(" to ")+path2,
- wxT("Bootloader add"));
- return false;
- }
-
- return true; // install ready
- }
- else
- return false; //no uninstallation possible
-}
-
-// H10 install
-bool h10(int mode,wxString bootloadername,wxString deviceDir)
-{
- wxString err,src,dest,path1,path2;
-
- int pos = bootloadername.Find('/');
- if(pos == wxNOT_FOUND) pos = 0;
- wxString firmwarename = bootloadername.SubString(pos,bootloadername.Length());
- //wxString firmDir = gv->curbootloader.SubString(0,pos);
-
- if(mode == BOOTLOADER_ADD)
- {
- //Files downloaden
- src = gv->bootloader_url + wxT("/iriver/") + bootloadername;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + firmwarename;
- if( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install"));
- return false;
- }
-
- path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename;
- path2 = deviceDir + wxT("SYSTEM" PATH_SEP "Original.mi4");
-
- if(!wxFileExists(path1)) //Firmware dosent exists on player
- {
- path1 = deviceDir + wxT("SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename
- if(!wxFileExists(path1)) //Firmware dosent exists on player
- {
- ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"),
- wxT("Bootloader add"));
- return false;
- }
- }
- if(!wxFileExists(path2)) //there is already a original firmware
- {
- if(!wxRenameFile(path1,path2,false)) //rename Firmware to Original
- {
- ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ")
- + path2, wxT("Bootloader add"));
- return false;
- }
- }
-
- if(!wxCopyFile(dest,path1)) // copy file
- {
- ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ") + path1,
- wxT("Bootloader add"));
- return false;
- }
-
- return true; //install ready
-
- }
- else if(mode == BOOTLOADER_REM)
- {
- path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename;
- path2 = gv->curdestdir + wxT("SYSTEM" PATH_SEP "Original.mi4");
- if(!wxFileExists(path1)) //Firmware dosent exists on player
- {
- path1 = deviceDir + wxT("" PATH_SEP "SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename
- if(!wxFileExists(path1)) //Firmware dosent exists on player
- {
- ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"),
- wxT("Bootloader rem"));
- return false;
- }
- }
-
- if(!wxFileExists(path2)) //Original Firmware dosent exists on player
- {
- ERR_DIALOG(wxT("[ERR] File ") + path2 + wxT(" does not Exist"),
- wxT("Bootloader rem"));
- return false;
- }
-
- if(!wxRenameFile(path2,path1,true)) //rename Firmware to Original
- {
- ERR_DIALOG(wxT("[ERR] Coud not rename ") + path2 + wxT(" to ")
- + path1, wxT("Bootloader add"));
- return false;
- }
-
- }
- // shouldn't get here
- return false;
-}
-
-// FWPatcher
-bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware)
-{
- if(mode == BOOTLOADER_ADD)
- {
- char md5sum_str[32];
- wxString src,dest,err;
- int series,table_entry;
-
- if (!FileMD5(firmware, md5sum_str)) {
- ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware"));
- return false;
- }
- else {
- /* Check firmware against md5sums in h120sums and h100sums */
- series = 0;
- table_entry = intable(md5sum_str, &h120pairs[0],
- sizeof(h120pairs)/sizeof(struct sumpairs));
- if (table_entry >= 0) {
- series = 120;
- }
- else {
- table_entry = intable(md5sum_str, &h100pairs[0],
- sizeof(h100pairs)/sizeof(struct sumpairs));
- if (table_entry >= 0) {
- series = 100;
- }
- else {
- table_entry =
- intable(md5sum_str, &h300pairs[0],
- sizeof(h300pairs)/sizeof(struct sumpairs));
- if (table_entry >= 0)
- series = 300;
- }
- }
- if (series == 0) {
- ERR_DIALOG(wxT("Could not detect firmware type"), wxT("Detect Player out of Firmware"));
- return false;
- }
- else
- {
- //Download bootloader
- src = gv->bootloader_url + wxT("/iriver/")
- + bootloadername;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP)
- + bootloadername;
- if( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src,
- wxT("Install"));
- return false;
- }
-
- if(!PatchFirmware(firmware,dest,series, table_entry)) // Patch firmware
- {
- ERR_DIALOG(wxT("Patching Firmware failed"),
- wxT("Patching Firmware"));
- return false;
- }
- }
-
- // Load patched Firmware to player
- src = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP "new.hex");
-
- if(gv->curplat == wxT("h100"))
- dest = deviceDir + wxT("" PATH_SEP "ihp_100.hex");
- else if(gv->curplat == wxT("h120"))
- dest = deviceDir + wxT("" PATH_SEP "ihp_120.hex");
- else if(gv->curplat == wxT("h300"))
- dest = deviceDir + wxT("" PATH_SEP "H300.hex");
-
- if(!wxRenameFile(src,dest))
- {
- ERR_DIALOG(wxT("Copying Firmware to Device failed"),
- wxT("Copying Firmware"));
- return false;
- }
- else
- {
- return true;
- }
- }
-
- }
- else
- {
- return false; //no uninstall possible
- }
-}
diff --git a/rbutil/bootloaders.h b/rbutil/bootloaders.h
deleted file mode 100755
index d5bda126cc..0000000000
--- a/rbutil/bootloaders.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: bootloaders.h
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-
-#ifndef BOOTLOADERS_H_INCLUDED
-#define BOOTLOADERS_H_INCLUDED
-
-#include <wx/string.h>
-#include "irivertools.h"
-#include "md5sum.h"
-
-#include "rbutil.h"
-#include "installlog.h"
-
-extern "C" {
- // Ipodpatcher
- #include "ipodpatcher/ipodpatcher.h"
- // Sansapatcher
- #include "sansapatcher/sansapatcher.h"
-};
-
-
-bool initIpodpatcher();
-bool initSansaPatcher();
-bool ipodpatcher(int mode,wxString bootloadername);
-bool sansapatcher(int mode,wxString bootloadername);
-bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir);
-bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir);
-bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware);
-bool h10(int mode,wxString bootloadername,wxString deviceDir);
-
-
-#endif // BOOTLOADERS_H_INCLUDED
diff --git a/rbutil/copying.txt b/rbutil/copying.txt
deleted file mode 100644
index d57cce3cfb..0000000000
--- a/rbutil/copying.txt
+++ /dev/null
@@ -1,370 +0,0 @@
-
- GNU GENERAL PUBLIC LICENSE
-
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
-
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
-
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
-
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
-
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
-
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/rbutil/credits.h b/rbutil/credits.h
deleted file mode 100644
index b1246201d3..0000000000
--- a/rbutil/credits.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: credits.h
- *
- * Copyright (C) 2006 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#ifndef CREDITS_H_INCLUDED
-#define CREDITS_H_INCLUDED
-
-#define RBUTIL_FULLNAME "The Rockbox Utility"
-#define RBUTIL_VERSION "Version 0.3.2.6"
-
-static const wxString rbutil_developers[] = {
- wxT("Christi Alice Scarborough"),
- wxT("Dave Chapman"),
- wxT("Dominik Wenger"),
- wxT("Bryan Childs"),
- wxT("Dave Hooper"),
- wxT("")
-};
-
-#define RBUTIL_WEBSITE "http://www.rockbox.org/"
-#define RBUTIL_COPYRIGHT wxT("© 2005-2007 The Rockbox Team\n" \
- "Released under the GNU General Public License v2.")
-#define RBUTIL_DESCRIPTION wxT("Installer and housekeeping utility for " \
- "the Rockbox open source digital audio player firmware.")
-
-
-class AboutDlg: public wxDialog
-{
- public:
- AboutDlg(rbutilFrm *parent);
- ~AboutDlg();
-};
-
-#include <wx/hyperlink.h>
-
-#endif // CREDITS_H_INCLUDED
diff --git a/rbutil/h100sums.h b/rbutil/h100sums.h
deleted file mode 100755
index ebbdcc28db..0000000000
--- a/rbutil/h100sums.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Checksums of firmwares for ihp_100 */
-/* order: unpatched, patched */
-
-/* 1.63eu */
-{"86103cb05658970b43ce1f40f93d53a8", "4938420d83aa6da3764d33e5a008c8d4"},
-/* 1.63k */
-{"70127fa9ee69afab7645297fbb61636d", "044b737ddb74436353e290d3fbcc3333"},
-/* 1.63us */
-{"7a504a450c76a0dda757fdb6b5531b22", "e51883ed89d49f5677b0a976aef7b154"},
-/* 1.65eu */
-{"478dc657b97e77d1b4944ef26c3dcb8e", "528917d9e5b34a3e5bcac8fe1f4bd7a9"},
-/* 1.65k */
-{"97ba82fb8099bb23ca0c78fc119f8cce", "ef24f69a679e5eba2216045cb24d8b15"},
-/* 1.65us */
-{"d3725865e0948cd5f604b00db2ec89aa", "76d83812b9e1856f768ba913eeba44e1"},
-/* 1.66eu */
-{"fc59f742fe383da3e4d17a660c46afb9", "2aa9d16d3e166a7575fc652db8588daa"},
-/* 1.66k */
-{"22d214401994c276ec6878288caa0dba", "a87dbe604ea98d035450a34b6e184a08"},
-/* 1.66us */
-{"0ae247f567aeafcafecf823a50cbf33e", "f7668e8949f1a78e8ecd685db78b6824"},
-/* 1.66jp */
-{"8bfc8ae5805c270597232efeafade5fd", "72613b75c5196f63e99e41b7a88d7241"},
diff --git a/rbutil/h120sums.h b/rbutil/h120sums.h
deleted file mode 100755
index 09da891ae1..0000000000
--- a/rbutil/h120sums.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Checksums of firmwares for ihp_120 */
-/* order: unpatched, patched */
-
-/* 1.63eu */
-{"14488347a171480c63c94bc7b885225d", "15f09130a1aa02c25f820e8cc68259a4"},
-/* 1.63k */
-{"3401fe8845e569156abfaddf05ca7771", "55e4cb20e36f4da06ad80b31aaaa3054"},
-/* 1.63us */
-{"d9078209105c186cee5246055fdb99c9", "dbdd012a3d821d26f907879cca71e9f4"},
-/* 1.65eu */
-{"c9e71aac4a498f1e2f0e684c2d554ea1", "43454df30c176e55d0df7e3c48e67785"},
-/* 1.65k */
-{"360c0c565266f84e9bca610c596f3207", "d8cb7d9f586186bf9780ee761fc8a677"},
-/* 1.65us */
-{"b9e516d4b8a0265605f46f254897bfb0", "99c5666e990dc782b9daefcb1a087ec0"},
-/* 1.66eu */
-{"a094999b41781f4322a57b9be7fa4534", "e26d2574f39cee0adcdd54fb9f316293"},
-/* 1.66k */
-{"79daba973bb31b60b4b87c2ef497587d", "e76121ba9efe72ecfbb6392eaefe6d96"},
-/* 1.66us */
-{"7fa020a3104c76fbbfcb8313e287dbe2", "12194678a2fdd0814d2e0bb57c8e8e6e"},
-/* 1.66jp */
-{"271d151eb6586929da24b3458ea965fe", "51716393ea0605d225e70a6be29dfdbd"},
diff --git a/rbutil/h300sums.h b/rbutil/h300sums.h
deleted file mode 100755
index 1c6581a6d1..0000000000
--- a/rbutil/h300sums.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Checksums of firmwares for ihp_300 */
-/* order: unpatched, patched */
-
-/* 1.28eu */
-{"0b2083d37f24899b82d21a14d2b38060", "9cd7e291a66f55335c619d63f3a7634b"},
-/* 1.28k */
-{"c6f854ae3d8f48e8982819a4b5302fb0", "90967247ba3f1bcb257432a4d78553bf"},
-/* 1.28jp */
-{"7fcd7bca6b98a34134e2518a616f4e85", "cfd22c20e473727148f11f83d0028fb3"},
-/* 1.29eu */
-{"27d90fc316709c096979ab24c914ee31", "5982302507d57c2a96e9480c242b5de0"},
-/* 1.29k */
-{"44416d97737fc47cd417a64d44064768", "1303e22ef5b1af866aa4def03d6c5f5a"},
-/* 1.29jp */
-{"1ac242c645572a0a5de99ae2b23453b8", "ce433c404ff7531f5852ce3cb61143ee"},
-/* 1.30eu */
-{"8d2d775b018f0532235d38f5317ae10c", "7fb49041294b3e6aea3894218d6d64cf"},
diff --git a/rbutil/icons/Makefile b/rbutil/icons/Makefile
deleted file mode 100644
index 8eb630f427..0000000000
--- a/rbutil/icons/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# __________ __ ___.
-# Open \______ \ ____ ____ | | _\_ |__ _______ ___
-# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
-# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
-# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
-# \/ \/ \/ \/ \/
-# $Id$
-#
-CC = gcc
-CXX = $(shell $(PREFIX)wx-config --version=2.8 --cxx)
-INC = `$(PREFIX)wx-config --version=2.8 --cxxflags`
-LIBS = `$(PREFIX)wx-config --version=2.8 --libs`
-
-CFLAGS = -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE
-ICONS := $(wildcard *.png)
-HEADERS := $(subst .png,.h,$(ICONS))
-OBJS := $(subst .png,.o,$(ICONS))
-CXXSOURCES = $(subst .png,.cpp,$(ICONS))
-SILENT = @
-BIN2C = ./bin2c
-
-all: $(OBJS)
-
-
-bin2c: bin2c.c
- $(SILENT) echo CC $<
- $(SILENT) $(CC) -o $@ $<
-
-%.cpp: %.png bin2c
- $(SILENT) echo BIN2C $<
- $(SILENT) $(BIN2C) $<
-
-%.o: %.cpp
- $(SILENT) echo CXX $<
- $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(SILENT) echo cleaning icons.
- $(SILENT) rm -f bin2c $(OBJS) $(HEADERS) $(CXXSOURCES)
diff --git a/rbutil/icons/bin2c.c b/rbutil/icons/bin2c.c
deleted file mode 100644
index 99400444ef..0000000000
--- a/rbutil/icons/bin2c.c
+++ /dev/null
@@ -1,172 +0,0 @@
- // bin2c.c
- //
- // convert a binary file into a C source vector
- //
- // put into the public domain by Sandro Sigala
- //
- // syntax: bin2c [-c] [-z] <input_file> <output_file>
- //
- // -c add the "const" keyword to definition
- // -z terminate the array with a zero (useful for embedded C strings)
- //
- // examples:
- // bin2c -c myimage.png myimage_png.cpp
- // bin2c -z sometext.txt sometext_txt.cpp
-
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #ifndef PATH_MAX
- #define PATH_MAX 1024
- #endif
-
- int useconst = 0;
- int zeroterminated = 0;
-
- int myfgetc(FILE *f)
- {
- int c = fgetc(f);
- if (c == EOF && zeroterminated) {
- zeroterminated = 0;
- return 0;
- }
- return c;
- }
-
-
- void process(const char *ifname, const char *ofname)
- {
- FILE *ifile, *ofile;
- /* modified */
- int counter=0;
- char buf2[PATH_MAX];
- char* cp2;
- char* cp3;
- if ((cp3 = strrchr(ofname, '/')) != NULL)
- ++cp3;
- else {
- if ((cp3 = strrchr(ofname, '\\')) != NULL)
- ++cp3;
- else
- cp3 = (char*) ofname;
- }
-
- strcpy(buf2, cp3);
- cp2 = strrchr(buf2, '.');
- *cp2 = '.';
- cp2++;
- *cp2 = 'h';
- cp2++;
- *cp2 ='\0';
-
-
- ifile = fopen(ifname, "rb");
- if (ifile == NULL) {
- fprintf(stderr, "cannot open %s for reading\n", ifname);
- exit(1);
- }
- ofile = fopen(ofname, "wb");
- if (ofile == NULL) {
- fprintf(stderr, "cannot open %s for writing\n", ofname);
- exit(1);
- }
- char buf[PATH_MAX], *p;
- const char *cp;
- if ((cp = strrchr(ifname, '/')) != NULL)
- ++cp;
- else {
- if ((cp = strrchr(ifname, '\\')) != NULL)
- ++cp;
- else
- cp = ifname;
- }
- strcpy(buf, cp);
- for (p = buf; *p != '\0'; ++p)
- if (!isalnum(*p))
- *p = '_';
- fprintf(ofile,"#include \"%s\" \n\n",buf2);
- fprintf(ofile, "%sunsigned char %s[] = {\n", useconst ? "const " : "", buf);
- int c, col = 1;
- while ((c = myfgetc(ifile)) != EOF) {
- counter++;
- if (col >= 78 - 6) {
- fputc('\n', ofile);
- col = 1;
- }
- fprintf(ofile, "0x%.2x, ", c);
- col += 6;
-
- }
- fprintf(ofile, "\n};\n");
-
- /* modified */
- fprintf(ofile,"int %s_length = %i; \n",buf,counter);
-
-
- FILE *o2file;
- o2file = fopen(buf2, "wb");
- if (o2file == NULL) {
- fprintf(stderr, "cannot open %s for writing\n", buf2);
- exit(1);
- }
-
- fprintf(o2file, "#ifndef __%s__ \n", buf);
- fprintf(o2file, "#define __%s__ \n", buf);
-
- fprintf(o2file, "extern %sunsigned char %s[]; \n\n", useconst ? "const " : "", buf);
- fprintf(o2file, "extern int %s_length; \n\n", buf);
-
- fprintf(o2file, "#endif \n");
-
- fclose(ifile);
- fclose(ofile);
- fclose(o2file);
- }
-
- void usage(void)
- {
- fprintf(stderr, "usage: bin2c <input_files> \n");
- exit(1);
- }
-
- int main(int argc, char **argv)
- {
- if (argc < 2) {
- usage();
- }
- int i;
- for(i = 1;i < argc ; i++)
- {
- char buf[PATH_MAX];
- char* cp;
- strcpy(buf, argv[i]);
- cp = strrchr(buf, '.');
- cp++;
- strcpy(cp,"cpp");
- process(argv[i], buf);
- }
-
-
- /*
- while (argc > 3) {
- if (!strcmp(argv[1], "-c")) {
- useconst = 1;
- --argc;
- ++argv;
- } else if (!strcmp(argv[1], "-z")) {
- zeroterminated = 1;
- --argc;
- ++argv;
- } else {
- usage();
- }
- }
- if (argc != 3) {
- usage();
- }
- process(argv[1], argv[2]);
- */
- return 0;
- }
diff --git a/rbutil/icons/bootloader_btn.png b/rbutil/icons/bootloader_btn.png
deleted file mode 100644
index 3590c9c4b9..0000000000
--- a/rbutil/icons/bootloader_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/doom_btn.png b/rbutil/icons/doom_btn.png
deleted file mode 100644
index c086024e14..0000000000
--- a/rbutil/icons/doom_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/font_btn.png b/rbutil/icons/font_btn.png
deleted file mode 100644
index dd47a2912a..0000000000
--- a/rbutil/icons/font_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/rbinstall_btn.png b/rbutil/icons/rbinstall_btn.png
deleted file mode 100644
index c37ebec263..0000000000
--- a/rbutil/icons/rbinstall_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/rembootloader_btn.png b/rbutil/icons/rembootloader_btn.png
deleted file mode 100644
index 8abf1da30e..0000000000
--- a/rbutil/icons/rembootloader_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/remrb_btn.png b/rbutil/icons/remrb_btn.png
deleted file mode 100644
index bd484b96c1..0000000000
--- a/rbutil/icons/remrb_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/talkfile_btn.png b/rbutil/icons/talkfile_btn.png
deleted file mode 100644
index 64e2763c94..0000000000
--- a/rbutil/icons/talkfile_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/icons/themes_btn.png b/rbutil/icons/themes_btn.png
deleted file mode 100644
index 264ba79460..0000000000
--- a/rbutil/icons/themes_btn.png
+++ /dev/null
Binary files differ
diff --git a/rbutil/install_3d.xpm b/rbutil/install_3d.xpm
deleted file mode 100644
index c077e61143..0000000000
--- a/rbutil/install_3d.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* WxBitmapButton1 XPM */
-static char *install_3d_xpm[]={
-"56 46 20 1",
-" c None",
-"0 c #BEBABE",
-"1 c #BEC3BE",
-"2 c #000011",
-"3 c #AEAAAE",
-"4 c #9E9A9E",
-"5 c #010101",
-"6 c #79869E",
-"7 c #C7BAC7",
-"8 c #5155FF",
-"9 c #8E8A8E",
-"a c #AEAEB6",
-"b c #202496",
-"c c #B6AEB6",
-"d c #CFC7CF",
-"e c #9696AE",
-"f c #7992B6",
-"g c #717986",
-"h c #28FF20",
-"i c #A69EA6",
-" 0",
-" 0101010101010101010101010101010101010101010101010101012",
-" 1010101010101010101010101010101010101010101010101010102",
-" 1001000100010001000100010001000100010001000100010001002",
-" 3030410331304103313041033130410331304103313041033130312",
-" 0101010100101010100101010010101010010101001010101001002",
-" 3030303030303030313030303030303031303030303030303130302",
-" 0101030010101301001015555555555555555300101013101001032",
-" 3041303140303045503050101010101010010530403030403040302",
-" 0103010300130153510350552552525252520563010310131013012",
-" 3030374131303530503051288888888888851566373040303130302",
-" 0301031303005305155150588888881818850296031013030300132",
-" 3030403030453051305555558888883838851266a03030304131302",
-" 0373030303151503050301558888880818850566030313730303032",
-" 3131303030355030513135b58888888838851566c03040313030412",
-" 330333d33303535555035bb58888888818820566330333033373332",
-" 30303040303035303055bbb58888888888851546303130303030302",
-" 3333333333333555555bbbb58888888888850566333333333333332",
-" 30303030373035bbbb5bbb35888888888885126e303030413030302",
-" 33333333333335bbbb5bb33588888888888505fg333333333333332",
-" 33303330333035bbbb5b33355555555555551566a33033303330332",
-" 3333333333333533335333351111110dhh110566333333333333332",
-" 3333333333333533335333355252552555252555333333333333332",
-" 3333333333333533335335051001001000100100533333333333332",
-" 4333433343334533435353350 10 10 10 10 10563343334333432",
-" 3333333333333533335335351001001055555500566333333333332",
-" 3343434333434545335353450101010105505551566c43433343432",
-" 3333333333333533535335350 10 00 10555555566333333333332",
-" 4343434343434545435353455555555555555555666343434343432",
-" 333333333333353353533335666666666666666fge6333333333332",
-" 434343434343454543534355666egf66966669gfgf4343434343432",
-" 34333433343335335453356555555552a3a7aaa7343334333433342",
-" 4343434343434545435356654000305555555343434343434343432",
-" 3434343434343534345566665555555300303534343434343434342",
-" 434343434343454343566egc4555505555555553434343434343432",
-" 443444344434455555egfga44455555555545555443444344434442",
-" 434343434343434666666ce34346555555555555534343434343432",
-" 4444444444444446666644444444666666555555564444444444442",
-" 4343434343434343i34a43434340434743666666666343434343432",
-" 444444444444444444i44444444444444444444444i444444444442",
-" 4443444344434443444344434443444344434443444344434443442",
-" 4444444444444444444444444444444444444444444444444444442",
-" 4344444443444444434444444344444443444444434444444344442",
-" 4444444444444444444444444444444444444444444444444444442",
-" 4444444444444444444444444444444444444444444444444444442",
-"12222222222222222222222222222222222222222222222222222222"};
-
diff --git a/rbutil/install_dialogs.cpp b/rbutil/install_dialogs.cpp
deleted file mode 100644
index 331a07df4a..0000000000
--- a/rbutil/install_dialogs.cpp
+++ /dev/null
@@ -1,948 +0,0 @@
-
-#include "install_dialogs.h"
-#include "wizard.xpm"
-
-
-
-////////////////////////////////////////////////
-//// Bootloader Installation
-/////////////////////////////////////////////////
-
-IMPLEMENT_CLASS( bootloaderInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( bootloaderInstallDlg, wxDialog )
-
-END_EVENT_TABLE()
-
-bootloaderInstallDlg::bootloaderInstallDlg( )
-{
- Init();
-}
-
-bootloaderInstallDlg::bootloaderInstallDlg( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- Init();
- Create(parent, id, caption, pos, size, style);
-}
-
-void bootloaderInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_firmwarepos = new FirmwarePositionCtrl(this,ID_FIRMWARE);
- wxBoxSizer3->Add(m_firmwarepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
-}
-
-//init the local variables
-void bootloaderInstallDlg::Init()
-{
-
-}
-
-// create the window
-bool bootloaderInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
-
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-
-
-// tranver data from the controls
-bool bootloaderInstallDlg::TransferDataFromWindow()
-{
-
- if( m_devicepos->IsShown())
- {
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
- }
-
- if(m_firmwarepos->IsShown())
- {
- gv->curfirmware = m_firmwarepos->getFirmwarePos();
- if(!wxFileExists(gv->curfirmware))
- {
- WARN_DIALOG(wxT("The Firmware position is not valid"),
- wxT("Select a original Firmware"));
- gv->curfirmware = wxT("");
- return false;
- }
- }
-
- return true;
-
-}
-
-// tranver data to the controls
-bool bootloaderInstallDlg::TransferDataToWindow()
-{
- if(gv->curplat == wxT(""))
- {
- WARN_DIALOG(wxT("You have not selected a audio device"),
- wxT("Select a Device"));
- return false;
- }
- int index = gv->plat_id.Index(gv->curplat);
-
- if(!gv->plat_needsbootloader[index])
- {
- WARN_DIALOG(wxT("This Device doesnt need a Bootloader"),
- wxT("Bootloader"));
- return false;
- }
-
- if(gv->plat_bootloadermethod[index] != wxT("ipodpatcher") && gv->plat_bootloadermethod[index] != wxT("sansapatcher"))
- {
- m_devicepos->Show(true);
- }else
- {
- m_devicepos->Show(false);
- }
- if(gv->plat_bootloadermethod[index] == wxT("fwpatcher"))
- {
- m_firmwarepos->Show(true);
- }else
- {
- m_firmwarepos->Show(false);
- }
-
- m_devicepos->setDefault();
- m_firmwarepos->setDefault();
- return true;
-}
-////////////////////////////////////////////////
-//// Talk file creation
-/////////////////////////////////////////////////
-
-
-IMPLEMENT_CLASS( talkInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( talkInstallDlg, wxDialog )
- EVT_BUTTON(ID_BROWSE_ENC_BTN, talkInstallDlg::OnBrowseEncBtn)
- EVT_BUTTON(ID_BROWSE_TTS_BTN, talkInstallDlg::OnBrowseTtsBtn)
-END_EVENT_TABLE()
-
-talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator )
-{
- m_talkCreator = talkcreator;
- Init();
-}
-
-talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- m_talkCreator = talkcreator;
- Init();
- Create(parent, id, caption, pos, size, style);
-}
-
-void talkInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
-
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
-
- // Device position
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- // Encoder
- wxStaticBox* WxStaticBoxSizer2_StaticBoxObj = new wxStaticBox(this,
- wxID_ANY, wxT("Encoder"));
- wxStaticBoxSizer* WxStaticBoxSizer2 =
- new wxStaticBoxSizer(WxStaticBoxSizer2_StaticBoxObj,wxVERTICAL);
- wxBoxSizer3->Add(WxStaticBoxSizer2,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_Enc = new wxComboBox(this,ID_ENC_CBX,wxT("lame"),
- wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedEnc(),wxCB_READONLY);
- m_Enc->SetToolTip(wxT("Select your Encoder."));
- m_Enc->SetHelpText(wxT("Select your Encoder."));
- WxStaticBoxSizer2->Add(m_Enc,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- wxStaticText* enc_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Select the Encoder executable"), wxDefaultPosition,
- wxDefaultSize, 0 );
- WxStaticBoxSizer2->Add(enc_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
- WxStaticBoxSizer2->Add(horizontalSizer, 0, wxGROW|wxALL, 5);
-
- m_EncExe = new wxTextCtrl(this,wxID_ANY,gv->pathToEnc);
- m_EncExe->SetToolTip(wxT("Type the folder where your Encoder exe is"));
- m_EncExe->SetHelpText(wxT("Type the folder where your Encoder exe is"));
- horizontalSizer->Add(m_EncExe,0,wxGROW | wxALL,5);
-
- m_browseEncBtn = new wxButton(this, ID_BROWSE_ENC_BTN, wxT("Browse"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("BrowseEncBtn"));
- m_browseEncBtn->SetToolTip(wxT("Browse for your Encoder Exe"));
- m_browseEncBtn->SetHelpText(wxT("Browse for your Encoder exe"));
- horizontalSizer->Add(m_browseEncBtn,0,wxGROW | wxALL,5);
-
- wxStaticText* enc_desc_opt = new wxStaticText( this, wxID_STATIC,
- wxT("Encoder Options"), wxDefaultPosition,
- wxDefaultSize, 0 );
- WxStaticBoxSizer2->Add(enc_desc_opt, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_EncOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getEncOpts(wxT("lame")));
- m_EncOpts->SetToolTip(wxT("Encoder Options"));
- m_EncOpts->SetHelpText(wxT("Encoder Options"));
- WxStaticBoxSizer2->Add(m_EncOpts, 0, wxALIGN_LEFT|wxALL, 5);
-
- // TTS
- wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(this,
- wxID_ANY, wxT("Text to Speach"));
- wxStaticBoxSizer* WxStaticBoxSizer3 =
- new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxVERTICAL);
- wxBoxSizer3->Add(WxStaticBoxSizer3,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_Tts = new wxComboBox(this,ID_TTS_CBX,wxT("espeak"),
- wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedTTS(),wxCB_READONLY);
- m_Tts->SetToolTip(wxT("Select your TTS."));
- m_Tts->SetHelpText(wxT("Select your TTS."));
- WxStaticBoxSizer3->Add(m_Tts,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- wxStaticText* tts_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Select the TTS executable"), wxDefaultPosition,
- wxDefaultSize, 0 );
- WxStaticBoxSizer3->Add(tts_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- wxBoxSizer* horizontalSizer2 = new wxBoxSizer(wxHORIZONTAL);
- WxStaticBoxSizer3->Add(horizontalSizer2, 0, wxGROW|wxALL, 5);
-
- m_TtsExe = new wxTextCtrl(this,wxID_ANY,gv->pathToTts);
- m_TtsExe->SetToolTip(wxT("Type the folder where your TTS exe is"));
- m_TtsExe->SetHelpText(wxT("Type the folder where your TTS exe is"));
- horizontalSizer2->Add(m_TtsExe,0,wxGROW | wxALL,5);
-
- m_browseTtsBtn = new wxButton(this, ID_BROWSE_TTS_BTN, wxT("Browse"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("BrowseEncBtn"));
- m_browseTtsBtn->SetToolTip(wxT("Browse for your Encoder Exe"));
- m_browseTtsBtn->SetHelpText(wxT("Browse for your Encoder exe"));
- horizontalSizer2->Add(m_browseTtsBtn,0,wxGROW | wxALL,5);
-
- wxStaticText* tts_desc_opt = new wxStaticText( this, wxID_STATIC,
- wxT("TTS Options"), wxDefaultPosition,
- wxDefaultSize, 0 );
- WxStaticBoxSizer3->Add(tts_desc_opt, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_TtsOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getTTsOpts(wxT("espeak")));
- m_TtsOpts->SetToolTip(wxT("TTS Options"));
- m_TtsOpts->SetHelpText(wxT("TTS Options"));
- WxStaticBoxSizer3->Add(m_TtsOpts, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_OverwriteWave = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Wav"));
- m_OverwriteWave->SetToolTip(wxT("Overwrite Wavefiles"));
- m_OverwriteWave->SetHelpText(wxT("Overwrite Wavefiles"));
- wxBoxSizer3->Add(m_OverwriteWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_OverwriteTalk = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Talk"));
- m_OverwriteTalk->SetToolTip(wxT("Overwrite Talkfiles"));
- m_OverwriteTalk->SetHelpText(wxT("Overwrite Talkfiles"));
- wxBoxSizer3->Add(m_OverwriteTalk,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_RemoveWave = new wxCheckBox(this,wxID_ANY,wxT("Remove Wav"));
- m_RemoveWave->SetToolTip(wxT("Remove Wavfiles"));
- m_RemoveWave->SetHelpText(wxT("Remove Wavfiles"));
- wxBoxSizer3->Add(m_RemoveWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_Recursive = new wxCheckBox(this,wxID_ANY,wxT("Recursive"));
- m_Recursive->SetToolTip(wxT("Recursive"));
- m_Recursive->SetHelpText(wxT("Recursive"));
- wxBoxSizer3->Add(m_Recursive,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- m_StripExtensions = new wxCheckBox(this,wxID_ANY,wxT("Strip Extensions"));
- m_StripExtensions->SetToolTip(wxT("Strip Extensions"));
- m_StripExtensions->SetHelpText(wxT("Strip Extensions"));
- wxBoxSizer3->Add(m_StripExtensions,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
- // controls at the bottom
- wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL);
- topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5);
-
-}
-
-//init the local variables
-void talkInstallDlg::Init()
-{
-
-}
-
-// create the window
-bool talkInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
-
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-void talkInstallDlg::OnBrowseEncBtn(wxCommandEvent& event)
-{
- const wxString& temp = wxFileSelector(
- wxT("Please select the location of your encoder"), wxT(""),
- wxT(""),wxT(""),wxT("*.*"),0, this);
-
- if (!temp.empty())
- {
- m_EncExe->SetValue(temp);
- }
-}
-
-void talkInstallDlg::OnBrowseTtsBtn(wxCommandEvent& event)
-{
- const wxString& temp = wxFileSelector(
- wxT("Please select the location of your TTS engine"), wxT(""),
- wxT(""),wxT(""),wxT("*.*"),0, this);
-
-
- if (!temp.empty())
- {
- m_TtsExe->SetValue(temp);
- }
-}
-
-// tranver data from the controls
-bool talkInstallDlg::TransferDataFromWindow()
-{
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
- m_talkCreator->setDir(gv->curdestdir);
-
- gv->pathToEnc = m_EncExe->GetValue();
- if(!wxFileExists(gv->pathToEnc))
- {
- WARN_DIALOG(wxT("The Encoder exe is not valid"),
- wxT("Select an Encoder"));
- gv->pathToEnc = wxT("");
- return false;
- }
- m_talkCreator->setEncexe(gv->pathToEnc);
-
- gv->pathToTts = m_TtsExe->GetValue();
- if(!wxFileExists(gv->pathToTts))
- {
- WARN_DIALOG(wxT("The TTs exe is not valid"),
- wxT("Select an TTS engine"));
- gv->pathToTts = wxT("");
- return false;
- }
- m_talkCreator->setTTSexe(gv->pathToTts);
-
- m_talkCreator->setTTsType(m_Tts->GetValue());
- m_talkCreator->setEncType(m_Enc->GetValue());
-
-
- m_talkCreator->setOverwriteTalk(m_OverwriteWave->IsChecked());
- m_talkCreator->setOverwriteWav(m_OverwriteTalk->IsChecked());
- m_talkCreator->setRemoveWav(m_RemoveWave->IsChecked());
- m_talkCreator->setRecursive(m_Recursive->IsChecked());
- m_talkCreator->setStripExtensions(m_StripExtensions->IsChecked());
-
- m_talkCreator->setEncOpts(m_EncOpts->GetValue());
- m_talkCreator->setTTsOpts(m_TtsOpts->GetValue());
-
- return true;
-}
-
-// tranver data to the controls
-bool talkInstallDlg::TransferDataToWindow()
-{
- m_devicepos->setDefault();
-
- m_OverwriteWave->SetValue(true);
- m_OverwriteTalk->SetValue(true);
- m_RemoveWave->SetValue(true);
- m_Recursive->SetValue(true);
- m_StripExtensions->SetValue(false);
-
-
-
- return true;
-}
-
-////////////////////////////////////////////////
-//// Font Installation
-/////////////////////////////////////////////////
-
-
-IMPLEMENT_CLASS( fontInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( fontInstallDlg, wxDialog )
-
-END_EVENT_TABLE()
-
-fontInstallDlg::fontInstallDlg( )
-{
- Init();
-}
-
-fontInstallDlg::fontInstallDlg( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- Init();
- Create(parent, id, caption, pos, size, style);
-}
-
-void fontInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
-
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
-
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
- // controls at the bottom
- wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL);
- topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5);
-
-}
-
-//init the local variables
-void fontInstallDlg::Init()
-{
-
-}
-
-// create the window
-bool fontInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
-
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-
-// tranver data from the controls
-bool fontInstallDlg::TransferDataFromWindow()
-{
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
-
- return true;
-}
-
-// tranver data to the controls
-bool fontInstallDlg::TransferDataToWindow()
-{
- m_devicepos->setDefault();
- return true;
-}
-
-////////////////////////////////////////////////
-//// Rockbox DeInstallation
-/////////////////////////////////////////////////
-
-IMPLEMENT_CLASS( rockboxDeInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( rockboxDeInstallDlg, wxDialog )
-
-END_EVENT_TABLE()
-
-rockboxDeInstallDlg::rockboxDeInstallDlg( )
-{
- Init();
-}
-
-rockboxDeInstallDlg::rockboxDeInstallDlg( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- Init();
- Create(parent, id, caption, pos, size, style);
-}
-
-void rockboxDeInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
-
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- // Full deinstallation ?
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n"
- "file created during installation. This means that when Rockbox is\n"
- "uninstalled all your configuration files are preserved. However,\n"
- "you can also perform a full uninstall, which will completely\n"
- "remove all traces of Rockbox from your system, and can be used\n"
- "even if Rockbox was previously installed manually."));
- wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- wxCheckBox* FullCheckBox = new wxCheckBox(this, ID_FULL_CHCKBX,
- wxT("Perform a full uninstall"));
- wxBoxSizer3->Add(FullCheckBox, 0, wxALL, 5);
-
- // controls at the bottom
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
-}
-
-//init the local variables
-void rockboxDeInstallDlg::Init()
-{
-
-}
-
-// create the window
-bool rockboxDeInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-
-// tranver data from the controls
-bool rockboxDeInstallDlg::TransferDataFromWindow()
-{
-
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
-
- wxCheckBox* fullchkbx = (wxCheckBox*) FindWindow(ID_FULL_CHCKBX);
- gv->curisfull = fullchkbx->IsChecked();
-
- return true;
-}
-
-// tranver data to the controls
-bool rockboxDeInstallDlg::TransferDataToWindow()
-{
- m_devicepos->setDefault();
- return true;
-}
-
-////////////////////////////////////////////////
-//// Themes Installation
-/////////////////////////////////////////////////
-
-IMPLEMENT_CLASS( themesInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( themesInstallDlg, wxDialog )
-
-END_EVENT_TABLE()
-
-themesInstallDlg::themesInstallDlg( )
-{
-
-}
-
-themesInstallDlg::themesInstallDlg( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- Create(parent, id, caption, pos, size, style);
-}
-
-void themesInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* topHoriSizer = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(topHoriSizer, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
-
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- topHoriSizer->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* mainVertiSizer = new wxBoxSizer(wxVERTICAL);
- topHoriSizer->Add(mainVertiSizer, 0, wxGROW|wxALL, 5);
-
- wxBoxSizer* wxBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
- mainVertiSizer->Add(wxBoxSizer4, 0, wxGROW|wxALL, 0);
-
- wxBoxSizer* wxBoxSizer5 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer4->Add(wxBoxSizer5, 0, wxGROW|wxALL, 0);
-
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer5->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_theme = new ThemeCtrl(this,ID_THEME);
- wxBoxSizer5->Add(m_theme, 0, wxALIGN_LEFT|wxALL, 5);
-
- // controls at the bottom
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
-
-}
-
-
-// create the window
-bool themesInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
-
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-
-// tranver data from the controls
-bool themesInstallDlg::TransferDataFromWindow()
-{
-
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
-
- gv->themesToInstall.Clear();
- gv->themesToInstall = m_theme->getThemesToInstall();
-
- if(gv->themesToInstall.GetCount() == 0)
- {
- WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme"));
- return false;
- }
-
- return true;
-}
-
-// tranver data to the controls
-bool themesInstallDlg::TransferDataToWindow()
-{
- if(gv->curplat == wxT(""))
- {
- WARN_DIALOG(wxT("You have not selected a audio device"),
- wxT("Select a Device"));
- return false;
- }
-
- m_devicepos->setDefault();
- m_theme->setDevice(gv->curplat);
- return true;
-}
-////////////////////////////////////////////////
-//// Rockbox Installation
-/////////////////////////////////////////////////
-
-IMPLEMENT_CLASS( rockboxInstallDlg, wxDialog )
-
-BEGIN_EVENT_TABLE( rockboxInstallDlg, wxDialog )
- EVT_RADIOBOX(ID_BUILD_BOX, rockboxInstallDlg::OnBuildBox)
-END_EVENT_TABLE()
-
-rockboxInstallDlg::rockboxInstallDlg( )
-{
-}
-
-rockboxInstallDlg::rockboxInstallDlg( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
- Create(parent, id, caption, pos, size, style);
-}
-
-void rockboxInstallDlg::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5);
-
- // bitmap
- wxBitmap sidebmp(wizard_xpm);
-
- ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY);
- sideimage->SetBitmap(sidebmp);
- wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5);
-
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS);
- wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5);
-
- // Build information
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Please select the Rockbox version you would like "
- "to install on your audio\ndevice:"));
- wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- wxArrayString array;
- array.Add(wxT("Rockbox stable version (") + gv->last_release + wxT(")"));
- array.Add(wxT("Archived Build"));
- array.Add(wxT("Current Build "));
-
- wxRadioBox* BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, wxT("Version"),
- wxDefaultPosition, wxDefaultSize, array, 0, wxRA_SPECIFY_ROWS);
- wxBoxSizer3->Add(BuildRadioBox, 0, wxGROW | wxALL, 5);
-
- wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Details:"));
- wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1,
- wxVERTICAL);
- wxStaticText* DetailText = new wxStaticText(this, ID_DETAIL_TXT, wxT(""));
- wxBoxSizer3->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5);
- WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5);
-
- wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n"
- "local hard disk to save network traffic. If your local copy is\n"
- "no longer working, tick this box to download a fresh copy.") );
- wxBoxSizer3->Add(WxStaticText2, 0 , wxALL, 5);
-
- wxCheckBox* NoCacheCheckBox = new wxCheckBox(this, ID_NOCACHE_CHCKBX,
- wxT("Don't use locally cached copies of Rockbox") );
- wxBoxSizer3->Add(NoCacheCheckBox, 0, wxALL, 5);
- // controls at the bottom
- OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY);
- topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
-
-}
-
-// create the window
-bool rockboxInstallDlg::Create( wxWindow* parent,
- wxWindowID id, const wxString& caption,
- const wxPoint& pos, const wxSize& size, long style )
-{
-
- if (!wxDialog::Create( parent, id, caption, pos, size, style ))
- return false;
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- Centre();
- return true;
-}
-
-void rockboxInstallDlg::OnBuildBox(wxCommandEvent& event)
-{
- wxString str;
- wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX);
- wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX);
- wxStaticText* DetailText = (wxStaticText*)FindWindow(ID_DETAIL_TXT);
-
- switch(BuildRadioBox->GetSelection() )
- {
- case BUILD_RELEASE:
- str = _("This is the last released version of Rockbox, and is the\n"
- "recommended version to install.");
- NoCacheCheckBox->Enable();
- break;
- case BUILD_DAILY:
- str = _("These are automatically built each day from the current\n"
- "development source code. This generally has more features\n"
- "than the last release but may be much less stable. Features\n"
- "may change regularly.");
- NoCacheCheckBox->Enable();
- break;
- case BUILD_BLEEDING:
- str = _("This is the absolute up to the minute Rockbox built after\n"
- "the last change was made.\n\n"
- "Note: This option will always download a fresh copy from the\n"
- "web server.\n");
- NoCacheCheckBox->Enable(false);
- break;
- default:
- break;
- }
-
- DetailText->SetLabel(str);
-
- this->GetSizer()->Layout();
- this->GetSizer()->Fit(this);
- this->GetSizer()->SetSizeHints(this);
- Refresh();
-}
-
-
-// tranver data from the controls
-bool rockboxInstallDlg::TransferDataFromWindow()
-{
- wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX);
- wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX);
-
- gv->curdestdir = m_devicepos->getDevicePos();
- if(!wxDirExists(gv->curdestdir))
- {
- WARN_DIALOG(wxT("The Devicepostion is not valid"),
- wxT("Select a Deviceposition"));
- gv->curdestdir = wxT("");
- return false;
- }
-
- gv->curbuild = BuildRadioBox->GetSelection();
- gv->nocache = (gv->curbuild == BUILD_BLEEDING) ? true :
- NoCacheCheckBox->IsChecked();
-
- return true;
-}
-
-// tranver data to the controls
-bool rockboxInstallDlg::TransferDataToWindow()
-{
- m_devicepos->setDefault();
-
- if(gv->curplat == wxT(""))
- {
- WARN_DIALOG(wxT("You have not selected a audio device"),
- wxT("Select a Device"));
- return false;
- }
-
- wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX);
-
- int index =gv->plat_id.Index(gv->curplat);
-
- wxCommandEvent updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED,
- ID_BUILD_BOX);
-
- if (gv->plat_released[index] )
- {
- BuildRadioBox->Enable(BUILD_RELEASE, true);
- BuildRadioBox->SetSelection(BUILD_RELEASE);
- } else {
- BuildRadioBox->Enable(BUILD_RELEASE, false);
- BuildRadioBox->SetSelection(BUILD_BLEEDING);
-
- }
- wxPostEvent(this, updateradiobox);
- return true;
-}
diff --git a/rbutil/install_dialogs.h b/rbutil/install_dialogs.h
deleted file mode 100644
index 87c557a26f..0000000000
--- a/rbutil/install_dialogs.h
+++ /dev/null
@@ -1,261 +0,0 @@
-#ifndef INSTALL_DIALOGS_H_INCLUDED
-#define INSTALL_DIALOGS_H_INCLUDED
-
-#include "rbutil.h"
-#include "talkfile.h"
-
-#include "rbutilCtrls.h"
-class bootloaderInstallDlg : public wxDialog
-{
- DECLARE_CLASS( bootloaderInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICEPOS = 1002,
- ID_FIRMWARE = 1003,
- }; //End of Enum
-public:
- bootloaderInstallDlg( );
- bootloaderInstallDlg( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Bootloader Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- // Member initialization
- void Init();
- //Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Bootloader Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- // Creates the controls and sizers
- void CreateControls();
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
-
- DevicePositionCtrl* m_devicepos;
- FirmwarePositionCtrl* m_firmwarepos;
-
-
-};
-
-class talkInstallDlg : public wxDialog
-{
- DECLARE_CLASS( talkInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICEPOS = 1002,
- ID_BROWSE_ENC_BTN = 1003,
- ID_BROWSE_TTS_BTN = 1004,
- ID_TTS_CBX = 1005,
- ID_ENC_CBX = 1006,
- }; //End of Enum
-public:
- talkInstallDlg(TalkFileCreator* talkcreator);
- talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Talk file creation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- /// Member initialization
- void Init();
- /// Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Talk file creation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- /// Creates the controls and sizers
- void CreateControls();
-
- void OnBrowseEncBtn(wxCommandEvent& event);
- void OnBrowseTtsBtn(wxCommandEvent& event);
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
- TalkFileCreator* m_talkCreator;
-
- DevicePositionCtrl* m_devicepos;
-
- wxTextCtrl* m_EncExe;
- wxButton* m_browseEncBtn;
- wxTextCtrl* m_EncOpts;
- wxComboBox* m_Enc;
-
- wxTextCtrl* m_TtsExe;
- wxButton* m_browseTtsBtn;
- wxTextCtrl* m_TtsOpts;
- wxComboBox* m_Tts;
-
-
- wxCheckBox* m_OverwriteWave;
- wxCheckBox* m_OverwriteTalk;
- wxCheckBox* m_RemoveWave;
- wxCheckBox* m_Recursive;
- wxCheckBox* m_StripExtensions;
-
-};
-
-
-class fontInstallDlg : public wxDialog
-{
- DECLARE_CLASS( fontInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICEPOS = 1002,
- }; //End of Enum
-public:
- fontInstallDlg( );
- fontInstallDlg( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Font Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- /// Member initialization
- void Init();
- /// Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Font Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- /// Creates the controls and sizers
- void CreateControls();
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
- DevicePositionCtrl* m_devicepos;
-};
-
-
-class rockboxDeInstallDlg : public wxDialog
-{
- DECLARE_CLASS( rockboxDeInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICEPOS = 1002,
- ID_FULL_CHCKBX = 1003,
- }; //End of Enum
-public:
- rockboxDeInstallDlg( );
- rockboxDeInstallDlg( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Rockbox Deinstallation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style =wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- /// Member initialization
- void Init();
- /// Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Rockbox Deinstallation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style =wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- /// Creates the controls and sizers
- void CreateControls();
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
- DevicePositionCtrl* m_devicepos;
-};
-
-class themesInstallDlg : public wxDialog
-{
- DECLARE_CLASS( themesInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICE = 1001,
- ID_DEVICEPOS = 1002,
- ID_THEME = 1006,
- }; //End of Enum
-public:
- themesInstallDlg( );
- themesInstallDlg( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Themes Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- // Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Themes Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- // Creates the controls and sizers
- void CreateControls();
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
- wxString currentPreview;
- DevicePositionCtrl* m_devicepos;
- ThemeCtrl* m_theme;
-
-};
-
-class rockboxInstallDlg : public wxDialog
-{
- DECLARE_CLASS( rockboxInstallDlg )
- DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICEPOS = 1002,
- ID_BUILD_BOX = 1006,
- ID_DEVICE_POS_CTRL = 1007,
- ID_DETAIL_TXT = 1008,
- ID_NOCACHE_CHCKBX =1009,
-
- }; //End of Enum
-public:
- rockboxInstallDlg( );
- rockboxInstallDlg( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Rockbox Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- // Creation
- bool Create( wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxString& caption = wxT("Rockbox Installation"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER );
- // Creates the controls and sizers
- void CreateControls();
-
- void OnBuildBox(wxCommandEvent& event);
-
- bool TransferDataFromWindow();
- bool TransferDataToWindow();
-
-private:
- DevicePositionCtrl* m_devicepos;
-};
-
-#endif // INSTALL_DIALOGS_H_INCLUDED
diff --git a/rbutil/installlog.cpp b/rbutil/installlog.cpp
deleted file mode 100644
index 7f6fa999f6..0000000000
--- a/rbutil/installlog.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: installlog.cpp
- *
- * Copyright (C) 2006 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "installlog.h"
-#include "rbutil.h"
-
-InstallLog::InstallLog(wxString logname, bool CreateLog)
-{
- wxString buf;
- dirtyflag = true;
-
- if (! CreateLog && ! wxFileExists(logname) ) return;
-
- logfile = new wxFileConfig(wxEmptyString, wxEmptyString, logname);
-
-
- if (!logfile)
- {
- wxLogWarning(_("Failed to create install log file: ") + logname);
- return;
- }
-
- logfile->SetPath(wxT("/InstallLog"));
- if (logfile->Exists(wxT("Version")) &&
- logfile->Read(wxT("Version"), 0l) != LOGFILE_VERSION )
- {
- wxLogWarning(_("Logfile version mismatch: ") + logname);
- delete logfile;
- return;
- }
-
- logfile->Write(wxT("Version"), LOGFILE_VERSION);
- dirtyflag = false;
-}
-
-InstallLog::~InstallLog()
-{
- if (dirtyflag) return;
-
- delete logfile;
-}
-
-unsigned int InstallLog::WriteFile(wxString filepath, bool isDir)
-{
- wxString key, buf;
- long installcount = 0;
-
- if (dirtyflag) return true;
-
- filepath.Replace(PATH_SEP, wxT("/") );
-
- if (filepath.GetChar(0) == '/')
- filepath = filepath.Right(filepath.Len() - 1);
-
- logfile->SetPath(wxT("/FilePaths"));
- installcount = logfile->Read(filepath, 0l);
-
- if (isDir)
- {
- filepath.Append(wxT("/" DIRECTORY_KLUDGE) ); // Needed for empty dirs
- }
-
- logfile->Write(filepath, ++installcount);
-
- return false;
-}
-
-unsigned int InstallLog::WriteFile(wxArrayString filepaths)
-{
- unsigned long i;
- unsigned int finalrc = false;
- wxString thisone;
-
- if (dirtyflag) return true;
-
- for (i = 0; i < filepaths.GetCount(); i++);
- {
- if ( WriteFile(filepaths[i]) )
- {
- finalrc++;
- }
- }
-
- return finalrc;
-}
-
-wxArrayString* InstallLog::GetInstalledFiles()
-{
- wxString curdir = wxT("");
-
- if (dirtyflag) return NULL;
- workingAS.Clear();
-
- EnumerateCurDir(wxT(""));
-
- wxArrayString* out = new wxArrayString(workingAS);
- return out;
-}
-
-void InstallLog::EnumerateCurDir(wxString curdir)
-{
- bool contflag;
- wxString curname, buf, buf2, pathcache;
- long dummy;
-
- buf = wxT("/FilePaths/") + curdir;
- pathcache = logfile->GetPath();
- logfile->SetPath(buf);
-
- contflag = logfile->GetFirstGroup(curname, dummy);
- while (contflag)
- {
- buf = curdir + wxT("/") + curname;
- buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP);
- workingAS.Add(buf2);
- EnumerateCurDir(buf);
- contflag = logfile->GetNextGroup(curname, dummy);
- }
-
- contflag = logfile->GetFirstEntry(curname, dummy);
- while (contflag)
- {
- if (curname != wxT(DIRECTORY_KLUDGE) )
- {
- buf = curdir + wxT("" PATH_SEP) + curname;
- workingAS.Add(buf);
- }
- contflag = logfile->GetNextEntry(curname, dummy);
- }
-
- logfile->SetPath(pathcache);
-}
-
diff --git a/rbutil/installlog.h b/rbutil/installlog.h
deleted file mode 100644
index cb85e08359..0000000000
--- a/rbutil/installlog.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: installlog.h
- *
- * Copyright (C) 2006 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-#ifndef INSTALLLOG_H_INCLUDED
-#define INSTALLLOG_H_INCLUDED
-
-#include <wx/wxprec.h>
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-#ifndef WX_PRECOMP
- #include <wx/wx.h>
-#endif
-
-#include <wx/confbase.h>
-#include <wx/fileconf.h>
-
-#define LOGFILE_VERSION 1
-#define DIRECTORY_KLUDGE "_DIRECTORY_MARKER_RECORD_KLUDGE_"
-class InstallLog
-{
- // Class variables
- wxFileConfig* logfile;
-
- // Methods
- public:
- InstallLog(wxString logname, bool CreateLog = true);
- ~InstallLog();
- unsigned int WriteFile(wxString filepath, bool isDir = false);
- unsigned int WriteFile(wxArrayString filepaths);
- wxArrayString* GetInstalledFiles();
-
- private:
- bool dirtyflag;
- wxArrayString workingAS;
-// long dummy;
-
- private:
- void EnumerateCurDir(wxString curdir);
-}; // InstallLog
-
-
-#endif // INSTALLLOG_H_INCLUDED
diff --git a/rbutil/irivertools.cpp b/rbutil/irivertools.cpp
deleted file mode 100755
index 9b7cd5a4f3..0000000000
--- a/rbutil/irivertools.cpp
+++ /dev/null
@@ -1,604 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: irivertools.cpp
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "irivertools.h"
-
-
-const unsigned char munge[] = {
- 0x7a, 0x36, 0xc4, 0x43, 0x49, 0x6b, 0x35, 0x4e, 0xa3, 0x46, 0x25, 0x84,
- 0x4d, 0x73, 0x74, 0x61
-};
-
-const unsigned char header_modify[] = "* IHPFIRM-DECODED ";
-
-const char * const models[] = { "iHP-100", "iHP-120/iHP-140", "H300 series",
- NULL };
-
-/* aligns with models array; expected min firmware size */
-const unsigned int firmware_minsize[] = { 0x100000, 0x100000, 0x200000 };
-/* aligns with models array; expected max firmware size */
-const unsigned int firmware_maxsize[] = { 0x200000, 0x200000, 0x400000 };
-
-const unsigned char header[][16] = {
- { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 },
- { 0x20, 0x03, 0x08, 0x27, 0x24, 0x00, 0x02, 0x30, 0x19, 0x17, 0x65, 0x73,
- 0x85, 0x32, 0x83, 0x22 },
- { 0x20, 0x04, 0x03, 0x27, 0x20, 0x50, 0x01, 0x70, 0x80, 0x30, 0x80, 0x06,
- 0x30, 0x19, 0x17, 0x65 }
-};
-
-/* begin mkboot.c excerpt */
-unsigned char image[0x400000 + 0x220 + 0x400000/0x200];
-
-bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin)
-{
- wxString err;
- int i;
- int len,bllen;
- int actual_length, total_length, binary_length, num_chksums;
-
- memset(image, 0xff, sizeof(image));
-
- /* First, read the iriver original firmware into the image */
- wxFile f;
- if(!f.Open(infile))
- {
- ERR_DIALOG(wxT("Could not open: ") + infile, wxT("mkboot"));
- return false;
- }
- i = f.Read(image,16);
- if(i < 16) {
- ERR_DIALOG(wxT("reading header failed"), wxT("mkboot"));
- return false;
- }
-
- /* This is the length of the binary image without the scrambling
- overhead (but including the ESTFBINR header) */
- binary_length = image[4] + (image[5] << 8) +
- (image[6] << 16) + (image[7] << 24);
-
- /* Read the rest of the binary data, but not the checksum block */
- len = binary_length+0x200-16;
- i = f.Read(image+16, len);
- if(i < len) {
- ERR_DIALOG(wxT("reading firmware failed"),wxT("mkboot"));
- return false;
- }
-
- f.Close();
- /* Now, read the boot loader into the image */
- if(!f.Open(bootloader))
- {
- ERR_DIALOG(wxT("Could not open: ") + bootloader, wxT("mkboot"));
- return false;
- }
-
- bllen = f.Length();
-
- i = f.Read(image+0x220 + origin, bllen);
- if(i < bllen) {
- ERR_DIALOG(wxT("reading bootloader failed"), wxT("mkboot"));
- return false;
- }
-
- f.Close();
-
- if(!f.Open(outfile,wxFile::write))
- {
- ERR_DIALOG(wxT("Could not open: ") + outfile, wxT("mkboot"));
- return false;
- }
-
- /* Patch the reset vector to start the boot loader */
- image[0x220 + 4] = image[origin + 0x220 + 4];
- image[0x220 + 5] = image[origin + 0x220 + 5];
- image[0x220 + 6] = image[origin + 0x220 + 6];
- image[0x220 + 7] = image[origin + 0x220 + 7];
-
- /* This is the actual length of the binary, excluding all headers */
- actual_length = origin + bllen;
-
- /* Patch the ESTFBINR header */
- image[0x20c] = (actual_length >> 24) & 0xff;
- image[0x20d] = (actual_length >> 16) & 0xff;
- image[0x20e] = (actual_length >> 8) & 0xff;
- image[0x20f] = actual_length & 0xff;
-
- image[0x21c] = (actual_length >> 24) & 0xff;
- image[0x21d] = (actual_length >> 16) & 0xff;
- image[0x21e] = (actual_length >> 8) & 0xff;
- image[0x21f] = actual_length & 0xff;
-
- /* This is the length of the binary, including the ESTFBINR header and
- rounded up to the nearest 0x200 boundary */
- binary_length = (actual_length + 0x20 + 0x1ff) & 0xfffffe00;
-
- /* The number of checksums, i.e number of 0x200 byte blocks */
- num_chksums = binary_length / 0x200;
-
- /* The total file length, including all headers and checksums */
- total_length = binary_length + num_chksums + 0x200;
-
- /* Patch the scrambler header with the new length info */
- image[0] = total_length & 0xff;
- image[1] = (total_length >> 8) & 0xff;
- image[2] = (total_length >> 16) & 0xff;
- image[3] = (total_length >> 24) & 0xff;
-
- image[4] = binary_length & 0xff;
- image[5] = (binary_length >> 8) & 0xff;
- image[6] = (binary_length >> 16) & 0xff;
- image[7] = (binary_length >> 24) & 0xff;
-
- image[8] = num_chksums & 0xff;
- image[9] = (num_chksums >> 8) & 0xff;
- image[10] = (num_chksums >> 16) & 0xff;
- image[11] = (num_chksums >> 24) & 0xff;
-
- i = f.Write(image,total_length);
- if(i < total_length) {
- ERR_DIALOG(wxT("writing bootloader failed"), wxT("mkboot"));
- return false;
- }
-
- f.Close();
-
- return true;
-}
-
-/* end mkboot.c excerpt */
-
-
-int intable(char *md5, struct sumpairs *table, int len)
-{
- int i;
- for (i = 0; i < len; i++) {
- if (strncmp(md5, table[i].unpatched, 32) == 0) {
- return i;
- }
- }
- return -1;
-}
-
-
-
-
-static int testheader( const unsigned char * const data )
-{
- const unsigned char * const d = data+16;
- const char * const * m = models;
- int index = 0;
- while( *m )
- {
- if( memcmp( header[ index ], d, 16 ) == 0 )
- return index;
- index++;
- m++;
- };
- return -1;
-};
-
-static void modifyheader( unsigned char * data )
-{
- const unsigned char * h = header_modify;
- int i;
- for( i=0; i<512; i++ )
- {
- if( *h == '\0' )
- h = header_modify;
- *data++ ^= *h++;
- };
-};
-
-int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modify,
- enum striptype stripmode )
-{
- wxString err;
- wxFile infile;
- wxFile outfile;
- int i = -1;
- unsigned char headerdata[512];
- unsigned long dwLength1, dwLength2, dwLength3, fp = 0;
- unsigned char blockdata[16+16];
- unsigned char out[16];
- unsigned char newmunge;
- signed long lenread;
- int s = 0;
- unsigned char * pChecksums, * ppChecksums = 0;
- unsigned char ck;
-
- if(!infile.Open(infile_name))
- {
- ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode"));
- return -1;
- }
- if(!outfile.Open(outfile_name,wxFile::write))
- {
- ERR_DIALOG(wxT("Could not open: ") + outfile_name,
- wxT("iriver_decode"));
- return -1;
- }
- lenread = infile.Read( headerdata, 512);
- if( lenread != 512 )
- {
- ERR_DIALOG(wxT("This doesn't look like a valid encrypted iHP "
- "firmware - reason: header length\n"),wxT("iriver_decode"));
-
- infile.Close();
- outfile.Close();
- return -1;
- };
-
- i = testheader( headerdata );
- if( i == -1 )
- {
- ERR_DIALOG( wxT( "This firmware is for an unknown model, or is not"
- " a valid encrypted iHP firmware\n" ),wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- return -1;
- };
- fprintf( stderr, "Model %s\n", models[ i ] );
-
- dwLength1 = headerdata[0] | (headerdata[1]<<8) |
- (headerdata[2]<<16) | (headerdata[3]<<24);
- dwLength2 = headerdata[4] | (headerdata[5]<<8) |
- (headerdata[6]<<16) | (headerdata[7]<<24);
- dwLength3 = headerdata[8] | (headerdata[9]<<8) |
- (headerdata[10]<<16) | (headerdata[11]<<24);
-
- if( dwLength1 < firmware_minsize[ i ] ||
- dwLength1 > firmware_maxsize[ i ] ||
- dwLength2 < firmware_minsize[ i ] ||
- dwLength2 > dwLength1 ||
- dwLength3 > dwLength1 ||
- dwLength2>>9 != dwLength3 ||
- dwLength2+dwLength3+512 != dwLength1 )
- {
- ERR_DIALOG( wxT( "This doesn't look like a valid encrypted "
- "iHP firmware - reason: file 'length' data\n" ),wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- return -1;
- };
-
- pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) );
-
- if( modify )
- {
- modifyheader( headerdata );
- };
-
- if( stripmode == STRIP_NONE )
- outfile.Write( headerdata, 512);
-
- memset( blockdata, 0, 16 );
-
- ck = 0;
- while( ( fp < dwLength2 ) &&
- ( lenread = infile.Read( blockdata+16, 16) == 16) )
- {
- fp += 16;
-
- for( i=0; i<16; ++i )
- {
- newmunge = blockdata[16+i] ^ munge[i];
- out[i] = newmunge ^ blockdata[i];
- blockdata[i] = newmunge;
- ck += out[i];
- }
-
- if( fp > ESTF_SIZE || stripmode != STRIP_HEADER_CHECKSUM_ESTF )
- {
- outfile.Write( out+4, 12);
- outfile.Write( out, 4);
- }
- else
- {
- if( ESTF_SIZE - fp < 16 )
- {
- memcpy( out+4, blockdata+16, 12 );
- memcpy( out, blockdata+28, 4 );
- outfile.Write( blockdata+16+ESTF_SIZE-fp, ESTF_SIZE-fp);
- }
- }
-
-
- if( s == 496 )
- {
- s = 0;
- memset( blockdata, 0, 16 );
- *ppChecksums++ = ck;
- ck = 0;
- }
- else
- s+=16;
- };
-
- if( fp != dwLength2 )
- {
- ERR_DIALOG( wxT( "This doesn't look like a valid encrypted "
- "iHP firmware - reason: 'length2' mismatch\n" ),wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- return -1;
- };
-
- fp = 0;
- ppChecksums = pChecksums;
- while( ( fp < dwLength3 ) &&
- ( lenread = infile.Read( blockdata, 32 ) ) > 0 )
- {
- fp += lenread;
- if( stripmode == STRIP_NONE )
- outfile.Write( blockdata, lenread );
- if( memcmp( ppChecksums, blockdata, lenread ) != 0 )
- {
- ERR_DIALOG( wxT( "This doesn't look like a valid encrypted "
- "iHP firmware - reason: Checksum mismatch!" ),wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- return -1;
- };
- ppChecksums += lenread;
- };
-
- if( fp != dwLength3 )
- {
- ERR_DIALOG(wxT( "This doesn't look like a valid encrypted "
- "iHP firmware - reason: 'length3' mismatch\n" ),wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- return -1;
- };
-
-
- fprintf( stderr, "File decoded correctly and all checksums matched!\n" );
- switch( stripmode )
- {
- default:
- case STRIP_NONE:
- fprintf(stderr, "Output file contains all headers and "
- "checksums\n");
- break;
- case STRIP_HEADER_CHECKSUM:
- fprintf( stderr, "NB: output file contains only ESTFBINR header"
- " and decoded firmware code\n" );
- break;
- case STRIP_HEADER_CHECKSUM_ESTF:
- fprintf( stderr, "NB: output file contains only raw decoded "
- "firmware code\n" );
- break;
- };
-
- infile.Close();
- outfile.Close();
- return 0;
-
-};
-
-int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modify )
-{
- wxString err;
- wxFile infile;
- wxFile outfile;
- int i = -1;
- unsigned char headerdata[512];
- unsigned long dwLength1, dwLength2, dwLength3, fp = 0;
- unsigned char blockdata[16+16];
- unsigned char out[16];
- unsigned char newmunge;
- signed long lenread;
- int s = 0;
- unsigned char * pChecksums, * ppChecksums;
- unsigned char ck;
-
- if(!infile.Open(infile_name,wxFile::read))
- {
- ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode"));
- return -1;
- }
- if(!outfile.Open(outfile_name,wxFile::write))
- {
- ERR_DIALOG(wxT("Could not open: ") + outfile_name,
- wxT("iriver_decode"));
- return -1;
- }
-
- lenread = infile.Read( headerdata, 512 );
- if( lenread != 512 )
- {
- ERR_DIALOG(wxT("This doesn't look like a valid decoded "
- "iHP firmware - reason: header length\n"), wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- };
-
- if( modify )
- {
- modifyheader( headerdata ); /* reversible */
- };
-
- i = testheader( headerdata );
- if( i == -1 )
- {
- ERR_DIALOG(wxT("This firmware is for an unknown model, or is not"
- " a valid decoded iHP firmware\n"), wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- };
- fprintf( stderr, "Model %s\n", models[ i ] );
-
- dwLength1 = headerdata[0] | (headerdata[1]<<8) |
- (headerdata[2]<<16) | (headerdata[3]<<24);
- dwLength2 = headerdata[4] | (headerdata[5]<<8) |
- (headerdata[6]<<16) | (headerdata[7]<<24);
- dwLength3 = headerdata[8] | (headerdata[9]<<8) |
- (headerdata[10]<<16) | (headerdata[11]<<24);
-
- if( dwLength1 < firmware_minsize[i] ||
- dwLength1 > firmware_maxsize[i] ||
- dwLength2 < firmware_minsize[i] ||
- dwLength2 > dwLength1 ||
- dwLength3 > dwLength1 ||
- dwLength2+dwLength3+512 != dwLength1 )
- {
- ERR_DIALOG(wxT("This doesn't look like a valid decoded iHP"
- " firmware - reason: file 'length' data\n"), wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- };
-
- pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) );
-
- outfile.Write( headerdata, 512);
-
- memset( blockdata, 0, 16 );
- ck = 0;
- while( ( fp < dwLength2 ) &&
- ( lenread = infile.Read( blockdata+16, 16) ) == 16 )
- {
- fp += 16;
- for( i=0; i<16; ++i )
- {
- newmunge = blockdata[16+((12+i)&0xf)] ^ blockdata[i];
- out[i] = newmunge ^ munge[i];
- ck += blockdata[16+i];
- blockdata[i] = newmunge;
- };
- outfile.Write( out, 16);
-
- if( s == 496 )
- {
- s = 0;
- memset( blockdata, 0, 16 );
- *ppChecksums++ = ck;
- ck = 0;
- }
- else
- s+=16;
- };
-
- if( fp != dwLength2 )
- {
- ERR_DIALOG(wxT("This doesn't look like a valid decoded "
- "iHP firmware - reason: 'length1' mismatch\n"), wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- };
-
- /* write out remainder w/out applying descrambler */
- fp = 0;
- lenread = dwLength3;
- ppChecksums = pChecksums;
- while( ( fp < dwLength3) &&
- ( lenread = outfile.Write( ppChecksums, lenread) ) > 0 )
- {
- fp += lenread;
- ppChecksums += lenread;
- lenread = dwLength3 - fp;
- };
-
- if( fp != dwLength3 )
- {
- ERR_DIALOG(wxT("This doesn't look like a valid decoded "
- "iHP firmware - reason: 'length2' mismatch\n"), wxT("iriver_decode"));
- infile.Close();
- outfile.Close();
- };
-
- fprintf( stderr, "File encoded successfully and checksum table built!\n" );
-
- infile.Close();
- outfile.Close();
- return 0;
-
-};
-
-bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry)
-{
- wxString name1, name2, name3;
-
- char md5sum_str[32];
- struct sumpairs *sums;
- int origin;
-
- /* get pointer to the correct bootloader.bin */
- switch(series) {
- case 100:
- sums = &h100pairs[0];
- origin = 0x1f0000;
- break;
- case 120:
- sums = &h120pairs[0];
- origin = 0x1f0000;
- break;
- case 300:
- sums = &h300pairs[0];
- origin = 0x3f0000;
- break;
- }
-
- name1 = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP "firmware.bin"),
- /* descrambled file */
- name2 = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP "new.bin");
- /* patched file */
- name3 = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP "new.hex");
- if (iriver_decode(firmware, name1, FALSE, STRIP_NONE) == -1) {
- ERR_DIALOG(wxT("Error in descramble"), wxT("Descramble Firmware"));
- wxRemoveFile(name1);
- wxRemoveFile(name2);
- wxRemoveFile(name3);
- return false;
- }
- if (!mkboot(name1, name2, bootloader, origin)) {
- ERR_DIALOG(wxT("Error in patching"),wxT("Patching Firmware"));
- wxRemoveFile(name1);
- wxRemoveFile(name2);
- wxRemoveFile(name3);
- return false;
- }
- if (iriver_encode(name2, name3, FALSE) == -1) {
- ERR_DIALOG(wxT("Error in scramble"),wxT("Scramble Firmware"));
- wxRemoveFile(name1);
- wxRemoveFile(name2);
- wxRemoveFile(name3);
- return false;
- }
- /* now md5sum it */
- if (!FileMD5(name3, md5sum_str)) {
- ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware"));
- wxRemoveFile(name1);
- wxRemoveFile(name2);
- wxRemoveFile(name3);
- return false;
- }
- if (strncmp(sums[table_entry].patched, md5sum_str, 32) == 0) {
- /* delete temp files */
- wxRemoveFile(name1);
- wxRemoveFile(name2);
- }
-
- return true;
-}
-
diff --git a/rbutil/irivertools.h b/rbutil/irivertools.h
deleted file mode 100755
index d646cf1d6c..0000000000
--- a/rbutil/irivertools.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: irivertools.h
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-#ifndef IRIVERTOOLS_H_INCLUDED
-#define IRIVERTOOLS_H_INCLUDED
-
-#include "rbutil.h"
-#include "installlog.h"
-#include "md5sum.h"
-
-#define ESTF_SIZE 32
-
-struct sumpairs {
- char *unpatched;
- char *patched;
-};
-
-/* precalculated checksums for H110/H115 */
-static struct sumpairs h100pairs[] = {
-#include "h100sums.h"
-};
-
-/* precalculated checksums for H120/H140 */
-static struct sumpairs h120pairs[] = {
-#include "h120sums.h"
-};
-
-/* precalculated checksums for H320/H340 */
-static struct sumpairs h300pairs[] = {
-#include "h300sums.h"
-};
-
-
-enum striptype
-{
- STRIP_NONE,
- STRIP_HEADER_CHECKSUM,
- STRIP_HEADER_CHECKSUM_ESTF
-};
-
-/* protos for iriver.c */
-
-int intable(char *md5, struct sumpairs *table, int len);
-
-bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry);
-
-
-#endif // IRIVERTOOLS_H_INCLUDED
diff --git a/rbutil/md5sum.cpp b/rbutil/md5sum.cpp
deleted file mode 100755
index e1c23c9867..0000000000
--- a/rbutil/md5sum.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: md5sum.cpp
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-/*
- * RFC 1321 compliant MD5 implementation
- *
- * Copyright (C) 2001-2003 Christophe Devine
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-#include "md5sum.h"
-
-
-#define GET_UINT32(n,b,i) \
-{ \
- (n) = ( (uint32) (b)[(i) ] ) \
- | ( (uint32) (b)[(i) + 1] << 8 ) \
- | ( (uint32) (b)[(i) + 2] << 16 ) \
- | ( (uint32) (b)[(i) + 3] << 24 ); \
-}
-
-#define PUT_UINT32(n,b,i) \
-{ \
- (b)[(i) ] = (uint8) ( (n) ); \
- (b)[(i) + 1] = (uint8) ( (n) >> 8 ); \
- (b)[(i) + 2] = (uint8) ( (n) >> 16 ); \
- (b)[(i) + 3] = (uint8) ( (n) >> 24 ); \
-}
-
-void md5_starts( md5_context *ctx )
-{
- ctx->total[0] = 0;
- ctx->total[1] = 0;
-
- ctx->state[0] = 0x67452301;
- ctx->state[1] = 0xEFCDAB89;
- ctx->state[2] = 0x98BADCFE;
- ctx->state[3] = 0x10325476;
-}
-
-void md5_process( md5_context *ctx, uint8 data[64] )
-{
- uint32 X[16], A, B, C, D;
-
- GET_UINT32( X[0], data, 0 );
- GET_UINT32( X[1], data, 4 );
- GET_UINT32( X[2], data, 8 );
- GET_UINT32( X[3], data, 12 );
- GET_UINT32( X[4], data, 16 );
- GET_UINT32( X[5], data, 20 );
- GET_UINT32( X[6], data, 24 );
- GET_UINT32( X[7], data, 28 );
- GET_UINT32( X[8], data, 32 );
- GET_UINT32( X[9], data, 36 );
- GET_UINT32( X[10], data, 40 );
- GET_UINT32( X[11], data, 44 );
- GET_UINT32( X[12], data, 48 );
- GET_UINT32( X[13], data, 52 );
- GET_UINT32( X[14], data, 56 );
- GET_UINT32( X[15], data, 60 );
-
-#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
-
-#define P(a,b,c,d,k,s,t) \
-{ \
- a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \
-}
-
- A = ctx->state[0];
- B = ctx->state[1];
- C = ctx->state[2];
- D = ctx->state[3];
-
-#define F(x,y,z) (z ^ (x & (y ^ z)))
-
- P( A, B, C, D, 0, 7, 0xD76AA478 );
- P( D, A, B, C, 1, 12, 0xE8C7B756 );
- P( C, D, A, B, 2, 17, 0x242070DB );
- P( B, C, D, A, 3, 22, 0xC1BDCEEE );
- P( A, B, C, D, 4, 7, 0xF57C0FAF );
- P( D, A, B, C, 5, 12, 0x4787C62A );
- P( C, D, A, B, 6, 17, 0xA8304613 );
- P( B, C, D, A, 7, 22, 0xFD469501 );
- P( A, B, C, D, 8, 7, 0x698098D8 );
- P( D, A, B, C, 9, 12, 0x8B44F7AF );
- P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
- P( B, C, D, A, 11, 22, 0x895CD7BE );
- P( A, B, C, D, 12, 7, 0x6B901122 );
- P( D, A, B, C, 13, 12, 0xFD987193 );
- P( C, D, A, B, 14, 17, 0xA679438E );
- P( B, C, D, A, 15, 22, 0x49B40821 );
-
-#undef F
-
-#define F(x,y,z) (y ^ (z & (x ^ y)))
-
- P( A, B, C, D, 1, 5, 0xF61E2562 );
- P( D, A, B, C, 6, 9, 0xC040B340 );
- P( C, D, A, B, 11, 14, 0x265E5A51 );
- P( B, C, D, A, 0, 20, 0xE9B6C7AA );
- P( A, B, C, D, 5, 5, 0xD62F105D );
- P( D, A, B, C, 10, 9, 0x02441453 );
- P( C, D, A, B, 15, 14, 0xD8A1E681 );
- P( B, C, D, A, 4, 20, 0xE7D3FBC8 );
- P( A, B, C, D, 9, 5, 0x21E1CDE6 );
- P( D, A, B, C, 14, 9, 0xC33707D6 );
- P( C, D, A, B, 3, 14, 0xF4D50D87 );
- P( B, C, D, A, 8, 20, 0x455A14ED );
- P( A, B, C, D, 13, 5, 0xA9E3E905 );
- P( D, A, B, C, 2, 9, 0xFCEFA3F8 );
- P( C, D, A, B, 7, 14, 0x676F02D9 );
- P( B, C, D, A, 12, 20, 0x8D2A4C8A );
-
-#undef F
-
-#define F(x,y,z) (x ^ y ^ z)
-
- P( A, B, C, D, 5, 4, 0xFFFA3942 );
- P( D, A, B, C, 8, 11, 0x8771F681 );
- P( C, D, A, B, 11, 16, 0x6D9D6122 );
- P( B, C, D, A, 14, 23, 0xFDE5380C );
- P( A, B, C, D, 1, 4, 0xA4BEEA44 );
- P( D, A, B, C, 4, 11, 0x4BDECFA9 );
- P( C, D, A, B, 7, 16, 0xF6BB4B60 );
- P( B, C, D, A, 10, 23, 0xBEBFBC70 );
- P( A, B, C, D, 13, 4, 0x289B7EC6 );
- P( D, A, B, C, 0, 11, 0xEAA127FA );
- P( C, D, A, B, 3, 16, 0xD4EF3085 );
- P( B, C, D, A, 6, 23, 0x04881D05 );
- P( A, B, C, D, 9, 4, 0xD9D4D039 );
- P( D, A, B, C, 12, 11, 0xE6DB99E5 );
- P( C, D, A, B, 15, 16, 0x1FA27CF8 );
- P( B, C, D, A, 2, 23, 0xC4AC5665 );
-
-#undef F
-
-#define F(x,y,z) (y ^ (x | ~z))
-
- P( A, B, C, D, 0, 6, 0xF4292244 );
- P( D, A, B, C, 7, 10, 0x432AFF97 );
- P( C, D, A, B, 14, 15, 0xAB9423A7 );
- P( B, C, D, A, 5, 21, 0xFC93A039 );
- P( A, B, C, D, 12, 6, 0x655B59C3 );
- P( D, A, B, C, 3, 10, 0x8F0CCC92 );
- P( C, D, A, B, 10, 15, 0xFFEFF47D );
- P( B, C, D, A, 1, 21, 0x85845DD1 );
- P( A, B, C, D, 8, 6, 0x6FA87E4F );
- P( D, A, B, C, 15, 10, 0xFE2CE6E0 );
- P( C, D, A, B, 6, 15, 0xA3014314 );
- P( B, C, D, A, 13, 21, 0x4E0811A1 );
- P( A, B, C, D, 4, 6, 0xF7537E82 );
- P( D, A, B, C, 11, 10, 0xBD3AF235 );
- P( C, D, A, B, 2, 15, 0x2AD7D2BB );
- P( B, C, D, A, 9, 21, 0xEB86D391 );
-
-#undef F
-#undef S
-#undef P
-
-
- ctx->state[0] += A;
- ctx->state[1] += B;
- ctx->state[2] += C;
- ctx->state[3] += D;
-}
-
-void md5_update( md5_context *ctx, uint8 *input, uint32 length )
-{
- uint32 left, fill;
-
- if( ! length ) return;
-
- left = ctx->total[0] & 0x3F;
- fill = 64 - left;
-
- ctx->total[0] += length;
- ctx->total[0] &= 0xFFFFFFFF;
-
- if( ctx->total[0] < length )
- ctx->total[1]++;
-
- if( left && length >= fill )
- {
- memcpy( (void *) (ctx->buffer + left),
- (void *) input, fill );
- md5_process( ctx, ctx->buffer );
- length -= fill;
- input += fill;
- left = 0;
- }
-
- while( length >= 64 )
- {
- md5_process( ctx, input );
- length -= 64;
- input += 64;
- }
-
- if( length )
- {
- memcpy( (void *) (ctx->buffer + left),
- (void *) input, length );
- }
-}
-
-static uint8 md5_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
-};
-
-void md5_finish( md5_context *ctx, uint8 digest[16] )
-{
- uint32 last, padn;
- uint32 high, low;
- uint8 msglen[8];
-
- high = ( ctx->total[0] >> 29 )
- | ( ctx->total[1] << 3 );
- low = ( ctx->total[0] << 3 );
-
- PUT_UINT32( low, msglen, 0 );
- PUT_UINT32( high, msglen, 4 );
-
- last = ctx->total[0] & 0x3F;
- padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
-
- md5_update( ctx, md5_padding, padn );
- md5_update( ctx, msglen, 8 );
-
- PUT_UINT32( ctx->state[0], digest, 0 );
- PUT_UINT32( ctx->state[1], digest, 4 );
- PUT_UINT32( ctx->state[2], digest, 8 );
- PUT_UINT32( ctx->state[3], digest, 12 );
-}
-
-int FileMD5(wxString name, char *md5)
-{
- int i, read;
- md5_context ctx;
- unsigned char md5sum[16];
- unsigned char block[32768];
-
- wxFile file;
-
- file.Open(name);
-
- if (!file.IsOpened()) {
- ERR_DIALOG(wxT("Could not open patched firmware for checksum check"), wxT("Open Firmware"));
- return 0;
- }
- md5_starts(&ctx);
- while ( !file.Eof() ) {
- read = file.Read(block, sizeof(block));
- md5_update(&ctx, block, read);
- }
- file.Close();
- md5_finish(&ctx, md5sum);
- for (i = 0; i < 16; ++i)
- {
- sprintf(md5 + 2*i, "%02x", md5sum[i]);
- }
- return 1;
-}
diff --git a/rbutil/md5sum.h b/rbutil/md5sum.h
deleted file mode 100755
index f7ea439b6f..0000000000
--- a/rbutil/md5sum.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: md5sum.h
- *
- * Copyright (C) 2007 Dominik Wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-#ifndef MD5SUM_H_INCLUDED
-#define MD5SUM_H_INCLUDED
-
-#ifndef uint8
-#define uint8 unsigned char
-#endif
-
-
-#ifndef uint32
-#define uint32 unsigned long int
-#endif
-
-#include "rbutil.h"
-
-
-typedef struct
-{
- uint32 total[2];
- uint32 state[4];
- uint8 buffer[64];
-}
-md5_context;
-
-void md5_starts( md5_context *ctx );
-void md5_update( md5_context *ctx, uint8 *input, uint32 length );
-void md5_finish( md5_context *ctx, uint8 digest[16] );
-
-int FileMD5(wxString name, char *md5);
-
-#endif // MD5SUM_H_INCLUDED
diff --git a/rbutil/rblogo.xpm b/rbutil/rblogo.xpm
deleted file mode 100644
index d14f01517f..0000000000
--- a/rbutil/rblogo.xpm
+++ /dev/null
@@ -1,254 +0,0 @@
-/* WxStaticBitmap1_XPM XPM */
-static char * rblogo_xpm[] = {
-"400 123 128 2",
-" c #FFC500",
-". c #DBA500",
-"+ c #C79600",
-"@ c #A1B4C5",
-"# c #798C9C",
-"$ c #8C8F92",
-"% c #6B7176",
-"& c #B38700",
-"* c #876601",
-"= c #B3C3D2",
-"- c #392B00",
-"; c #E7E7E7",
-"> c #EBB200",
-", c #9CB1C4",
-"' c #FFC800",
-") c #8497A9",
-"! c #4A4D4F",
-"~ c #2D2E30",
-"{ c #FEFEFE",
-"] c #CCD8E2",
-"^ c #E3AC00",
-"/ c #745801",
-"( c #BBC9D6",
-"_ c #97ADC1",
-": c #A5B9CA",
-"< c #C7C7C7",
-"[ c #C6D2DD",
-"} c #8AA1B6",
-"| c #493801",
-"1 c #C1CDD9",
-"2 c #654D00",
-"3 c #A37B00",
-"4 c #9A7400",
-"5 c #F4B800",
-"6 c #BECBD8",
-"7 c #5A4401",
-"8 c #AABCCC",
-"9 c #D5D5D5",
-"0 c #B8B8B8",
-"a c #A6A6A6",
-"b c #ACBECD",
-"c c #FFC300",
-"d c #93AABE",
-"e c #000000",
-"f c #FCBE00",
-"g c #98ABBD",
-"h c #A2B6C7",
-"i c #FFD200",
-"j c #FFCC00",
-"k c #AC8200",
-"l c #AFC1D0",
-"m c #EFB500",
-"n c #B2C1CE",
-"o c #757D86",
-"p c #F2F2F2",
-"q c #6E5300",
-"r c #191300",
-"s c #A8BACA",
-"t c #FABD00",
-"u c #D09D01",
-"v c #92A3B4",
-"w c #AEBFCE",
-"x c #171718",
-"y c #DCE0E4",
-"z c #261D00",
-"A c #A8BCCC",
-"B c #B8C6D3",
-"C c #616468",
-"D c #AFBECC",
-"E c #ABB0B5",
-"F c #A1AEB9",
-"G c #BE8F00",
-"H c #AABED0",
-"I c #969DA4",
-"J c #8F6C00",
-"K c #A7BBCD",
-"L c #F7BB00",
-"M c #8FA6BB",
-"N c #9BA9B6",
-"O c #7E5F01",
-"P c #ACBDCB",
-"Q c #54595D",
-"R c #0B0B0C",
-"S c #B7CADA",
-"T c #F9C000",
-"U c #130E00",
-"V c #ABB9C5",
-"W c #A5B7C7",
-"X c #424446",
-"Y c #0C0900",
-"Z c #FCC000",
-"` c #9D7B0F",
-" . c #FFC000",
-".. c #080A10",
-"+. c #FDC200",
-"@. c #B3C6D5",
-"#. c #FFC202",
-"$. c #A7B6C3",
-"%. c #DFE8EF",
-"&. c #9DAFBF",
-"*. c #98A5B0",
-"=. c #FAC500",
-"-. c #ACBBC8",
-";. c #393A3C",
-">. c #232425",
-",. c #1C1D1E",
-"'. c #B7C7D5",
-"). c #ECF4FA",
-"!. c #F7BE05",
-"~. c #070500",
-"{. c #644F0B",
-"]. c #FFC100",
-"^. c #050506",
-"/. c #080909",
-"(. c #101011",
-"_. c #FEBF00",
-":. c #FDC100",
-"<. c #F5BF00",
-"[. c #8A6B0B",
-"}. c #8E6F0D",
-"|. c #FCC003",
-"1. c #FFC102",
-"2. c #B78F0B",
-"3. c #716027",
-"4. c #FEC304",
-"5. c #F7C10D",
-"6. c #977E20",
-"7. c #FBC303",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e ~.r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r Y e e ",
-"e e - _. ._._._._._._._._._._._._._.c ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.].' ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. J e e ",
-"e e - ].c ].].].].].].].].].].].].].L f ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].]. m 3 > c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ",
-"e e - .]. . . . . . . . . . . .].t | 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . .> m . . . . . . . . . . . . . . . . . . . . . . . . .' 3 e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L ~.O ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u | 7 * & ^ t j c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ . G 3 k k + ^ > j . . . . . . . . . . . . . . . . . . . . . .c t - / ]. . . . . . . . . . . . . . . . . . . . . . . . - z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . ' T ~.O j ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u - z Y e Y - J > ' . . . . . . . . . . . . . . . . . . . . . . . . . .c ' u O | r e e e e e e ~.z 7 J . c ' ' ]. . .].' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' T z 7 j ' . . . . . . . ' ' ' ' ' ' ' ' ' ' ' ' ' i G e J i ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . .' k 2 q e - / / / / / / / / / / / / / / / / / / / q / ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]._.L m ^ G / z e U / ^ ' c . . . . . . . . . . . . . . . . . . . . . . . =.G | e e z q 4 G . . u & * | r e e - 4 . ' ' c 5 / / / / / / / / / / / / / / / / q U z / q 4 .]. . . .c 5 J q / / / / / / / / / / / / O - e 7 / q G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . .j / ~.r e Y r r r r r r r r r r r r r r r r r r r r r u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ' ' j i i T G | e r 4 +.' . . . . . . . . . . . . . . . . . . . .].' ^ 7 e U / u ' i i j ' ' ' j j i =.+ O - e Y 2 + j > e Y r r r r r r r r r r r r r r r ~.Y r Y 7 .c . . . m | U r r r r r r r r r r r r U e r r r U 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . .].5 m > e / L m m m m m m m m m m m m m m m m m m m m _.].].].]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j > + J q | | | 7 O & . ' i G - e | ^ ' . . . . . . . . . . . . . . . . . .].' k r e / > j i T u 3 / | | | 7 q J + 5 i +.+ 7 ~.e 7 G e J L m m m m m m m m m m m m m > z 7 5 m 5 . . . . . ._.m m m m m m m m m m m m m _.q e G L m m L ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . .c T e O j c c c c c c c c c c c c c c c c c c c . . .c ' ' . . . . . . . . . . . . . . . . . . . . . . . . ' . q z e e e e e e e e e U 7 k +.i T * e r + j ]. . . . . . . . . . . . . . . .c ' * e z + j j 5 4 | Y e e e e e e e e e z 2 + ' i . q ~.~.e 4 j c c c c c c c c c c c T z 2 ' c . . . . . . .c c c c c c c c c c c m r | c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' 5 - - - - - - - - - - - - - - - - - - - - - - 7 / 3 + 5 j c . . . . . . . . . . . . . . . . . . . . .' > / Y e e e e e e e e e e e e e e - + j j G r ~.k j . . . . . . . . . . . . . .]. O e | > j ' & z e e e e e e e e e e e e e e e - G j j . | e 4 j + - - - - - - - - - - - G ].z 7 ]. . . . . . . . .' u - - - - - - - - - - - z e 4 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e ~.- J L ' . . . . . . . . . . . . . . . . . .].j G z e e e e e e e e e e e e e e e e e Y * j . - e k ' ]. . . . . . . . . . . .].j J e 7 ].j L q e e e e e e e e e e e e e e e e e e e 7 > i 4 & j & e e e e e e e e e e e 3 c z 7 ]. . . . . . . . .' q e e e e e e e e e e e e z m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e - u ' ]. . . . . . . . . . . . . . . .].j 3 ~.e e e e e e e e e e e e e e e e e e e e 2 L i > - ~.G ' . . . . . . . . . . .j & e | L j ^ | e e e e e e e e e e e e e e e e e e e e e z + ' ' .' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .c m r e e e e e e e e e e e e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e U & ' . . . . . . . . . . . . . .].' 3 ~.e e e e e e e e e e e e e e e e e e e e e e 7 <.j . z r . . . . . . . . . . . U z > i ^ - e e e e e e e e e e e e e e e e e e e e e e e Y k ' c ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .j 4 e e e e e e e e e e e e Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e U + ' . . . . . . . . . . . . .j & ~.e e e e e e e e e e e e e e e e e e e e e e e e / ' j + ~.| T c . . . . . . .c T | e + j L | e e e e e e e e e e e e e e e e e e e e e e e e e e J ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . .c t | e e e e e e e e e e e e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . . . z e e e e e e e e e e e e e e e e e e e e e e e e e e 4 ' ' J e J ' . . . . . . .' 4 e J j +.2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' u e e e e e e e e e e e e ~.& ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 c . . . . . . . . .c +.| e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' c | Y ^ . . . . . > U - L i 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' q e e e e e e e e e e e e - c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e k ' . . . . . . . . .j 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | .j G e / ' . . . .].' q e G j ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .c m z e e e e e e e e e e e e 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 c . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j | Y . ' . . .' . e 7 j 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .j 4 e e e e e e e e e e e e z ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 ' . . . . . .].' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z > j + e J ' . . .' q e u j + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .c Z | e e e e e e e e e e e e q ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - c c . . . . . ^ U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J j :.- r L ]. . . Y 7 ' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' u ~.e e e e e e e e e e e Y u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . .' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 j 3 e 3 ' .' O e + i + Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' / e e e e e e e e e e e e | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .c L ~.O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . ^ z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j m r | m z - ' ' 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .c m z e e e e e e e e e e e e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . .].f 4 + m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . .' 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | _.j q e u j & e k i . U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .j 3 e e e e e e e e e e e e - 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . .' c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.^ . .c t - e e e e e e e e e e e e e e e e e ~.e e e e e e e e e e e e e e e e e ~.+ i u e J i 7 U ^ j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .c c 7 e e e e e e e e e e e e * j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e & ' . . u e e e e e e e e e e e e e e e Y 7 k u G O z e e e e e e e e e e e e e e e O ' t - z > U 2 ' - e e e e e e e e e e e e e e e e ~.- 2 O 2 - ~.e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . u ~.e e e e e e e e e e e U ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e r - - - - - - - U e e e e e e e e e e e e e e e e * ' . .j O e e e e e e e e e e e e e e - + ' i i j j > 2 e e e e e e e e e e e e e e z f j O Y / ~.k i + Y e e e e e e e e e e e e e e e - G L j j j T + | e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .' O e e e e e e e e e e e e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i L & - e e e e e e e e e e e e e e 2 j .c _.- e e e e e e e e e e e e e - ^ j Z + & ^ ' ' ' O e e e e e e e e e e e e e ~.+ j + U e r > j * e e e e e e e e e e e e e e e O +.' c .c ' :.* ~.e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .c 5 z e e e e e e e e e e e ~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | + G G G G G . 5 i <.2 e e e e e e e e e e e e e | j .' u U e e e e e e e e e e e e r u ' c L - e U * T ' 7 e e e e e e e e e e e e e / j ].- e | j t | e e e e e e e e e e e e e e O ' c ' m > . . .c ' 3 ~.e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .j k e e e e e e e e e e e e | ].c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e z 3 j L - e e e e e e e e e e e e - L c j 4 e e e e e e e e e e e e e J j .c L z - | e | L j . r e e e e e e e e e e e e | _.j q e * j ^ Y e e e e e e e e e e e e e 7 c L O Y 7 c c . .].j 3 ~.e e e e e q j & e e e e e e e e e e e 3 c z 7 ].c c 7 e e e e e e e e e e e e & i ' ' ' ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | u + + + + G 4 z e 3 i k e e e e e e e e e e e e - 5 c 2 e e e e e e e e e e e e - L c .c L z 2 ' O e / ' ' O e e e e e e e e e e e e r . j + | u j & e e e e e e e e e e e e e z . > | e 7 + ].]. . . .].' J e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . ~.e e e e e e e e e e e Y O [.[.* * * * * * * * 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i ' ' ' ' ' j m z r ^ - e e e e e e e e e e e z . ' 5 z e e e e e e e e e e e e k ' . .c L z 7 ' ' 7 e G j ^ r e e e e e e e e e e e e & ' c ' c ' q e e e e e e e e e e e e e J j c | e 3 ' . . . . . .c 7 e e e e q j & e e e e e e e e e e e 3 c z 7 .' O e e e e e e e e e e e e e e e e e e e e e e e e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 ' . . . . ._.' & e 4 i q e e e e e e e e e e e r . j u e e e e e e e e e e e e z m c . .c L z 7 ' ^ U | ].j 2 e e e e e e e e e e e e O . . . - e e e e e e e e e e e e z t ].' 4 e * j ]. . . . . . . . . > z e e e q j & e e e e e e e e e e e 3 c z 7 c t z e e e e e e e e e e e R Q C C C C C C C C C Q e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . ._. ' ' ' c . . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j 4 e e e e e e e e e e e r . j 3 e e e e e e e e e e e e / ' ]. . .c L z 7 .j / e u i + e e e e e e e e e e e e | ]. . ^ r e e e e e e e e e e e e 4 ' > r - <. . . . . . . . . . .' & e e e q j & e e e e e e e e e e e 3 c z 7 j & e e e e e e e e e e e e X [ 6 ( ( ( 6 6 1 6 [ $.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . q | O + ].c . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' G e e e e e e e e e e e r . i q e e e e e e e e e e e ~.G ' . . .c L z 7 ]. . e O j m z e e e e e e e e e e e r L ]. .' G Y e e e e e e e e e e e r . ' j 4 e k ' . . . . . . . . . . .].' / e e q j & e e e e e e e e e e e 3 c z 7 c 7 e e e e e e e e e e e e ) S = = = = = = @.= S F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . .j O e e e ~.7 . c f . .c m ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e r . i | e e e e e e e e e e e z m c . . .c L z 7 ].c f | z .' q e e e e e e e e e e e Y . .j J e e e e e e e e e e e e 7 ' c t - z .]. . . . . . . . . . . . . > z e q j & e e e e e e e e e e e 3 c z 7 ' . Y e e e e e e e e e e e >., , , , , , , , , , h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . .j O e z z e e r & t t _.c m ~.e e e e e e e e e e 2 ' . . . . . .].' / ~.f ^ e e e e e e e e e e e r ^ t - e e e e e e e e e e e 7 j . . . .c L z 7 ]. .j J e + i 3 e e e e e e e e e e e e k ' ].' / e e e e e e e e e e e e 3 ' u e * ' . . . . . . . . . . . . . .' k e q j & e e e e e e e e e e e 3 c z 7 i * e e e e e e e e e e e e % H , , @ @ , @ , , , : v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . .j O e 2 & 7 Y e U k m L c m ~.e e e e e e e e e e 2 ' . . . . . . .j 4 e . ^ e e e e e e e e e e e r ^ . U e e e e e e e e e e e * ' . . . .c L z 7 ]. .' + ~.* i . U e e e e e e e e e e e * j c t | e e e e e e e e e e e Y ^ c ' O e + ' . . . . . . . . . . . . . .].T G . ' & e e e e e e e e e e e 3 c z 2 .- e e e e e e e e e e e ,.*.b : : : s s s W : : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . .j O e r * J 2 Y e r G > t > ~.e e e e e e e e e e 2 ' . . . . . . .j J e > ^ e e e e e e e e e e e z m + e e e e e e e e e e e e + . . . .c L z 7 ]. .c t r 7 c z e e e e e e e e e e e 2 j m z e e e e e e e e e e e - :.c ' - - 5 . . . . . . . . . . . . . . .].' ' & e e e e e e e e e e e 3 c z q G e e e e e e e e e e e e Q l s s s s : 8 s s s : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . .' k ~.e | * * 7 e e 7 u > ^ ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e - k e e e e e e e e e e e ~.^ . . . .c L z 7 ]. . .' | z m ' | e e e e e e e e e e e | ].' ^ Y e e e e e e e e e e e / ^ U 2 j . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z 2 2 e e e e e e e e e e e e *.A : : : s : : s s s W H *.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . .t 7 e Y / 4 3 z e U 4 . . ~.e e e e e e e e e e 2 ' . . . . . .]. q Y u e e e e e e e e e e e - J e e e e e e e e e e e z m . . . .c L z 7 ]. . .' O ~.^ j * e e e e e e e e e e e - m ' u e e e e e e e e e e e e k j ' & e 4 ' . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z - U e e e e e e e e e e e e N : @ W h h h @ @ @ W h K v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . .t + r e - 3 G q e e 7 + u ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' & e e e e e e e e e e e | i q e e e e e e e e e e e 7 _.c . . . .c L z 7 ]. . .' k e + i k e e e e e e e e e e e z ^ j & e e e e e e e e e e e ~.+ ' j J e u . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e v , d _ _ _ _ _ _ &., &.h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . .L m * e e O + 4 ~.e - 3 G ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j J e e e e e e e e e e e 7 j 7 e e e e e e e e e e e q ]. . . . .c L z 7 ]. . .' u e 3 i u e e e e e e e e e e e U . i 4 e e e e e e e e e e e z ^ ' 2 Y f ]. . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e F @.l l l l l l l = l l @.N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . .f m . - e z & 3 U e z 4 k ~.e e e e e e e e e e 2 ' . . . . . .' G e 3 i 7 e e e e e e e e e e e * ' - e e e e e e e e e e e * j . . . . .c L z 7 ]. . . ^ ~.* j . Y e e e e e e e e e e e u i * e e e e e e e e e e e - L f | - c . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e ~.7 e F = w w l l l l l = l w @.F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .L m 3 e e / J e e z J 4 ~.e e e e e e e e e e 2 ' . . . . .c j 7 U ^ L z e e e e e e e e e e e k - e e e e e e e e e e e 3 j . . . . .c L z 7 ]. . . > z 2 j ^ z e e e e e e e e e e e G i q e e e e e e e e e e e | j c 5 r 2 . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 - e e e e e e e e e e e z k e F l 8 8 8 8 8 8 8 b 8 8 l *.e - ' . . ' ' ' ' ' ' ' ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' ' ' ' ' ' ' ' ]. .].c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . ._.5 . | e z 7 e e - * 4 ~.e e e e e e e e e e 2 ' ]. ' ' j j 3 e / i 3 e e e e e e e e e e e e u f r e e e e e e e e e e e k ' . . . . .c L z 7 ]. . .c 5 - | j m - e e e e e e e e e e e & i 2 e e e e e e e e e e e 2 j c > e * ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 m U e e e e e e e e e e e O + e F = w w w w w w w w w b '.N e - ' ' j 5 . k * 7 | z z z z | 7 * & ^ t ' . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ G J 2 | z z z z - 7 O 4 u > ' ' .c c #.#.#.#.#.#.#.#.#.#.c c c c c #.c c . . . . . . . . . . c #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.1._. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .f 5 k ~.e Y e e | * J ~.e e e e e e e e e e 2 j t + G 3 J 7 e - m T - e e e e e e e e e e e r L L Y e e e e e e e e e e Y + ' . . . . .c L z 7 ]. . .c _.| z ' _.| e e e e e e e e e e e 4 i | e e e e e e e e e e e O j . e k ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e k 4 e e e e e e e e e e e Y u + e F = w w w w w w w w l b = F e - j + / - e e e e e e e e e e e e e Y | * . ' ' c . . . . . . . . . . . . . . . . . . .c ' ' . * | Y e e e e e e e e e e e e e z 2 k J 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 2 ^ . . . . . . . .' 4 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . ._.L ^ | e e e Y 2 * J ~.e e e e e e e e e e 2 j > - e ~.~.U 2 ^ i J e e e e e e e e e e e e | ].5 Y e e e e e e e e e e U + ' . . . . .c L z 7 ]. . .c c 7 z j _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e 4 ' G e G ' . . . .]. ]. . . . . . . . . . . . . .' & e e e e e e e e e e e 4 | e e e e e e e e e e e | i G e F @.l w w w l l n l w w = F e r 7 ~.e ^.>.~ % # o # # # ) ) # C ~ ,.^.e Y 7 + =.' . . . . . . . . . . . . . . . . .' t & 7 Y e e ,.~ C $ I I *.*.*.I ) o X >...e e ~.e e e e e e e e e e e e e e e e e e e e {.' ]. . . . . . .' u U e e e e e e e e e e e e e e e e e e e 7 f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .f L 3 e e e z q O 4 ~.e e e e e e e e e e 2 j ^ z 7 G u 5 i j & U e e e e e e e e e e e e * j u ~.e e e e e e e e e e r ^ . . . . .c L z 7 ]. . .]. 7 r _.' 2 e e e e e e e e e e e * i - e e e e e e e e e e e 3 ' ' 3 ~.u ' . . .].L . 5 ]. . . . . . . . . . . . .' & e e e e e e e e e e ~.7 Y e e e e e e e e e e e k i G e F @.= w 8 b w w l l w b @.N e e e x C ) l @.@., # ) , d , d d _ h F % Q (.e ~.7 u ' c . . . . . . . . . . . . . G - e e (.Q # -.S l 1 H h @.S 1 = H : [ ( I o ;.e e e /.% % % % % % o % % % % % % o o o x e 2.' . . . . .c +.| e X o % % % % % % % % % % % o C % ! e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . ._.f u z e e | 2 * 3 ~.e e e e e e e e e e 2 i m z 3 i c m + q ~.e e e e e e e e e e e e Y + j + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e q z e e e e e e e e e e e k ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e U e e e e e e e e e e e - 5 j G e F = l n b b w b b b b H @.N e x % $.S @.A -.w g o ) d M d M M d , &.} S $.% ,.e Y O L ' . . . . . . . . . .].' > 2 ~.e >.% F = @.8 8 8 b s @ 8 b b P s h @.l @.y N N Q (.e $ %.] ] ] ] ] ] ] ] ] ] [ %.%.).C e - !.c . . . .j 3 e >.( %.] ] ] y ] ] ] ] ] [ ] %.@.1 ~ e J ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . G e e e | 2 J & ~.e e e e e e e e e e z 2 7 Y - 7 - z ~.e e e e e e e e e e e e e e - .' u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' * r . . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e J ' ' G e F = w l l l l = b b b b @.*.~ F S w 8 w s -.w g o ) d M _ } M M &.N ) = 1 ] @ Q ^.e | . ' . . . . . . . .c ' G z e /.% P @.H A s s s 8 : l : s 8 8 : W @ l w n 1 M S ).E ;.x V [ 6 1 1 1 1 1 ( ( ( B [ ] ] n ~ e }.j . . . > z e # ] 1 ( 6 6 [ 6 ( ( 6 6 = 1 [ l % e - <. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . / e e e z / 3 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z > . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e & j ' G e F = b b l l l B l w w b b B $.= b 8 8 w 8 s b g o ) M M @ M M M _ N ) = 1 1 H S ) >.e r + ' . . . . . .c J ~.e X F @.H b A A A A A A h = A 8 w = s : @ s 8 w [ v = %.] [ o % [ ( 6 6 1 6 1 ( 6 ( = [ ] ] '.$ e r . ' .]. q e X B [ 6 '.( 6 1 6 ( ( 6 6 = 1 ] I /.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .].t z e e e Y 2 k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y ^ u ~.e e e e e e e e e e z > c . .]. ' T z 2 ' ' i O Y m i / e e e e e e e e e e e / <.z e e e e e e e e e e e u j i q z > j j u e & j . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e q j G e F l 8 b l l l n n l w b 8 ( K K w 8 A b b D w g o ) d } , } M _ _ N ) = 6 1 s P l V X e R & j . . . . / e ^.C = l A A b A A A A A A : s h b w w 8 l K h W 8 [ v @.y 1 1 ] E n 1 6 6 1 1 1 ( 1 1 B [ ] ] n 6 ! e 7 .' + e (.N @.1 1 ( ( ( 1 ( '.( 6 6 = [ y ;.e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .' G ~.e U U e | k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e / ' ]. u ~.e e e e e e e e e e - ' . .].L . . . u z | . . . . . > 2 Y + > 7 e e e e e e e e e e e 2 u r e e e e e e e e e e e k ^ ^ 7 r + . . . . ^ & e 4 ^ . . . ^ _. . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e r > j G e F = b 8 l l l = w n l l w ( : A 8 8 8 b A P w g o ) d M _ M M M _ N ) l 6 6 8 w h @.@.Q e U u ' . .c c q e (.# S b 8 b A A A A A 8 K : = s , A b w : = = 8 W s [ v @.%.1 6 1 [ 1 6 6 1 1 6 6 ( 6 1 6 ] ] [ n = V x e & j L - e % 6 n [ 1 ( ( ( ( ( ( ( ( ( = ] $ e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .j O e e | - e U 4 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' . u ~.e e e e e e e e e e - ' . . . r U U U e ~.U U U U U U Y e U U ~.e e e e e e e e e e e ~.U e e e e e e e e e e e e U U U ~.e U U U U U U U e Y U U U Y - L c . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e k i G e F = b 8 l l l = w w w l n ( : 8 b 8 8 w A -.b g o # M M _ M M M _ N ) l 1 1 s w h w w @.Q e r . ' ].' O e (.$ @.8 8 8 b A A A A K 8 8 : l w h s 8 8 h : b n s 8 [ v = %.1 6 1 1 1 6 6 6 1 6 ( '.'.( ( [ ] ] n D ] o e - T J e ;.n D = [ 1 ( ( 6 '.( ( ( 6 ( '.n ,.e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .c _.| e ~./ 7 e e q k ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e O j . . u ~.e e e e e e e e e e - ' . .c > * O * O U - * * * * * J - ~./ J - e e e e e e e e e e e - O U e e e e e e e e e e e 2 * * - U / * * * * * q e 7 * * * O 4 t ]. . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e | i G e F = w b l l l = w w w w w 6 W A w 8 A b b P w d o # } } d M M M _ N ) = 6 6 8 w h w P H @.! e | !.j 3 e (.$ S 8 8 8 s b K A A A b s K K : w : A b l s : h b 8 w [ v = %.1 6 [ 1 6 6 6 6 1 1 1 '.( ( '.[ ] ] D D ( y X e 2 r e E [ -.D [ 1 ( ( ( ( ( ( ( 6 ( 1 Q e 7 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . ^ r e z O q z e - 3 ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - m c . . u ~.e e e e e e e e e e z 5 c . .c j j j =.z 2 i j j j j i O Y m i / e e e e e e e e e e e / T z e e e e e e e e e e e u i i q z m i j j j i . e G i j j j ' . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e U . + e F = w b w l l = w l w b b 6 W A w 8 8 b 8 P l d o # } } M M M M _ N ) = 6 6 8 w h w b K l -.~ e O . U e o S b 8 s 8 P 8 K : A A 8 8 A K h = : K b l 8 W @ b 8 w [ v = %.1 6 1 6 6 6 6 6 1 1 1 B ( ( B [ ] ] n D = %.E e e e Q %.1 D D [ 1 6 ( ( 6 ( 6 ( 6 [ ) e U . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .' G e e | * O 7 e Y O Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.G ' . . . u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e J u e F = w H l l l l w l w b b 1 : K b 8 8 w : s l g o # d M M d M M _ N ) l 1 1 8 w h w b A s S I /.U z e Q @.b b 8 8 8 8 b K : A A A b 8 K h w : s b l b A @ 8 s b [ v = %.1 6 1 6 6 6 6 1 1 1 1 6 6 6 B [ ] ] n n B y ] Q e ,.-.%.1 n D [ 6 6 ( ( ( ( 6 ( 1 6 ~ e [.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .' J e e 2 * J J r e | Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' q r ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e - & e F = b b l l l = w w w b b ( : 8 l 8 K l 8 s b g o ) d _ } d M M &.v ) l 6 1 8 w h w P b 8 8 S C e e >.W H b b s b 8 s b K : A A A A 8 8 K b h b b b : l b : s b [ v = %.1 6 1 6 6 6 6 1 1 6 1 ( ( ( B [ ] ] D D ( y ] $.,.o [ y 1 D D 1 1 ( ( ( ( ( ( ( [ % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . 7 e U O * 4 G | e U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y ^ i q e e e e e e e e e e e q t z e e e e e e e e e e e G ' 4 Y u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e ~./ e F = b b l w b = w w w b b 6 W 8 8 l b 8 w D w g o } , _ M M M } d ) ) l 6 1 8 w : w b 8 b 8 l -.>.e $ @.8 b b b b b 8 8 A : : : : : s 8 K H H = @.@.H l l : W 8 6 v = %.[ 1 1 6 1 1 ( 1 1 6 1 6 ( ( B [ [ [ -.D = y [ B $ B [ y 1 D D 1 [ 6 ( ( ( 6 ( 1 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .c z e z J * 3 u 3 e e U Y U Y e e e e e e e e e e e e e e e e e e e e e e e e z 5 . . . . . u ~.e e e e e e e e e e z > . . . . . ._.. ^ ]. . . .].' 2 U 5 j 2 e e e e e e e e e e e O i - e e e e e e e e e e e 3 ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e r e F @.w b l = l = w w w b s 1 W P W w @.h b @.'.) C o # o ) , d ) } ) ) l ( ( s b : w b K w w w S % ;.l K 8 8 K b 8 8 8 A 8 K K K 8 8 A l S W ) ) ) ) v l S : W 8 1 v = y [ 1 1 ( 1 [ ( ( 1 6 ( [ 6 6 B [ ] y D n b ] ] 1 w = [ y [ n D 6 1 1 1 6 B 6 1 1 X e {.' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .c > r e - J J & . > z e 4 + u + 4 - e e e e e e e e e e e e e e e e e e e e e e U u ' . . . . .c > Y e e e e e e e e e e U u . . . . . . . . . . .c c 7 z j .| e e e e e e e e e e e 4 i - e e e e e e e e e e e 3 ' ' & e + ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = b b b b b = b b b w w B s s 8 8 b @.D % X x e e e e >.X o M d v ) = 1 [ W 8 s w b K b b 8 l $.V b s s 8 b 8 8 8 b b K A A : s l @.$ ! ~ e e e e (.X C &.l b 1 v = ] 1 1 [ 1 ( [ 6 6 1 6 6 1 ( 6 B 1 [ y = = B ] [ B D = [ y 1 = D ( 6 6 6 ( ( 6 [ $ e x > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . + Y e - J J + > 4 Y ~.u i i i j L O e e e e e e e e e e e e e e e e e e e e e e O ' ]. . . . .c 5 Y e e e e e e e e e e U u ' . . . . . . . . . . . . .c ].| z ' _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e * ' + e & ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = l w b b b l b b b w w n b A b w l o ,.e e r - | | - Y e ^.~ # g ) = 1 [ : s s w b K w w 8 b b l 8 8 8 8 8 8 8 8 8 l : : A A @.*.;.^.e ~.z | | | z e e (.% D ] v = y 1 1 1 6 6 1 6 1 [ ( '.6 [ 1 ( ( 1 ] B ( [ 1 6 6 6 ( 6 1 1 6 1 [ ( 6 6 6 B [ n >.e ` ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .' k e e | * 4 u / e e ~.u + 2 J m ' ' / e e e e e e e e e e e e e e e e e e e e e z m . . . .c 5 U e e e e e e e e e e ~.& ' . . . . . . . . . . . . .c 5 - | j m - e e e e e e e e e e e k i 7 e e e e e e e e e e e / j > e 4 ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e Y Y e e e e e e e e e e e e e F = l w b b b l w w w b w B l = @.$.! e e | k ^ ' ^ 4 3 k }.z e ^.% } = 6 1 8 8 : w b K b w b b s w 8 8 8 b b b 8 8 8 l 8 s 8 S o (.e r * u T m 3 3 3 k 2 ~.e ;.( g = y 1 6 6 6 6 1 6 6 [ ( '.6 6 1 6 ( ( 1 '.B [ B B ( 6 1 ( ( 6 6 1 1 6 6 ( ( '.[ C e | 4.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .' 4 e e - * k / e e z z u & e e - m ' > z e e e e e e e e e e e e e e e e e e e e e k ' . . . .c t - e e e e e e e e e e e k j . . . . . . . . . . . . . m z 7 j > z e e e e e e e e e e e G i 7 e e e e e e e e e e e 7 i c m Y / . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e q | e e e e e e e e e e e e e ) @.l l w w w w w w w P : '.s [ @ ;.e x & j . 4 J q O + O e e % 1 '.( b b : w b s 8 b w b s 8 8 8 8 8 8 8 b 8 8 K 8 b @.% e e q m ' ' > 4 4 * q 3 & - e >.v S y [ 1 1 1 6 [ ( 6 [ 6 ( 1 6 1 1 1 1 1 6 6 1 B ( 1 6 6 1 6 6 6 1 1 1 1 6 ( [ *.e Y u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .j J e e - J * U e | k q + 5 r e e J ' j * e e e e e e e e e e e e e e e e e e e e e | ' . . . .c f - e e e e e e e e e e e J j . . . . . . . . . . . . . ^ Y O j . U e e e e e e e e e e e + i / e e e e e e e e e e e | c L - | . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u 3 e e e e e e e e e e e e e ! S l l l l l l l l l l w = : [ ! e ~ u j c . . u q 2 4 4 7 & 4 e ^.) [ ( s P K b 8 8 8 8 b 8 A 8 8 8 8 s s s 8 8 8 8 K @.$ e e J ' . . . * q O k * q u | e ~ ( y 1 1 1 1 6 [ 6 6 [ 6 ( 1 6 6 6 1 1 [ 1 6 6 1 1 1 ( 6 1 1 1 6 6 1 1 1 1 1 ( ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .j / e e r J 2 e 7 + 3 O u ' q e e - c ' G Y e z O q U | 2 e e e e e e e e e e e e e U u ' . . .].].7 e e e e e e e e e e e O ' ]. . . . . . . . . . . . . . e 4 i u e e e e e e e e e e e Y u i * e e e e e e e e e e e z > ].7 z . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e z > U e e e e e e e e e e e e ,.g H h h h h : h h h W 8 l l o e x . j . . . . ._.5 . * 7 k 2 & 4 e >.n 1 : s b s 8 8 8 8 b 8 s 8 8 8 8 8 s s s s s 8 H @ >.e * ' c . . . ._.L m G q O 3 2 u - e o %.1 6 6 ( ( 1 ( 6 1 B = '.B '.= B @.B = n l = B B n = B B B B = = = B = 1 % e - m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .j / e e U / J * G & 4 O J i & e e r > ^ r e 7 i m z 4 ' r e e e e e e e e e e e e e * ' ]. . .]. q e e e e e e e e e e e 7 ].c . . . . . . . . . . . .' G e G i & e e e e e e e e e e e z ^ j 3 e e e e e e e e e e e U u ' ' O e ^ c . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u ' 2 e e e e e e e e e e e e e % @.s : : : s W W W h h b P ,.e 6.j . . . . . . .c c j + | & 7 u | e o ] W W w s s 8 8 8 s 8 : s s s s b s s s s s 8 l % e | T . . . . . .].c J q 3 / G e ,.6 [ 6 1 6 B 1 ( 6 [ = l B B F ( B B 6 B ( = B = B = = n B B B B B = B 6 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .' J e e e 7 4 G G k 3 J | .5 z e U . ' ^ r e 7 .^ z J j / e e e e e e e e e e e e e z 5 c . . .' * e e e e e e e e e e e - 5 c . . . . . . . . . . . .' J e . j J e e e e e e e e e e e - m j G e e e e e e e e e e e e & j j 3 e & ' . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e Y e / i & e e e e e e e e e e e e e ;.8 s s s s w s s s W , @.o e | 5.c . . . . . . . . . .j + 7 3 / G e >.1 b s : b 8 : s 8 b s : s s s : s s 8 s s s b s x e G ' . . . . . . . . . .c j * J q & 7 e $ ] 1 6 6 B 1 6 1 y ( = B B $ I 1 B ( ( B n 1 ( D B 6 = n B B 1 B n B 1 X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .' 4 e e e - J k G G + G Y + i 7 e z t ' + Y e | t ^ z J i G e e e e e e e e e e e e e e G ' . . .j 3 e e e e e e e e e e e Y ^ . . . . . . . . . . . .' 7 z > j 7 e e e e e e e e e e e | .' . e e e e e e e e e e e e J ' ' u ~.O j . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e O | z L L z e e e e e e e e e e e e ^.v b @ W W W $.@ W $.8 l ! e 4 j . . . . . . . . . . . .j * J 2 + | e $ 6 = b l w w w w l l l w w l l w w l b w l @.I e >.!.c . . . . . . . . . . .].L 2 3 / & e ;.'.1 ( '.'.'.'.( 1 = l = S # ;.'.= = '.@.l n P s b @.= = = = = = n 6 # e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . + Y e e Y O k + . > . e O j & e 7 ' j * e e | L ^ z J j t - e e e e e e e e e e e e e 7 ' . . .' G e e e e e e e e e e e e + . . . . . . . . . . .].c z | ]. - e e e e e e e e e e e 2 j ^ U e e e e e e e e e e e | c c .z | c c .' u e & ' . . . . . . . . . . ' & e e e e e e e e e e e & 3 e G i / e e e e e e e e e e e e e Q H g &.&.g &.g &.g , $.>.Y u ' . . . . . . . . . . . . . q J k O e % @.h : h h h h h h h h : h h h h h h h h h H Q e 3.' ]. . . . . . . . . . . . .' 4 J / u U /.D ( B B B B B ( 1 n l = 6 ) e o 1 l n = = B D D D n n B n n n = B B ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . .].5 z e e e | k u > t > e z c ^ - u j > z e e | t ^ z J ' ' * e e e e e e e e e e e e e r . . .' u U e e e e e e e e e e e J ' . . . . . . . . . . . u ~.O i ^ r e e e e e e e e e e e * j c 5 - e e e e e e e e e e e U 5 c j 2 Y ^ .' u e & ' . . . . . . . . .+.^ > ' & e e e e e e e e e e e 3 > e q j u e e e e e e e e e e e e e >.h l b l s l P D B ] F e z m c . . . . . . . . . . . . .c 2 3 3 ` e Q : , , _ _ _ _ _ _ &.g d _ _ _ _ _ _ _ _ _ h X e 3 j . . . . . . . . . . . . .' G O * G - e I v ) v v v } v &.} ) } v o e ,.) } } } ) ) # # # # # # # # # # ) ! e | f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .].O e e e ~.7 + m m ~.~.G _.^ ' 2 e e e 7 _.^ z J ' . Y e e e e e e e e e e e e e J j . . > z e e e e e e e e e e e 7 j . . . . . . . . . . .j 3 e & i k e e e e e e e e e e e e 3 ' c .7 e e e e e e e e e e e e & ' & e & ' .' u e & ' . . . . . . . . . ~.q j & e e e e e e e e e e e 3 j 7 U t :.| e e e e e e e e e e e e e # @.b w 8 = l n 1 y E e - j . . . . . . . . . . . . . . O 4 3 ` e ! P W W @ @ @ @ @ @ h @ , @ @ @ @ @ @ @ @ @ H X e 2.' . . . . . . . . . . . . .' + * 4 k | e ) g d g g d M g $.v v v g o e e C , N v } v # # # ) ) ) ) # # ) o (.e 2.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .u z e e e e z * u u z 2 u ' 5 q e e e e 7 ^ z J ' ].c 7 e e e e e e e e e e e e e - L c .].' | e e e e e e e e e e e z 5 c . . . . . . . . .c 7 U 5 j / e e e e e e e e e e e Y u .j O e e e e e e e e e e e e q j > U | .' u e & ' . . . . . . .c c | e q j & e e e e e e e e e e e 3 i 3 e k i 4 e e e e e e e e e e e e e ! @.n = 8 B = = 6 [ 0 e z f c . . . . . . . . . . . . .c 2 3 3 3 e Q l W h h h h h h h @ h h @ @ @ h h @ @ @ @ H X e k j . . . . . . . . . . . . .' G O * G - e F = w P P s W D [ s @ W H # e /.# l P W , W v v d &.V @ &.g d &.$.! e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . .f 5 3 U e e e e e e U + i ' c > | e e e e e 7 ' ^ z J ' .j k e e e e e e e e e e e e e e + ' . .j 2 e e e e e e e e e e e ~.G ' . . . . . . . . . ^ ~.2 j 5 - e e e e e e e e e e e r L c .j 3 e e e e e e e e e e e e - m ' q e . ' u e & ' . . . . . . .j k e e q j & e e e e e e e e e e e 3 j ^ U 7 j ^ r e e e e e e e e e e e e R &.@.= 8 B = l '.1 -.x U . . . . . . . . . . . . . ^ q J k J e C l W W @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ l X e J ' . . . . . . . . . . . . .' 4 J / . r ^.&.b b h : s h 8 1 W , @ H # e Q = h s @ _ , ) } } M _ , _ _ d _ W } x e & ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . .5 ^ 3 - Y ~.e e ~.U k G * ^ f z e e e e e 7 j ^ z J ' . > z e e e e e e e e e e e e e 2 ' . .' 3 e e e e e e e e e e e e O ' ]. . . . .j ' . .j O e + j u e e e e e e e e e e e e | c ]. .' + Y e e e e e e e e e e e e & ' ' + e q ' ' u e & ' . . . . . . > z e e q j & e e e e e e e e e e e 3 ' j 7 U ^ i 7 e e e e e e e e e e e e e % 6 = s ( '.l 6 [ [ ! e k j . . . . . . . . . . . .j * J 2 u 7 e o = &.8 h h h h h h h h @ @ @ @ W @ , @ @ @ : o e | +.]. . . . . . . . . . . .].L 2 3 q u e >.@ @ s s W h h s 6 W , h H # x &.: h 8 h , , } } } M _ , , _ d _ s h % e z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._._. ._. . . ._.f _.' J e e ",
-"e e - .]. . . . . . . .t > u k / 7 | | 2 / Y e e k i 2 e e e e e 2 j ^ z J ' . .j 2 e e e e e e e e e e e e e r . . u e e e e e e e e e e e e z 5 c . .].t O 3 c ' ^ Y 7 j / e e e e e e e e e e e e O . .c L z e e e e e e e e e e e e | ].' 7 e + i u e & ' . . . . .c ' 2 e e e q j & e e e e e e e e e e e 3 ' ' & e k i G e e e e e e e e e e e e e ~ = '.: '.( b ( ] ] C e 7 c . . . . . . . . . .j + 7 3 / . ~.>.g 8 = d @ @ @ @ @ @ @ @ W @ @ @ @ @ @ @ @ @ , @ R ~.. . . . . . . . . . .c j * * q & / e % S n : h s W h 8 1 h , W K o % l W @ s h , , } M } d _ _ _ , _ d : , , ~ e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t L f L .t L L 5 t ' * e e ",
-"e e - .]. . . . . . . ._.5 ^ + 3 J O O * O ~.e e 2 j & e e e e e 2 j ^ z J ' . . + e e e e e e e e e e e e e e 4 ' .c 5 r e e e e e e e e e e e e k ' . .c L r 7 j 2 e + j > r e e e e e e e e e e e e & ' . . .' | e e e e e e e e e e e e e & ' ^ U - 5 . e & ' . . . . .' 3 e e e e q j & e e e e e e e e e e e 3 ' c 5 r | ' m z e e e e e e e e e e e e ^.) 1 : '.B l ( [ ] N x e + ' . . . . . . .].c j u | & 7 . / e X = W @ s @ @ @ @ @ @ @ @ @ @ @ @ W @ , @ @ @ h 8 ! e q ' ]. . . . . . .].]. 4 2 3 q u /.R ) = 8 : w : s h 8 [ h _ @ h I W : W @ h h , @ } M M d _ _ _ _ d _ _ , , # ^.~.u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.L 5 t m c 5 5 L m L ' J e e ",
-"e e - .]. . . . . . . . .f 5 ^ u G 3 4 4 J ~.e e z c ^ Y e e e e 2 j ^ z J ' . .c L - e e e e e e e e e e e e e - T c ].c 7 e e e e e e e e e e e e - Z c .c L z 2 i 3 e 2 ' j J e e e e e e e e e e e e Y u ' . . .' * e e e e e e e e e e e e e - 5 ' & e - 4 e & ' . . . .' u U e e e e q j & e e e e e e e e e e e 3 ' ].' / ~.^ j / e e e e e e e e e e e e e Q 6 8 = ( w ( [ [ H C e - 5 . . . . ._.L ^ * 7 k 2 k 2.e (.v K h @ s h h h h h h h h @ @ @ @ h h @ @ @ @ h A v (.e & j ]. . . . ._.t 5 u q / 3 7 ^ 7 e ! l : s 8 b s s @ 8 [ h , @ @ s W W W @ : @ , @ } } d _ d _ _ _ d _ d , _ h Q e | 7.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L m > t 5 > ^ > > ^ 5 ' J e e ",
-"e e - .]. . . . . . . . . .f L m ^ . u + & ~.e e Y u f - e e e e 2 j ^ z J ' . . .' J e e e e e e e e e e e e e e + .' 4 e e e e e e e e e e e e e k j .c L z | J e z > j ^ z e e e e e e e e e e e e - L c . . .' + e e e e e e e e e e e e e e / j ].' & r e e & ' . . .' > z e e e e e q j & e e e e e e e e e e e 3 ' .' G e J i + Y e e e e e e e e e e e e x V w l 6 b 6 ] 1 : g ~ e 7 |. . . . . 2 2 4 4 7 k u r e % w , @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , H % e r u ' ]. . . ^ * q O k J 2 ^ {.e >.&.8 W W 8 s P 8 h 8 [ W , @ , s s @ W @ P @ _ , } } d , d _ _ , d d _ _ _ , g >.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.f f ].f ^ ^ 5 f t ].' J e e ",
-"e e - .]. . . . . . . . . . . .f L 5 m m . ~.e e e 4 i q e e e e 2 j ^ z J ' . . .' u U e e e e e e e e e e e e e q j .' + Y e e e e e e e e e e e e z > ' c L z e e | ^ ' ' 2 e e e e e e e e e e e e e / j . . . . > z e e e e e e e e e e e e e e 4 j c ' m * e & ' . .' ^ - e e e e e e q j & e e e e e e e e e e e 3 ' .c t z - _.' - e e e e e e e e e e e e e o @.n 6 b 6 ] 1 W h F x e | ^ j ' ]. . 4 J 2 O . & (.e Q 8 h @ @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , , H Q e U 3 ' c ^ 4 4 * 2 3 . 7 e x *.l : s 8 s : s b h 8 [ W , @ @ @ W W h @ s W , , } } M _ d _ _ _ _ _ _ _ _ _ : o e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].].].].].].f > 5 ]. .].].' J e e ",
-"e e - .]. . . . . . . . . . . . . . ._.c > ~.e e e 2 i 4 e e e e 2 j ^ z J ' . . .]. | e e e e e e e e e e e e e z ^ c t - e e e e e e e e e e e e e | m ' f 4 O & +.j ' J e e e e e e e e e e e e e ~.G ' . . . .c 7 e e e e e e e e e e e e e e ~.4 ' j . e & ' j + z e e e e e e e q j & e e e e e e e e e e e 3 ' . .' O e u i J e e e e e e e e e e e e e ;.l = 6 b 6 ] 1 W _ S *.,.e r * . i u * & u G 7 e e C s W @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W @ , h w Q e e 7 G 5 i k 2 3 + u 4 r e ,.I @.W h h s 8 W W : @ s 6 W , h @ @ W W @ , s s , , } } M _ d _ _ d _ , _ _ _ d , h X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t .t 5 t t 5 m L c t 5 L 5 t m > ^ ^ f c ].c c ].' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e | c + Y e e e 2 j ^ z J ' . . . .' 3 e e e e e e e e e e e e e e 3 ' .j / e e e e e e e e e e e e e e - ^ ' i i j j t O e e e e e e e e e e e e e e r L c . . . . .j 4 e e e e e e e e e e e e e e e e 7 u ' . e G j > O U e e e e e e e e q j & e e e e e e e e e e e 3 ' . . u e * j ^ Y e e e e e e e e e e e e /.I ( 6 b ( ] [ W , l @.F ! e e U | {./ O {.- e e x o 8 h @ @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h , @ @ h 8 o ,.e e z 2 | {./ | U e e ;.N l = W @ , h P W , @ , h ( : @ : h @ W W h , h s @ , } } d &.d , _ d d _ _ _ _ _ _ , ) (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .L 5 f t m L ^ t m ^ t L ^ . m u u u u . . . ^ ^ > _.^ u t > q e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e z > > r e e e 2 j ^ z J ' . . . . > r e e e e e e e e e e e e e | +.]. u e e e e e e e e e e e e e e e r O + u u 3 - e e e e e e e e e e e e e e e q ]. . . . . . ^ r e e e e e e e e e e e e e e e e ~.7 q e 2 q U e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . .c L - z c 2 e e e e e e e e e e e e e C ( 6 b ( ] [ h , = 8 l '.) ! x e e e e e e ~ Q &.H h @ @ @ W h @ @ @ @ @ @ @ @ @ h 8 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ H &.C ~ e e e e e e (.X # h : b ( w @ , , 6 B &.h , W B h , @ s h W W h h , 8 h @ } } d _ _ , _ _ d _ _ _ _ _ _ _ : % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .m m m 5 > 5 ^ L > . 5 . ^ u ^ . . u u + + ^ + + + + + G + u / e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e ~.u j z e e e 2 j ^ z J ' . . . .]. q e e e e e e e e e e e e e ~.u c L - e e e e e e e e e e e e e e e e Y U U e e e e e e e e e e e e e e e e e G ' . . . . . . .' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .j J e + i k e e e e e e e e e e e e e >.n 6 b ( ] [ W , = P 8 8 w S v I # % o # ) @ H , h @ @ @ @ W h @ @ @ @ @ @ @ @ K ) % K @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h l @ # # o o o # v H @.&., s ( w W @ , '.B @ W @ : ( W , @ s @ @ h W w g W @ @ } } _ _ _ , _ _ d _ _ _ _ _ _ _ , , ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .> m > ^ . 5 . m m ^ . ^ . G . u t + G u u + G G k k & k . G O e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e + i | e e e 2 j ^ z J ' . . . . .' G ~.e e e e e e e e e e e e e / j .' J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . . . . . .' k e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .' u ~./ j L z e e e e e e e e e e e e ^.# [ b ( ] 6 W , l 8 8 P s w : [ '.@ : K l h @ , h @ @ @ @ W h @ @ @ @ @ @ @ h K X ^.*.: @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h A 8 K : : K : , = , , : B b s W h w l W : h K 6 s @ h s @ @ s 8 n M _ , @ } M ) , _ , _ _ d , , , _ _ _ _ _ h # ^.Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f ^ > c m . 5 m . . f c t ^ 5 > _.^ . + + .. ^ . > . & t ^ * e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 3 j 2 e e e 2 j ^ z J ' . . . . .c f - e e e e e e e e e e e e e z > ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .].' - z > j / e e e e e e e e e e e e e ! [ b ( ] 1 W , l 8 s P s w @ ( D g , , W , , @ @ @ @ @ @ W h @ @ @ @ @ @ @ A $ e e ! H h @ @ @ @ @ @ h @ @ @ @ @ @ @ @ , @ h @ , , @ @ , P , , : w : : : : : : s s @ : @.@ , h = W d h K 6 M d d , } } ~ o , _ _ _ d d _ , , _ d d _ _ : ! e | c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c c .c c ].]. . . .c c c .c .c c c ' ].j J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j * e e e 2 j ^ z J ' . . . . . .' * e e e e e e e e e e e e e e k ' .' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r > c . . . . . . . . .' * e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .' 3 e G i + e e e e e e e e e e e e e (.$.= ( [ [ W , l w 8 P s 8 @ ( n g , , W , , @ @ @ @ @ @ W W h h @ @ @ @ h W ~ e e e % H @ @ @ @ @ @ @ @ @ @ @ @ @ @ h @ W @ h s b @ @ h s &._ : s 8 h s : @ h s h : 8 6 , d _ 8 8 h d g @ , @ _ , _ Q e >.} M d _ _ d } M , , , } M M , g ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].]. . ._. .].f f ].].].].].]. .]. .c c .c c c ]._.L ].c c c ].c ]. .c c . c .c ].' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j O e e e 2 j ^ z J ' . . . . . . . ~.e e e e e e e e e e e e e | ]. . Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . ^ ~.2 j L | e e e e e e e e e e e e e o S 6 [ [ W , 8 w w 8 n W @ ( D g , , W , @ @ @ , @ @ @ @ @ @ W @ @ @ @ l C e - [.e (.v A h h h h h h h @ @ , , @ , @ @ W _ @ l ( @ _ @ W , , b W l @ 8 P h W l @ : W ] n &._ , s 6 @ &.d -.W , h # R e e C _ M d : h M } _ h n d M } _ , % e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .t _.].t t ].f f t c 5 . f ].> m ].f L t f t ].L .m 5 L > > _.^ . c > > > t 5 ^ Z c m ^ 5 +.^ m ].m ^ c .J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e - | e 4 j O e e e 2 j ^ z J ' . . . . . .c Z 7 e e e e e e e e e e e e e Y . ].' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . .' O e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .c c 7 U m j J e e e e e e e e e e e e e ~ @.6 [ 6 h , K b P : D s @ ( n g , , s , , @ , , @ @ @ @ @ @ h @ @ @ H o e Y u j {.e >.&.K , @ @ @ @ @ W @ , , @ @ @ s @ d , b 6 s , @ , d , W W = : b P , @ 8 h w w = W @ , h @ W W @ g n P h : ;.e | U /.# _ _ 8 d , } _ _ W _ g } K K d ;.e / ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 > t L > ^ L ^ ^ ^ t ^ + t ].u > _.u u . . ^ ' u ^ + G ^ + G + L + + c + & 4 ^ + k u . & 3 . . 3 u ' u 3 . + 7 e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m e / . .| k i O e e e 7 j ^ z J ' . . . . . . .j 3 e e e e e e e e e e e e e e O j .' . r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .j k e k i . U e e e e e e e e e e e e /.) [ ] 1 @ , b P P s P h h ( n &., , W , , W @ @ @ , @ @ @ @ W @ @ H # R e 4 j 5 | e ~ &.: @ @ @ , @ @ @ @ @ , , @ W @ _ , : n W &.&.( , _ 8 @ @ s = n @ h b @ @ s [ W &._ : 8 D , , &.8 8 K o e z . - e ~ _ d @.s M } , h W d _ M d _ @.v ^.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L ^ L . L 5 . . 5 ^ > m u m . . f G m u k ^ T 3 & & & . u G u ].. G ' L + > u 4 k & ^ G k > 4 5 . G 3 4 & 7 e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m e G i u | . i 2 e e e 7 j ^ z J ' . . . . . . . > z e e e e e e e e e e e e e - m _.j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - L c . . . . . . . . . . . . .j 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .c m U 7 ' | e e e e e e e e e e e e e Q ] ] [ @ , b 8 8 P D s @ 6 n &., , s , , @ @ @ @ , , @ @ @ h @ H I ,.e / c .' ^ z e >.&.H @ @ h h @ @ h W @ @ h @ , @ , W P P , , B h @ B : @ w l b s l = ( 8 b '.: : h = n = W @ , = = &.,.e & * * - e % h b b , M @ 8 : , K , : , K l C e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.^ u ^ > . u m u c . ^ ].+ . G & 5 G ].+ + G + 3 u 3 & m & 3 G t & J m k J & u & * ^ u 3 * ^ + 4 k . k O 4 & / e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m e & i / 4 ' L z e e e 7 j ^ z J ' . . . . . . . .' 2 e e e e e e e e e e e e e e & ' .c L - e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . . . . . . . . . . .]. 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . . .' 7 Y ^ j & e e e e e e e e e e e e e ,.n y [ @ , l s : 8 8 8 h 6 n _ , @ s , h s @ @ @ @ @ @ @ @ h l o (.e {.4.c . . .' ^ - e ,.I H h @ h h h h @ @ @ @ P d , , , h 8 , _ _ d _ @ , , H @ @ @ W h 8 @ : @ _ , , , , s , _ d h @.Q e 7 + 2 . | e x } h M d } M d _ d d } _ _ M _ d >.e }.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].Z 5 f c L L c f ._.f c t ]._.5 5 _.t .f +.5 L Z c 5 5 f m m T ].5 m t 5 5 > f f > _.5 m m +.^ 5 L > t J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m e 2 ' j i j * e e e e 2 j ^ z J ' . . . . . . . .' G e e e e e e e e e e e e e e 7 . .' u U e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.k j & e e e e e e e e e e e 3 ' . . . . . .' G e 3 j ^ z e e e e e e e e e e e e e $ y [ : @ b : : b 8 l , '.D _ &., W &., h h h h @ h h @ A 8 % /.e q 7. . . . . .' ^ | e x % b K , @ @ @ @ , , , _ h = , &.&.@ h P } M M M } } M } _ # % } } } M v ) ) ) } } ) ) ) } } o e U u 2 + q G {.e X } # # # ) ) # # ) # # # # # # % e (.u ' . . . . . . . . . . . . . . . . . .].]. . . . . .].]. . . . . . .].]. .c c .].].].]. .]. . .c c .]. .].].].].]. .c c ].c c c .c c .c c c ].].c ].].c c . .c ]. .].c c ' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.~.O k k O ~.e e e e 2 j ^ z J ' . . . . . . . . 5 - e e e e e e e e e e e e e Y ^ . .' 3 e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . . . . . . . . . . . . . .' + U e e e e e e e e e e e e e e e e e e e e e e e e e U & ' & e e e e e e e e e e e 3 ' . . . . . . m z - ' ' q e e e e e e e e e e e e e X [ *.Q : K , , h , s _ w h M d g , d _ _ _ _ _ _ _ , : ) ;.e ~.[. . . . . . . .' !.q ^.e ;.) : , _ _ &.g g g M h s M d d _ s B } g g g M M s g C x # g g &.&.} } } M } } ) } v g v ~ e }.3 * & q j . r e % ) ) # ) ) # ) } ) # # # # } } X e 7 c .].c c . . . .c c ].].c c > u u ^ c c c ^ . c ].c c ].c .c f u ^ ]. ^ 5 c c c c > ^ c c c .c c c c ].c ' u m ]. c c ].c c c ].].c c c c c . ' J e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 j ^ z J ' . . . . . . . . .' O e e e e e e e e e e e e e e * j c c ' 4 e e e e e e e e e e e e e e e e e e e e e e e | m . . . . . . . . . . . . . . . . . . .j & Y e e e e e e e e e e e e e e e e e e e e e e e z + j .' & e e e e e e e e e e e 3 ' . . . . . .].' / ~.. j G ~.e e e e e e e e e e e e x B < e ;.N b A l W b _ ( n d &.&.h _ , @ @ , , H 8 *.Q (.e z G ' c . . . . . . . . .c k z e /.Q v h K h , , , M W [ g g _ d @ = ) M d , h v o ~ e Q , M M s s } } M A , , d M d ] % e - u 7 . 7 ^ c j }.e >.) } ) d , } ) } : d M ) ) _ d v ,.e 3 5 > .m . ^ f ].].f . ^ m > ^ u 5 t . & > ^ u ^ > k L u . t . c ^ L + + L k m ].. G u 3 4 t . + u c u G > . u + c u + 4 . + & 5 & . u ].u G . u m m . 5 & . ^ ^ _.u q e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i m z 4 i j . . . . . . .' u U e e e e e e e e e e e e e - ^ 5 m m 5 j 4 ~.e e e e e e e e e e e e e e e e e e e e | 5 ' . . . . . . . . . . . . . . . . . . . .].' G U e e e e e e e e e e e e e e e e e e e e e - . ' . .' & e e e e e e e e e e e 3 ' . . .].' j j i u e J i j - e e e e e e e e e e e e e C I e e ^.! # B @.l h 1 = d &., h , h h : H 8 # Q /.e /./ > j ]. . . . . . . . . . . .c ' > / Y e ^.! o @ H h h w _ @ @ : b , h '.} d , ) % ~ e e /.$ # # o # ) I o o o ) # I # o o x e 2./ k O 4 ' .c !.| e X o o # # *.# % o # # o o o o *.! e z u . . . u ^ . c L + + + + G > + u & ^ k . G m Z G 5 + k u G ' G > . u ].& > > G k ^ G G t 3 G + 5 + k 3 k & G & & . J & + + & 3 & & & G G 3 k ^ ^ & & 3 3 4 u +.k + 7 e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e z 2 7 Y - 2 7 & . . . . . . . | e e e e e e e e e e e e e e r r r U - ' ' k r e e e e e e e e e e e e e e e e e e 2 L . . . . . . . . . . . . . . . . . . . . . . .' + z e e e e e e e e e e e e e e e e e e Y O 5 ' . . .' & e e e e e e e e e e e 3 ' . .c 5 7 - - - - e r - - U e e e e e e e e e e e e e ^.R e ~.U e /.>.! $ I $.$.d g g &.d } v # X >./.e ~.{.u ' . . . . . . . . . . . . . . .c ' u {.U e ^.,.;.o I v N d &.h W g } F # Q >.(.e e e e e ..............................^.e {.& q G 7 T c . .' + Y e /.............................^.e e 7 . > ^ G + L & ^ L G G k k + 5 & 5 ^ u k k > k > > 4 f + & * G & ^ k > + k _. 4 u t G 4 G j u & G 3 5 . 3 k / 4 > u J k t J 4 + u 4 4 3 k J G . 4 3 u 4 3 4 4 k & G & * & | e e ",
-"e e - .]. . . . . . . . . . . . . . . .c m r U U U U U U U U U U r z z ~.r z r 4 . . . . . . .' k Y U U U U U U U U U U U U e r q 2 2 O ].' . 7 e e e e e e e e e e e e e e e z k . . . . . . . . . . . . ._. ' ' ' ' ' ' ' ' ' ' i <.O U e e e e e e e e e e e e e e e | + ' . . . . & Y U U U U U U U U U U k ' . .c m | z z z z z e r z z U U U U U U U U U U U U U U U z 7 ^ O z e e e e e >.~ ~ ~ ~ >.^.e e e e z O u ' ' ]. . . . . . . . . . . . . . . . . .].' ' ^ [.- ~.e e e e ,.~ ~ ;.~ >./.e e e e r {.7 - - - z z z z z z z z z z z z z z z z - > & ^ G u . . . .' [.z z z z z z z z z z z z z z z z z - z - + Z u G > ].+ > _.. . . G k G 5 ^ & G ^ 3 & . ' . & > 5 G k m > 3 4 ^ + G 5 5 & + ^ G k m c c u > u f ].c + & G u L ^ ^ . k & 5 + k m u . . ^ . 4 4 m G + . t 3 + + + u ' q e e ",
-"e e - .]. . . . . . . . . . . . . . . . .f . . . . . . . . . . . ^ 5 . z * L > L . . . . . . . .].t . . . . . . . . . . . . ^ 7 U L i i j . . . T G | U e e e e e e e e e ~.z J > ' . . . . . . . . . . . . . . .' k | 7 7 7 7 7 7 7 7 7 7 7 7 z e e e e e e e e e e e e U 7 G :.' . . . . . .].5 . . . . . . . . . . . 5 ]. . . ._.m m m m L + e / f > . . . . . . . . . . . . . . ^ m m ' m u }.7 z z z z z r z z z z 7 }.u m j . . . . . . . . . . . . . . . . . . . . . . .c j L . 3 {.- z z z z r z z z z | O G > L m m m m m m m m m m m m m m m m > > > m c ' . . . . . .|.> > m m m m m m m m > > > > > > > m m > f c c . c .c c ' u ^ j ].c ' ' m + _. ' c ]. ' ^ 4 u .' ' ].].' c ' ' ]. . . c . . . ' ].c c c ' ' ]. ' ]. c <.G L ' c ].' _. ' J e e ",
-"e e - .]. . . . . . . . . . . . . . . . . . ' > z J j c . . . . . . . . .c i G e * j . . . . . .c ' ' u 4 q | - - - - 2 * G t ' . . . . . . . . . . . . . . . .j 4 z - - - - - - - - - - - - - - - - - - - - - - | q 4 . ' ' c . . . . . . . .c c . . . . .c ' T - z :. c . . ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c c . . . . . . . . . . .c ]. . . . . . . . . . . .].]. . . . . . .c . . . . . . . . . . .f c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > - 3 ' . . . . . . . . . . . . . . . . . . . . . . . .c t - q ]. . . . . . . . . j ' t 5 5 5 5 j ' ]. . . . . . . . . . . . . . . . . . .].t 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 t ' j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .j J e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.m L ]. . . . . . . . . . . . . . . . . . . . . . . . . .c > . . . . . . . . . . . . .].c c c c c c . . . . . . . . . . . . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c > J + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ",
-"e e - ].c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].].].]. ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].]. j .].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ",
-"e e - j J e e ",
-"e e r 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 q - e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ,.$ ! e e e e e e e e e e e e e e e e e e e e e ~ 0 ! e e e e e e e e e e e e e e e e e e e e e e e e /.$ $ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Q I ;.e e e e e e e >.I ;.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e ^.^.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e /./.e e e e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e e /.e e e e e e e e e e e e ^./.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e R e e e e e e e e e e e ^.(.e e e e e e e e e e e e e e e e e e e e e ~ p o e e e e e e e e e e e e e e e e e e e e e X { % e e ^.e e e e e e e e e e R ^.e e e e e e e e e (.9 9 e /.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e % { { C e e e e e e e ;.{ C e e e e e e e e e e ^.e e e e e e e e e e ^.^.e e /.e e e e e e e e e e e e e e e e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e ^.e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e R o y 9 % ^.e e e e e e e e % < E y < X e e e e e e e e e /.o y 9 % ^.e e e e e e e e $ 0 < y % e e e e e e e e e e e e e e e e e e e e (.I y 0 >.e e e e e e e e e % 9 y $ R e e e e e e e e ! < ~ e o 0 /.e e e e e e e % < < X e e e e e e e e ;.0 ; 0 ~ e e e e e e e e X < ; E >.e e e e e e e e e e e e e e e e e e e >.< C e e e e e e e (.E o e ~ < ! e e e e e e e ;.{ C ~ < o e e e e e e e e ,.a ; < ! e e e e e e e e R < p E ; E >.e e e e e e e e e ,.I ; < ! e e e e e e e e $ < >.C 9 X e e e e e e e e e e e e e e e e e e % p { 0 (.e e e e e e e ~ 9 ! e e e e e e e >.E < E e e e e e e e (.I 0 < 9 % a ; 0 ~ e e e e e e e (.a I e I 0 e o 0 ,.e e e e e e e R $ y < a 0 x e e e e e e e ~ 0 0 I e e e e e e e e ,.I ; < ! e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e $ { < 9 { o e e e e e e e e $ { p 0 p p ;.e e e e e e e e $ { < < { $ e e e e e e e e 0 { 9 y { C e e e e e e e e e e e e e e e e e e e $ { < ; $ e e e e e e e e % { 9 < { I e e e e e e e e % { ;.e a { /.e e e e e e e a { ; ;.e e e e e e e ~ p p < ; ! e e e e e e e ;.p ; E { 9 x e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ o < { ;.e e e e e e e R < { 0 ; { ! e e e e e e e R < { y < { < (.e e e e e e e R < { 0 ; { ! e e e e e e e X { 9 ; < (.e e e e e e e e e e e e e e e e e e o { { $ e e e e e e e e ;.{ C e e e e e e e ~ p { a e e e e e e e x 9 { < y { { < { 9 /.e e e e e e e E p ! ; { ! < 9 /.e e e e e e e I { < 9 { { x e e e e e e e ! { { $ e e e e e e e (.< { 0 y { ! e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e R { E ^.(.< p (.e e e e e e e I { Q e X { $ e e e e e e e ,.p { E 0 { ; ,.e e e e e e e < p ,.,.p a e e e e e e e e e e e e e e e e e e e o { < I ~ e e e e e e e (.y 9 (.e a { ~ e e e e e e e % { ;.e a { /.e e e e e e e a p ~ e e e e e e e e $ { ;.e x e e e e e e e e I { < a y { % e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ ; { C e e e e e e e e Q { ; a < { 0 e e e e e e e R < p >.e o { Q e e e e e e e ! { % e ~ p 0 e e e e e e e e o { p ;.e e e e e e e e e e e e e e e e e e e R 0 p R e e e e e e e e ;.{ C e e e e e e e ~ { a e e e e e e e e x y < e ! { I e o { X e e e e e e e % { < p { < { $ e e e e e e e >.p E ^./.0 { x e e e e e e e X { $ e e e e e e e e ! { ; a < { 0 e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e R { $ e e I { ,.e e e e e e e I { ;.e (.{ I e e e e e e e >.{ { y y ; 9 ~ e e e e e e e < y (./.; E e e e e e e e e e e e e e e e e e e e /.% < { E e e e e e e e ,.p E e e o { ;.e e e e e e e % { ;.e a { /.e e e e e e e a p (.e e e e e e e e a { (.e e e e e e e e e e E { ; ; y ; o e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ { { Q e e e e e e e e % { p ; y ; 0 e e e e e e e R 9 9 e e Q { C e e e e e e e C { X e (.9 9 e e e e e e e e C { ; x e e e e e e e e e e e e e e e e e e e e E p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e >.p { p ; { { X e e e e e e e ~ { $ e e I { x e e e e e e e X { % e e e e e e e e C { p y y ; E /.e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e ^.< { % o { E e e e e e e e e $ { < Q 0 { C e e e e e e e /.< { $ I $ ,.^.e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e a < % y y R e e e e e e e a { o C p 9 (.e e e e e e e ! { E C ; p /.e e e e e e e a p x e e e e e e e e Q { 0 C $ >.e e e e e e e C { < o E ;.R e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e 9 p C E { % e e e e e e e ;.{ $ 9 p ~ e e e e e e e >.p ; o E C x e e e e e e e R < { I Q y p ~ e e e e e e e >.p 9 Q I { o e e e e e e e ,.y { { I e e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e < { E $ { ; R e e e e e e e /.9 { % o p { x e e e e e e e X { % e e e e e e e e >.p ; o a % (.e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e ~ 9 { { < >.e e e e e e e e $ { p { { $ /.e e e e e e e e ~ < { { 0 R e e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e Q p { { o e e e e e e e e ,.< { { 9 ;.e e e e e e e e ^.$ { { p p /.e e e e e e e a p x e e e e e e e e ^.$ { { { Q e e e e e e e /.$ { { p X e e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e X ; { p { % e e e e e e e ;.{ C ;.{ 9 x e e e e e e e Q p { { $ e e e e e e e e R < { p { p C e e e e e e e e e Q p { { I R e e e e e e e I { ! a { ! e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e o { C ! { a e e e e e e e e e ;.y { { p { x e e e e e e e ! { % e e e e e e e e e Q ; { { $ e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e (.X ;.R e e e e e e e e e I { X X ~ e e e e e e e e e e e (.X ;.R e e e e e e e e e x ,.e e ,.x e e e e e e e e e e e e e e e e e e e e ,.! ~ e e e e e e e e e e /.;.X (.e e e e e e e e e e ^.;.;.,.,.e e e e e e e e x ,.^.e e e e e e e e e e >.! >.e e e e e e e e e e >.! ,.e e e e e e e e e e e e e e e e e e e e C { o e e e e e e e e e ,.X >.>.(.e e e e e e e /.>.(.e x >.R e e e e e e e e x ! ~ ^.e e e e e e e e e ,.,.>.X >.e e e e e e e e e e e x ! ~ ^.e e e e e e e e >.>.e (.>.(.e e e e e e e e e e e e e e e e e e e x ,.e e e e e e e e e /.>.(.e e e e e e e ^.>.x e e e e e e e e ^.,.x e /.>.(.e (.>.R e e e e e e e e R >./.^.>.(.e e e e e e e e e e (.! ~ x >.^.e e e e e e e /.>.(.e e e e e e e e e e ,.X ~ ^.e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e I { ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e /.p p ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e X C (.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ^.C ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ",
-"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e "};
diff --git a/rbutil/rbutil-rc.rc b/rbutil/rbutil-rc.rc
deleted file mode 100644
index 3202cefc49..0000000000
--- a/rbutil/rbutil-rc.rc
+++ /dev/null
@@ -1,27 +0,0 @@
-#define RBUTIL 1
-#include <wx/msw/wx.rc>
-RBUTIL VERSIONINFO
-FILEVERSION 0,3,2,6
-PRODUCTVERSION 0,3,2,6
-FILEOS 0x00000004
-FILETYPE 0x00000001
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "FFFF0000"
- BEGIN
- VALUE "FileVersion", "0.3.2.6\0"
- VALUE "ProductVersion", "0.3.2.6\0"
- VALUE "CompanyName", "Rockbox Team\0"
- VALUE "FileDescription", "Rockbox Utility\0"
- VALUE "InternalName", "rbutil\0"
- VALUE "LegalCopyright", "(C) 2005 - 2007 Rockbox Team\0"
- VALUE "ProductName", "Rockbox Utility\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0xFFFF, 0x0000
- END
-END
-RBUTIL_ICON ICON archos.ico
diff --git a/rbutil/rbutil.cbp b/rbutil/rbutil.cbp
deleted file mode 100644
index 2db68ceac7..0000000000
--- a/rbutil/rbutil.cbp
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_project_file>
- <FileVersion major="1" minor="6" />
- <Project>
- <Option title="rbutil" />
- <Option pch_mode="0" />
- <Option compiler="gcc" />
- <MakeCommands>
- <Build command="$make -f $makefile all" />
- <CompileFile command="$make -f $makefile $file" />
- <Clean command="$make -f $makefile clean" />
- <DistClean command="$make -f $makefile distclean" />
- </MakeCommands>
- <Build>
- <Target title="Release">
- <Option output="rbutil.exe" prefix_auto="0" extension_auto="0" />
- <Option type="0" />
- <Option compiler="gcc" />
- <Option projectResourceIncludeDirsRelation="0" />
- <ExtraCommands>
- <Add before="cmd /c cd icons &amp;&amp; bin2c.exe *.png" />
- <Add after="upx --best --compress-icons=0 rbutil.exe" />
- </ExtraCommands>
- <MakeCommands>
- <Build command="$make -f $makefile all" />
- <CompileFile command="$make -f $makefile $file" />
- <Clean command="$make -f $makefile clean" />
- <DistClean command="$make -f $makefile distclean" />
- </MakeCommands>
- </Target>
- <Target title="Debug">
- <Option output="rbutil.exe" prefix_auto="0" extension_auto="0" />
- <Option type="0" />
- <Option compiler="gcc" />
- <Compiler>
- <Add option="-g" />
- </Compiler>
- <MakeCommands>
- <Build command="$make -f $makefile all" />
- <CompileFile command="$make -f $makefile all" />
- <Clean command="$make -f $makefile clean" />
- <DistClean command="$make -f $makefile distclean" />
- </MakeCommands>
- </Target>
- <Environment>
- <Variable name="WX_CFG" value="" />
- </Environment>
- </Build>
- <VirtualTargets>
- <Add alias="All" targets="default;" />
- </VirtualTargets>
- <Compiler>
- <Add option="-W" />
- <Add option="-g" />
- <Add option="-pipe" />
- <Add option="-mthreads" />
- <Add option="-Winvalid-pch" />
- <Add option='-include &quot;wx_pch.h&quot;' />
- <Add option="-D__GNUWIN32__" />
- <Add option="-D__WXMSW__" />
- <Add option="-DUSE_PCH" />
- <Add option="-DRBUTIL" />
- <Add directory="$(#WX.include)" />
- <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)\msw" />
- <Add directory="$(#WX)\contrib\include" />
- <Add directory=".\" />
- </Compiler>
- <ResourceCompiler>
- <Add directory="$(#WX.include)" />
- </ResourceCompiler>
- <Linker>
- <Add library="wxmsw28" />
- <Add library="winspool" />
- <Add library="winmm" />
- <Add library="shell32" />
- <Add library="comctl32" />
- <Add library="ctl3d32" />
- <Add library="odbc32" />
- <Add library="advapi32" />
- <Add library="wsock32" />
- <Add library="opengl32" />
- <Add library="glu32" />
- <Add library="ole32" />
- <Add library="oleaut32" />
- <Add library="uuid" />
- <Add library="libwxzlib" />
- <Add library="libwxregex" />
- <Add library="libwxpng" />
- <Add library="libwxjpeg" />
- <Add library="libwxtiff" />
- <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)" />
- <Add directory="$(#WX.lib)" />
- <Add directory=".\" />
- </Linker>
- <Unit filename="Makefile" />
- <Unit filename="archos.ico" />
- <Unit filename="autodetection.cpp" />
- <Unit filename="autodetection.h" />
- <Unit filename="bootloaders.cpp" />
- <Unit filename="bootloaders.h" />
- <Unit filename="copying.txt" />
- <Unit filename="credits.h" />
- <Unit filename="fonts_3d.xpm" />
- <Unit filename="h100sums.h" />
- <Unit filename="h120sums.h" />
- <Unit filename="h300sums.h" />
- <Unit filename="icons\bin2c.c">
- <Option compilerVar="CC" />
- <Option compile="0" />
- <Option link="0" />
- </Unit>
- <Unit filename="icons\bootloader_btn.cpp" />
- <Unit filename="icons\bootloader_btn.h" />
- <Unit filename="icons\bootloader_btn.png" />
- <Unit filename="icons\talkfile_btn.cpp" />
- <Unit filename="icons\talkfile_btn.h" />
- <Unit filename="icons\talkfile_btn.png" />
- <Unit filename="icons\doom_btn.cpp" />
- <Unit filename="icons\doom_btn.h" />
- <Unit filename="icons\doom_btn.png" />
- <Unit filename="icons\font_btn.cpp" />
- <Unit filename="icons\font_btn.h" />
- <Unit filename="icons\font_btn.png" />
- <Unit filename="icons\rbinstall_btn.cpp" />
- <Unit filename="icons\rbinstall_btn.h" />
- <Unit filename="icons\rbinstall_btn.png" />
- <Unit filename="icons\rembootloader_btn.cpp" />
- <Unit filename="icons\rembootloader_btn.h" />
- <Unit filename="icons\rembootloader_btn.png" />
- <Unit filename="icons\remrb_btn.cpp" />
- <Unit filename="icons\remrb_btn.h" />
- <Unit filename="icons\remrb_btn.png" />
- <Unit filename="icons\themes_btn.cpp" />
- <Unit filename="icons\themes_btn.h" />
- <Unit filename="icons\themes_btn.png" />
- <Unit filename="install_3d.xpm" />
- <Unit filename="install_dialogs.cpp" />
- <Unit filename="install_dialogs.h" />
- <Unit filename="installlog.cpp" />
- <Unit filename="installlog.h" />
- <Unit filename="ipodpatcher\ipodio-win32.c">
- <Option compilerVar="CC" />
- <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\ipodpatcher\ipodio-win32.o" />
- </Unit>
- <Unit filename="ipodpatcher\ipodio.h" />
- <Unit filename="ipodpatcher\ipodpatcher.c">
- <Option compilerVar="CC" />
- <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\ipodpatcher\ipodpatcher.o\n" />
- </Unit>
- <Unit filename="ipodpatcher\ipodpatcher.h" />
- <Unit filename="ipodpatcher\parttypes.h" />
- <Unit filename="irivertools.cpp" />
- <Unit filename="irivertools.h" />
- <Unit filename="md5sum.cpp" />
- <Unit filename="md5sum.h" />
- <Unit filename="rblogo.xpm" />
- <Unit filename="rbutil-rc.rc">
- <Option compilerVar="WINDRES" />
- </Unit>
- <Unit filename="rbutil.cpp" />
- <Unit filename="rbutil.h" />
- <Unit filename="rbutil.ini" />
- <Unit filename="rbutil.iss" />
- <Unit filename="rbutilApp.cpp" />
- <Unit filename="rbutilApp.h" />
- <Unit filename="rbutilCtrls.cpp" />
- <Unit filename="rbutilCtrls.h" />
- <Unit filename="rbutilFrm.cpp" />
- <Unit filename="rbutilFrm.h" />
- <Unit filename="rbutilFrm_XPM.xpm" />
- <Unit filename="sansapatcher\parttypes.h" />
- <Unit filename="sansapatcher\sansaio-win32.c">
- <Option compilerVar="CC" />
- <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -DRBUTIL -g -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\sansapatcher\sansaio-win32.o" />
- </Unit>
- <Unit filename="sansapatcher\sansaio.h" />
- <Unit filename="sansapatcher\sansapatcher.c">
- <Option compilerVar="CC" />
- <Option compiler="gcc" use="1" buildCommand="mingw32-gcc.exe -W -g -pipe -mthreads -Winvalid-pch -D__GNUWIN32__ -D__WXMSW__ -DUSE_PCH -g -DRBUTIL -I.\ -IC:\Dev-Cpp\include -c $file -o .objs\sansapatcher\sansapatcher.o" />
- </Unit>
- <Unit filename="sansapatcher\sansapatcher.h" />
- <Unit filename="themes_3d.xpm" />
- <Unit filename="tools2_3d.xpm" />
- <Unit filename="tts.cpp">
- <Option compiler="gcc" use="0" buildCommand="gcc -Wall -g tts.cpp -I$FLITEDIR/include -L$FLITEDIR/lib \n -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex -lflite -lm" />
- </Unit>
- <Unit filename="tts.h" />
- <Unit filename="uninstall_3d.xpm" />
- <Unit filename="untools2_3d.xpm" />
- <Unit filename="wizard.xpm" />
- <Unit filename="wx_pch.h" />
- <Extensions>
- <code_completion />
- </Extensions>
- </Project>
-</CodeBlocks_project_file>
diff --git a/rbutil/rbutil.cpp b/rbutil/rbutil.cpp
deleted file mode 100644
index 058ca10a27..0000000000
--- a/rbutil/rbutil.cpp
+++ /dev/null
@@ -1,783 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutil.cpp
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "rbutil.h"
-#include "installlog.h"
-
-/* this function gets a Bitmap from embedded memory */
-wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length)
-{
- wxMemoryInputStream istream( data,length);
- return wxBitmap(wxImage(istream, wxBITMAP_TYPE_ANY, -1), -1);
-}
-
-// This class allows us to return directories as well as files to
-// wxDir::Traverse
-class wxDirTraverserIncludeDirs : public wxDirTraverser
-{
-public:
- wxDirTraverserIncludeDirs(wxArrayString& files) : m_files(files) { }
-
- virtual wxDirTraverseResult OnFile(const wxString& filename)
- {
- m_files.Add(filename);
- return wxDIR_CONTINUE;
- }
-
- virtual wxDirTraverseResult OnDir(const wxString& dirname)
- {
- m_files.Add(dirname);
- return wxDIR_CONTINUE;
- }
-
-private:
- wxArrayString& m_files;
-};
-
-wxDEFINE_SCOPED_PTR_TYPE(wxZipEntry);
-
-const wxChar* _rootmatch[] = {
- wxT("rockbox.*"),
- wxT("ajbrec.ajz"),
- wxT("archos.mod"),
- wxT(".scrobbler.*"),
- wxT("battery_bench.txt"),
- wxT("battery.dummy"),
-};
-const wxArrayString* rootmatch = new wxArrayString(
- (size_t) (sizeof(_rootmatch) / sizeof(wxChar*)), _rootmatch);
-
-bool InstallTheme(wxString Themesrc)
-{
- wxString dest,src,err;
-
- int pos = Themesrc.Find('/',true);
- wxString themename = Themesrc.SubString(pos+1,Themesrc.Length());
-
- src = gv->themes_url + wxT("/") + Themesrc;
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP) + themename;
- if( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install Theme"));
- return false;
- }
-
- if(!checkZip(dest))
- {
- ERR_DIALOG(wxT("The Zip ") + dest
- + wxT(" does not contain the correct dir structure"),
- wxT("Install Theme"));
- return false;
- }
-
- if(UnzipFile(dest,gv->curdestdir, true))
- {
- ERR_DIALOG(wxT("Unable to unzip ") + dest + wxT(" to ")
- + gv->curdestdir, wxT("Install Theme"));
- return false;
- }
-
- return true;
-}
-
-bool checkZip(wxString zipname)
-{
-
- wxZipEntryPtr entry;
-
- wxFFileInputStream* in_file = new wxFFileInputStream(zipname);
- wxZipInputStream* in_zip = new wxZipInputStream(*in_file);
-
- entry.reset(in_zip->GetNextEntry());
-
- wxString name = entry->GetName();
- if(entry->IsDir())
- {
- if( 0==name.Cmp(wxT(".rockbox"))
- || 0==name.Cmp(wxT(".rockbox\\"))
- || 0==name.Cmp(wxT(".rockbox/")) )
- return true;
- }
- else
- {
- if( name.StartsWith(wxT(".rockbox/"))
- || name.StartsWith(wxT(".rockbox\\")) )
- return true;
- }
-
- return false;
-
-}
-
-int DownloadURL(wxString src, wxString dest)
-{
- int input, errnum = 0, success = false;
- wxString buf, errstr;
- wxLogVerbose(wxT("=== begin DownloadURL(%s,%s)"), src.c_str(),
- dest.c_str());
-
- buf = wxT("Fetching ") + src;
- wxProgressDialog* progress = new wxProgressDialog(wxT("Downloading"),
- buf, 100, NULL, wxPD_APP_MODAL |
- wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME |
- wxPD_REMAINING_TIME | wxPD_CAN_ABORT);
- progress->SetSize(500,200);
- progress->Update(0);
-
-
- input = true;
- wxURL* in_http = new wxURL(src);
-
- if(gv->proxy_url != wxT(""))
- in_http->SetProxy(gv->proxy_url);
-
- if (in_http->GetError() == wxURL_NOERR)
- {
-
- wxFFileOutputStream* os = new wxFFileOutputStream(dest);
- input = false;
- if (os->IsOk())
- {
- wxInputStream* is = in_http->GetInputStream();
- input = true;
- if (is)
- {
- size_t filesize = is->GetSize();
- input = true;
- if (is->IsOk())
- {
- char buffer[FILE_BUFFER_SIZE + 1];
- size_t current = 0;
-
- while (! is->Eof())
- {
- is->Read(buffer, FILE_BUFFER_SIZE);
- input = true;
- if (is->LastRead() )
- {
- os->Write(buffer, is->LastRead());
- input = false;
- if (os->IsOk())
- {
- current += os->LastWrite();
- if (!progress->Update(current * 100 / filesize))
- {
- errstr = wxT("Download aborted by user");
- errnum = 1000;
- break;
- }
-
- } else
- {
- errnum = os->GetLastError();
- errstr = wxT("Can't write to output stream (")
- + stream_err_str(errnum) + wxT(")");
-
- break;
- }
-
- } else
- {
- errnum = is->GetLastError();
- if (errnum == wxSTREAM_EOF)
- {
- errnum = 0;
- break;
- }
- errstr = wxT("Can't read from input stream (")
- + stream_err_str(errnum) + wxT(")");
- }
- }
-
- os->Close();
- if (! errnum)
- {
- errnum = os->GetLastError();
- errstr = wxT("Can't close output file (")
- + stream_err_str(errnum) + wxT(")");
-
- input = false;
- }
-
- if (! errnum) success = true;
-
- } else
- {
- errnum = is->GetLastError();
- errstr = wxT("Can't get input stream size (")
- + stream_err_str(errnum) + wxT(")");
- }
- } else
- {
- errnum = in_http->GetError();
- errstr.Printf(wxT("Can't get input stream (%d)"), errnum);
- }
- delete is;
- } else
- {
- errnum = os->GetLastError();
- errstr = wxT("Can't create output stream (")
- + stream_err_str(errnum) + wxT(")");
- }
- delete os;
- } else
- {
- errstr.Printf(wxT("Can't open URL %s (%d)"), src.c_str(),
- in_http->GetError() );
- errnum = 100;
- }
-
- delete in_http;
- delete progress;
-
- if (!success)
- {
- if (errnum == 0) errnum = 999;
- if (input)
- {
- ERR_DIALOG(errstr + wxT(" reading\n") + src, wxT("Download URL"));
- } else
- {
- ERR_DIALOG(errstr + wxT("writing to download\n/") + dest,
- wxT("Download URL"));
- }
-
- }
-
- wxLogVerbose(wxT("=== end DownloadURL"));
- return errnum;
-}
-
-int UnzipFile(wxString src, wxString destdir, bool isInstall)
-{
-
- wxZipEntryPtr entry;
- wxString in_str, progress_msg, buf,subdir;
- int errnum = 0, curfile = 0, totalfiles = 0;
- InstallLog* log = NULL;
-
- wxLogVerbose(wxT("===begin UnzipFile(%s,%s,%i)"),
- src.c_str(), destdir.c_str(), isInstall);
-
- wxFFileInputStream* in_file = new wxFFileInputStream(src);
- wxZipInputStream* in_zip = new wxZipInputStream(*in_file);
- if (in_file->Ok() )
- {
- if (! in_zip->IsOk() )
- {
- errnum = in_zip->GetLastError();
- ERR_DIALOG(wxT("Can't open ZIP stream ") + src
- + wxT(" for reading (") + stream_err_str(errnum)
- + wxT(")"), wxT("Unzip File") );
- delete in_zip;
- delete in_file;
- return true;
- }
-
- totalfiles = in_zip->GetTotalEntries();
- if (! in_zip->IsOk() )
- {
- errnum = in_zip->GetLastError();
- ERR_DIALOG( wxT("Error Getting total ZIP entries for ")
- + src + wxT(" (") + stream_err_str(errnum) + wxT(")"),
- wxT("Unzip File") );
- delete in_zip;
- delete in_file;
- return true;
- }
- } else
- {
- errnum = in_file->GetLastError();
- ERR_DIALOG(wxT("Can't open ") + src + wxT(" (")
- + stream_err_str(errnum) + wxT(")"), wxT("Unzip File") );
- delete in_zip;
- delete in_file;
- return true;
- }
-
- wxProgressDialog* progress = new wxProgressDialog(wxT("Unpacking archive"),
- wxT("Preparing to unpack the downloaded files to your audio"
- "device"), totalfiles, NULL, wxPD_APP_MODAL |
- wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME |
- wxPD_REMAINING_TIME | wxPD_CAN_ABORT);
- progress->Update(0);
-
- // We're not overly worried if the logging fails
- if (isInstall)
- {
- log = new InstallLog(destdir + wxT("" PATH_SEP UNINSTALL_FILE));
- }
-
- while (! errnum &&
- (entry.reset(in_zip->GetNextEntry()), entry.get() != NULL) )
- {
-
-
- curfile++;
- wxString name = entry->GetName();
- // set progress
- progress_msg = wxT("Unpacking ") + name;
- if (! progress->Update(curfile, progress_msg) )
- {
- MESG_DIALOG(wxT("Unpacking cancelled by user"));
- errnum = 1000;
- break;
- }
-
- in_str = destdir + wxT("" PATH_SEP) + name;
-
- subdir = wxPathOnly(in_str);
- if(!(wxDirExists(subdir)))
- {
- if (! wxMkdir(subdir, 0777) )
- {
- buf = wxT("Unable to create directory ") + subdir;
- errnum = 100;
- break;
- }
- log->WriteFile(subdir, true); // Directory
- }
-
- if(entry->IsDir())
- {
- if(!wxDirExists(name))
- {
- if(!wxMkdir(name, 0777) )
- {
- buf = wxT("Unable to create directory ") + name;
- errnum = 100;
- break;
- }
- }
- log->WriteFile(name, true); // Directory
- continue; // this is just a directory, nothing else to do
- }
-
- // its a file, copy it
- wxFFileOutputStream* out = new wxFFileOutputStream(in_str);
- if (! out->IsOk() )
- {
- buf = wxT("Can't open file ") + in_str + wxT(" for writing");
- delete out;
- errnum = 100;
- break;
- } else if (isInstall)
- {
- log->WriteFile(name);
- }
-
- in_zip->Read(*out);
- if (! out->IsOk()) {
- buf.Printf(wxT("Can't write to %s (%d)"), in_str.c_str(),
- errnum = out->GetLastError() );
- }
-
- if (!in_zip->IsOk() && ! in_file->GetLastError() == wxSTREAM_EOF)
- {
- buf.Printf(wxT("Can't read from %s (%d)"), src.c_str(),
- errnum = in_file->GetLastError() );
- }
-
- if (! out->Close() && errnum == 0)
- {
- buf.Printf(wxT("Unable to close %s (%d)"), in_str.c_str(),
- errnum = out->GetLastError() );
-
- }
-
- delete out;
-
- }
-
- delete in_zip; delete in_file; delete progress;
-
- if (errnum)
- {
- ERR_DIALOG(buf, wxT("Unzip File"));
- }
-
- if (log) delete log;
- wxLogVerbose(wxT("=== end UnzipFile"));
- return(errnum);
-
-}
-
-int Uninstall(const wxString dir, bool isFullUninstall) {
- wxString buf, uninst;
- unsigned int i;
- bool errflag = false;
- InstallLog *log = NULL;
- wxArrayString* FilesToRemove = NULL;
-
- wxLogVerbose(wxT("=== begin Uninstall(%s,%i)"), dir.c_str(), isFullUninstall);
-
- wxProgressDialog* progress = new wxProgressDialog(wxT("Uninstalling"),
- wxT("Reading uninstall data from jukebox"), 100, NULL,
- wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH |
- wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT);
- progress->Update(0);
-
- if (! isFullUninstall)
- {
-
- buf = dir + wxT("" PATH_SEP UNINSTALL_FILE);
- log = new InstallLog(buf, false); // Don't create the log
- FilesToRemove = log->GetInstalledFiles();
- if (log) delete log;
-
- if (FilesToRemove == NULL || FilesToRemove->GetCount() < 1) {
- wxLogNull lognull;
- if ( wxMessageDialog(NULL,
- wxT("Rockbox Utility can't find any uninstall data on this "
- "jukebox.\n"
- "Would you like to attempt a full uninstall?\n"
- "(WARNING: A full uninstall removes all files in your Rockbox "
- "folder)"),
- wxT("Standard uninstall not possible"),
- wxICON_EXCLAMATION | wxYES_NO | wxNO_DEFAULT).ShowModal()
- == wxID_YES)
- {
- isFullUninstall = true;
- }
- else {
- MESG_DIALOG(wxT("Uninstall cancelled by user"));
- delete progress;
- return 1000;
- }
- }
- }
-
- if (isFullUninstall )
- {
- buf = dir + wxT("" PATH_SEP ".rockbox");
- if (rm_rf(buf) )
- {
- WARN_DIALOG(wxT("Unable to completely remove Rockbox directory"),
- wxT("Full uninstall") );
- errflag = true;
- }
-
- wxDir* root = new wxDir(dir);
- wxArrayString* special = new wxArrayString();
- // Search for files for deletion in the jukebox root
- for (i = 0; i < rootmatch->GetCount(); i++)
- {
- const wxString match = (*rootmatch)[i];
- root->GetAllFiles(dir, special, match, wxDIR_FILES);
- }
- delete root;
-
- // Sort in reverse order so we get directories last
- special->Sort(true);
-
- for (i = 0; i < special->GetCount(); i++)
- {
-
- if (wxDirExists((*special)[i]) )
- {
- // We don't check the return code since we don't want non
- // empty dirs disappearing.
- wxRmdir((*special)[i]);
-
- } else if (wxFileExists((*special)[i]) )
- {
- if (! wxRemoveFile((*special)[i]) )
- {
- WARN_DIALOG(wxT("Can't delete ") + (*special)[i],
- wxT("Full uninstall"));
- errflag = true;
- }
- }
- // Otherwise there isn't anything there, so we don't have to worry.
- }
- delete special;
- } else
- {
- wxString instplat, this_path_sep;
- unsigned int totalfiles, rc;
- totalfiles = FilesToRemove->GetCount();
- FilesToRemove->Sort(true); // Reverse alphabetical ie dirs after files
-
- for (i = 0; i < totalfiles; i++)
- {
- // If we're running on the device, let's not delete our own
- // installation, eh?
- if (gv->portable &&
- FilesToRemove->Item(i).StartsWith(PATH_SEP
- wxT("RockboxUtility")) )
- {
- continue;
- }
-
- wxString* buf2 = new wxString;
- buf = dir + FilesToRemove->Item(i);
- buf2->Format(wxT("Deleting %s"), buf.c_str());
-
- if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) )
- {
- WARN_DIALOG(wxT("Cancelled by user"), wxT("Normal Uninstall"));
- delete progress;
- return true;
- }
-
- if (wxDirExists(buf) )
- {
- // If we're about to attempt to remove .rockbox. delete
- // install data first
- *buf2 = dir + wxT("" PATH_SEP ".rockbox");
- if ( buf.IsSameAs(buf2->c_str()) )
- {
- *buf2 = dir +wxT("" PATH_SEP UNINSTALL_FILE);
- wxRemoveFile(*buf2);
- }
-
- if ( (rc = ! wxRmdir(buf)) )
- {
- buf = buf.Format(wxT("Can't remove directory %s"),
- buf.c_str());
- errflag = true;
- WARN_DIALOG(buf.c_str(), wxT("Standard uninstall"));
- }
- } else if (wxFileExists(buf) )
- {
- if ( (rc = ! wxRemoveFile(buf)) )
- {
- buf = buf.Format(wxT("Can't delete file %s"),
- buf.c_str());
- errflag = true;
- WARN_DIALOG(buf.c_str(), wxT("Standard uninstall"));
- }
- } else
- {
- errflag = true;
- buf = buf.Format(wxT("Can't find file or directory %s"),
- buf.c_str() );
- WARN_DIALOG(buf.c_str(), wxT("Standard uninstall") );
- }
-
- uninst = uninst.AfterFirst('\n');
- }
- if (errflag)
- {
- ERR_DIALOG(wxT("Unable to remove some files"),
- wxT("Standard uninstall")) ;
- }
-
- if (FilesToRemove != NULL) delete FilesToRemove;
- }
-
- delete progress;
- wxLogVerbose(wxT("=== end Uninstall"));
- return errflag;
-}
-
-
-wxString stream_err_str(int errnum)
-{
- wxString out;
-
- switch (errnum) {
- case wxSTREAM_NO_ERROR:
- out = wxT("wxSTREAM_NO_ERROR");
- break;
- case wxSTREAM_EOF:
- out = wxT("wxSTREAM_EOF");
- break;
- case wxSTREAM_WRITE_ERROR:
- out = wxT("wxSTREAM_WRITE_ERROR");
- break;
- case wxSTREAM_READ_ERROR:
- out = wxT("wxSTREAM_READ_ERROR");
- break;
- default:
- out = wxT("UNKNOWN");
- break;
- }
- return out;
-}
-
-bool InstallRbutil(wxString dest)
-{
- wxArrayString filestocopy;
- wxString str, buf, dstr, localpath, destdir;
- unsigned int i;
- wxDir dir;
- bool copied_exe = false, made_rbdir = false;
- InstallLog* log;
-
- buf = dest + wxT("" PATH_SEP ".rockbox");
-
- if (! wxDirExists(buf) )
- {
- wxMkdir(buf);
- made_rbdir = true;
- }
-
- buf = dest + wxT("" PATH_SEP UNINSTALL_FILE);
- log = new InstallLog(buf);
- if (made_rbdir) log->WriteFile(wxT(".rockbox"), true);
-
- destdir = dest + wxT("" PATH_SEP "RockboxUtility");
- if (! wxDirExists(destdir) )
- {
- if (! wxMkdir(destdir, 0777) )
- {
- WARN_DIALOG( wxT("Unable to create directory for installer (")
- + destdir + wxT(")"), wxT("Portable install") );
- return false;
- }
- log->WriteFile(wxT("RockboxUtility"), true);
- }
-
- dir.GetAllFiles(gv->ResourceDir, &filestocopy, wxT("*"),
- wxDIR_FILES);
- if (filestocopy.GetCount() < 1)
- {
- WARN_DIALOG(wxT("No files to copy"), wxT("Portable install") );
- return false;
- }
-
- // Copy the contents of the program directory
- for (i = 0; i < filestocopy.GetCount(); i++)
- {
- if (filestocopy[i].AfterLast(PATH_SEP_CHR) == EXE_NAME)
- {
- copied_exe = true;
- }
-
- dstr = destdir + wxT("" PATH_SEP)
- + filestocopy[i].AfterLast(PATH_SEP_CHR);
- if (! wxCopyFile(filestocopy[i], dstr) )
- {
- WARN_DIALOG( wxT("Error copying file (")
- + filestocopy[i].c_str() + wxT(" -> ")
- + dstr + wxT(")"), wxT("Portable Install") );
- return false;
- }
- buf = dstr;
- buf.Replace(dest, wxEmptyString, false);
- log->WriteFile(buf);
- }
-
- if (! copied_exe)
- {
- str = gv->AppDir + wxT("" PATH_SEP EXE_NAME);
- dstr = destdir + wxT("" PATH_SEP EXE_NAME);
- if (! wxCopyFile(str, dstr) )
- {
- WARN_DIALOG(wxT("Can't copy program binary ")
- + str + wxT(" -> ") + dstr, wxT("Portable Install") );
- return false;
- }
- buf = dstr;
- buf.Replace(dest, wxEmptyString, false);
- log->WriteFile(buf);
- }
-
- // Copy the local ini file so that it knows that it's a portable copy
- gv->UserConfig->Flush();
- dstr = destdir + wxT("" PATH_SEP "RockboxUtility.cfg");
- if (! wxCopyFile(gv->UserConfigFile, dstr) )
- {
- WARN_DIALOG(wxT("Unable to install user config file (")
- + gv->UserConfigFile + wxT(" -> ") + dstr + wxT(")"),
- wxT("Portable Install") );
- return false;
- }
- buf = dstr;
- buf.Replace(dest, wxEmptyString, false);
- log->WriteFile(buf);
-
- delete log;
- return true;
-}
-
-bool rm_rf(wxString file)
-{
- wxLogVerbose(wxT("=== begin rm-rf(%s)"), file.c_str() );
-
- wxString buf;
- wxArrayString selected;
- wxDirTraverserIncludeDirs wxdtid(selected);
- unsigned int rc = 0, i;
- bool errflag = false;
-
- if (wxFileExists(file) )
- {
- rc = ! wxRemoveFile(file);
- } else if (wxDirExists(file) )
- {
- wxDir* dir = new wxDir(file);;
- dir->Traverse(wxdtid);
- delete dir;
- // Sort into reverse alphabetical order for deletion in correct order
- // (directories after files)
- selected.Sort(true);
- selected.Add(file);
-
- wxProgressDialog* progress = new wxProgressDialog(wxT("Removing files"),
- wxT("Deleting files"), selected.GetCount(), NULL,
- wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH |
- wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT);
-
- for (i = 0; i < selected.GetCount(); i++)
- {
- wxLogVerbose(selected[i]);
- if (progress != NULL)
- {
- buf = wxT("Deleting ") + selected[i];
- if (! progress->Update(i, buf))
- {
- WARN_DIALOG(wxT("Cancelled by user"), wxT("Erase Files"));
- delete progress;
- return true;
- }
- }
-
- if (wxDirExists(selected[i]) )
- {
- if ((rc = ! wxRmdir(selected[i])) )
- {
- errflag = true;
- WARN_DIALOG(wxT("Can't remove directory ") + selected[i],
- wxT("Erase files"));
- }
- } else if ((rc = ! wxRemoveFile(selected[i])) )
- {
- errflag = true;
- WARN_DIALOG(wxT("Error deleting file ") + selected[i],
- wxT("Erase files"));
- }
- }
- delete progress;
- } else
- {
- WARN_DIALOG(wxT("Can't find expected file ") + file,
- wxT("Erase files"));
- return true;
- }
-
- wxLogVerbose(wxT("=== end rm-rf"));
- return rc ? true : false;
-}
-
-
diff --git a/rbutil/rbutil.h b/rbutil/rbutil.h
deleted file mode 100644
index eb31986ace..0000000000
--- a/rbutil/rbutil.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutil.h
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include <wx/wxprec.h>
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-#ifndef WX_PRECOMP
- #include <wx/wx.h>
-#endif
-
-#ifndef __rbutil_HPP_
-#define __rbutil_HPP_
-
-#include <wx/config.h>
-#include <wx/confbase.h>
-#include <wx/fileconf.h>
-#include <wx/stdpaths.h>
-#include <wx/wfstream.h>
-#include <wx/filesys.h>
-#include <wx/fs_inet.h>
-#include <wx/fs_zip.h>
-#include <wx/progdlg.h>
-#include <wx/protocol/http.h>
-#include <wx/string.h>
-#include <wx/url.h>
-#include <wx/ptr_scpd.h>
-#include <wx/zipstrm.h>
-#include <wx/dir.h>
-#include <wx/filefn.h>
-#include <wx/sstream.h>
-#include <wx/msgdlg.h>
-#include <wx/log.h>
-#include <wx/file.h>
-#include <wx/wizard.h>
-#include <wx/event.h>
-#include <wx/statline.h>
-#include <wx/valgen.h>
-#include <wx/thread.h>
-#include <wx/regex.h>
-#include <wx/tokenzr.h>
-#include <wx/notebook.h>
-#include <wx/html/htmlwin.h>
-#include <wx/hyperlink.h>
-#include <wx/mstream.h>
-
-#ifdef __WXMSW__
-#define PATH_SEP "\\"
-#define PATH_SEP_CHR '\\'
-#define EXE_NAME wxT("rbutil.exe")
-#else
-#define PATH_SEP wxT("/")
-#define PATH_SEP_CHR '/'
-#define EXE_NAME wxT("rbutil")
-#endif
-
-#define UNINSTALL_FILE wxT(".rockbox" PATH_SEP ".rbutil_install_data")
-#define MAX_PLATFORMS 50
-#define SYSTEM_CONFIG rbutil.ini
-#define FILE_BUFFER_SIZE 1024
-
-//WX_DEFINE_OBJARRAY(bool, wxArrayBool);
-
-class GlobalVars
-{
-public:
- // Program configuration data (rbutil.ini and environment)
- wxFileConfig* GlobalConfig;
- wxFileConfig* UserConfig;
- wxString UserConfigFile;
- wxString GlobalConfigFile;
- wxString AppDir;
- wxString ResourceDir;
-
- wxString* ErrStr;
- wxStandardPaths* stdpaths;
- wxArrayString plat_id;
- wxArrayString plat_name;
- wxArrayInt plat_released;
- wxArrayInt plat_needsbootloader;
- wxArrayString plat_bootloadermethod;
- wxArrayString plat_bootloadername;
- wxArrayString plat_resolution;
- wxArrayString plat_manualname;
- wxString download_url;
- wxString daily_url;
- wxString bleeding_url;
- wxString server_conf_url;
- wxString font_url;
- wxString last_release;
- wxString prog_name;
- wxString bootloader_url;
- wxString themes_url;
- wxString manual_url;
- wxString doom_url;
- wxString proxy_url;
-
-
- // User configuration data.
- wxString curplat;
- // unsigned int curplatnum;
- wxString curdestdir;
- wxString curfirmware;
- unsigned int curbuild;
- bool curisfull;
- bool nocache;
- bool portable;
- wxString curresolution;
- wxArrayString themesToInstall;
- wxString pathToTts;
- wxString pathToEnc;
-
-
-
- // Global system variables
- wxFFile* logfile;
- wxLogStderr* logstderr;
- wxLogChain* logchain;
- wxLogGui* loggui;
-};
-
-extern GlobalVars* gv;
-
-
-wxString wxFindAppPath(const wxString& argv0, const wxString& cwd,
- const wxString& appVariableName);
-int DownloadURL(wxString src, wxString dest);
-int UnzipFile(wxString src, wxString destdir, bool isInstall = false);
-int Uninstall(const wxString dir, bool isFullUninstall = false);
-bool InstallRbutil(wxString dest);
-bool InstallTheme(wxString src);
-bool checkZip(wxString zipname);
-wxString stream_err_str(int errnum);
-bool rm_rf(wxString file);
-
-wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length);
-
-
-#define ERR_DIALOG(msg, title) \
- wxLogError(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str())
-
-#define WARN_DIALOG(msg, title) \
- wxLogWarning(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str())
-
-#define MESG_DIALOG(msg) \
- wxLogMessage(msg)
-
-#define INFO_DIALOG(msg) \
- wxLogInfo(msg)
-
-#define BUILD_RELEASE 0
-#define BUILD_DAILY 1
-#define BUILD_BLEEDING 2
-
-#define BOOTLOADER_ADD 0
-#define BOOTLOADER_REM 1
-
-
-#endif
diff --git a/rbutil/rbutil.ini b/rbutil/rbutil.ini
deleted file mode 100644
index 1ab45ecdcc..0000000000
--- a/rbutil/rbutil.ini
+++ /dev/null
@@ -1,299 +0,0 @@
-[general]
-download_url=http://www.rockbox.org/download/
-daily_url=http://download.rockbox.org/daily/
-bleeding_url=http://build.rockbox.org/dist/build-
-server_conf_url=http://www.rockbox.org/daily/build-info
-font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts-
-last_release=2.5
-prog_name=rockbox
-bootloader_url=http://download.rockbox.org/bootloader
-themes_url=http://www.rockbox-themes.org/
-manual_url=http://download.rockbox.org/manual
-doom_url=http://download.rockbox.org/useful/rockdoom.zip
-
-[platforms]
-platform1=player
-platform2=recorder
-platform3=recorder8mb
-platform4=recorderv2
-platform5=fmrecorder
-platform6=fmrecorder8mb
-platform7=ondiosp
-platform8=ondiofm
-platform9=h100
-platform10=h120
-platform11=h300
-platform12=h10_5gbums
-platform13=h10_5gbmtp
-platform14=h10
-platform15=ipod3g
-platform16=ipod4gray
-platform17=ipodcolor
-platform18=ipodvideo
-platform19=ipodmini1g
-platform20=ipodmini2g
-platform21=ipodnano
-platform22=iaudiox5
-platform23=iaudiom5
-platform24=iaudiox5v
-platform25=gigabeatf
-platform26=sansae200
-
-[player]
-name=Archos Jukebox Player 6000, Jukebox Studio 5/10/20
-platform=player
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=11x2x1
-manualname=
-
-[recorder]
-name=Archos Jukebox Recorder 10, 20
-platform=recorder
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=
-
-[recorder8mb]
-name=Archos Jukebox Recorder 10, 20 (with 8mb memory)
-platform=recorder8mb
-released=no
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=rockbox-recorder
-
-[recorderv2]
-name=Archos Jukebox Recorder v2 (20GB)
-platform=recorderv2
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=
-
-[fmrecorder]
-name=Archos Jukebox Recorder FM
-platform=fmrecorder
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=
-
-[fmrecorder8mb]
-name=Archos Jukebox Recorder FM (with 8mb memory)
-platform=fmrecorder8mb
-released=no
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=rockbox-fmrecorder
-
-[ondiosp]
-name=Archos Ondio SP
-platform=ondiosp
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=
-
-[ondiofm]
-name=Archos Ondio FM
-platform=ondiofm
-released=yes
-needsbootloader=no
-bootloadermethod=
-bootloadername=
-resolution=112x64x1
-manualname=
-
-[h100]
-name=Iriver iHP100, iHP110
-platform=h100
-released=no
-needsbootloader=yes
-bootloadermethod=fwpatcher
-bootloadername=bootloader-h100.bin
-resolution=160x128x2
-manualname=rockbox-h100
-
-[h120]
-name=Iriver iHP120, iHP140, H120, H140
-platform=h120
-released=no
-needsbootloader=yes
-bootloadermethod=fwpatcher
-bootloadername=bootloader-h120.bin
-resolution=160x128x2
-manualname=rockbox-h100
-
-[h300]
-name=Iriver H320, H340
-platform=h300
-released=no
-needsbootloader=yes
-bootloadermethod=fwpatcher
-bootloadername=bootloader-h300.bin
-resolution=220x176x16
-manualname=rockbox-h300
-
-[h10_5gbums]
-name=Iriver H10 (5/6GB) UMS
-platform=h10_5gb
-released=no
-needsbootloader=yes
-bootloadermethod=h10
-bootloadername=H10.mi4
-resolution=128x128x16
-manualname=
-
-[h10_5gbmtp]
-name=Iriver H10 (5/6GB) MTP
-platform=h10_5gb
-released=no
-needsbootloader=yes
-bootloadermethod=h10
-bootloadername=H10_5GB-MTP/H10.mi4
-resolution=128x128x16
-manualname=
-
-[h10]
-name=Iriver H10 (20GB)
-platform=h10
-released=no
-needsbootloader=yes
-bootloadermethod=h10
-bootloadername=H10_20GC.mi4
-resolution=160x128x16
-manualname=
-
-[ipodcolor]
-name=Apple Ipod Colour/Photo/U2 (4th gen)
-platform=ipodcolor
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipodcolor
-resolution=220x176x16
-manualname=
-
-[ipodnano]
-name=Apple Ipod Nano (1st gen)
-platform=ipodnano
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipodnano
-resolution=176x132x16
-manualname=
-
-[ipod4gray]
-name=Apple Ipod (4th gen, greyscale)
-platform=ipod4gray
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipod4g
-resolution=160x128x2
-manualname=
-
-[ipodvideo]
-name=Apple Ipod Video (5th gen)
-platform=ipodvideo
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipodvideo
-resolution=320x240x16
-manualname=
-
-[ipod3g]
-name=Apple Ipod (3rd gen)
-platform=ipod3g
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipod3g
-resolution=160x128x2
-manualname=
-
-[ipodmini1g]
-name=Apple Ipod Mini (1st gen)
-platform=ipodmini1g
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipodmini
-resolution=138x110x2
-manualname=rockbox-ipodmini2g
-
-[ipodmini2g]
-name=Apple Ipod Mini (2nd gen)
-platform=ipodmini2g
-released=no
-needsbootloader=yes
-bootloadermethod=ipodpatcher
-bootloadername=ipodmini2g
-resolution=138x110x2
-manualname=rockbox-ipodmini2g
-
-[iaudiox5]
-name=Cowon iAudio X5 , X5L
-platform=iaudiox5
-released=no
-needsbootloader=yes
-bootloadermethod=iaudio
-bootloadername=x5_fw.bin
-resolution=160x128x16
-manualname=
-
-[iaudiox5v]
-name=Cowon iAudio X5V
-platform=iaudiox5
-released=no
-needsbootloader=yes
-bootloadermethod=iaudio
-bootloadername=x5v_fw.bin
-resolution=160x128x2
-manualname=
-
-[iaudiom5]
-name=Cowon iAudio M5 , M5L
-platform=iaudiom5
-released=no
-needsbootloader=yes
-bootloadermethod=iaudio
-bootloadername=m5_fw.bin
-resolution=160x128x16
-manualname=
-
-[gigabeatf]
-name=Toshiba Gigabeat F , X
-platform=gigabeatf
-needsbootloader=yes
-bootloadermethod=gigabeatf
-bootloadername=FWIMG01.DAT
-resolution=240x320x16
-manualname=
-
-[sansae200]
-name=Sandisk Sansa E200
-platform=sansae200
-released=no
-needsbootloader=yes
-bootloadermethod=sansapatcher
-bootloadername=PP5022.mi4
-resolution=176x220x16
-manualname=
diff --git a/rbutil/rbutil.iss b/rbutil/rbutil.iss
deleted file mode 100644
index d945d85336..0000000000
--- a/rbutil/rbutil.iss
+++ /dev/null
@@ -1,55 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-#define MyAppName "Rockbox Utility"
-#define MyAppVerName "Rockbox Utility v0.2.1"
-#define MyAppPublisher "Rockbox Team"
-#define MyAppURL "http://www.rockbox.org/"
-#define MyAppExeName "rbutil.exe"
-#define MyAppUrlName "rbutil.url"
-
-[Setup]
-AppName={#MyAppName}
-AppVerName={#MyAppVerName}
-AppPublisher={#MyAppPublisher}
-AppPublisherURL={#MyAppURL}
-AppSupportURL={#MyAppURL}
-AppUpdatesURL={#MyAppURL}
-DefaultDirName={pf}\{#MyAppName}
-DefaultGroupName={#MyAppName}
-LicenseFile=copying.txt
-OutputBaseFilename=rbutil-0.2.1-setup
-Compression=lzma/ultra
-SolidCompression=true
-OutputDir=.
-AppCopyright= 2005-6 Rockbox Team
-AppID={{BDAF1E02-1CC9-48BB-AE03-95D87F65BF4A}
-
-[Languages]
-Name: english; MessagesFile: compiler:Default.isl
-
-[Tasks]
-Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
-Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
-
-[Files]
-Source: rbutil.exe; DestDir: {app}; Flags: ignoreversion
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-Source: rbutil.ini; DestDir: {app}; Flags: ignoreversion
-
-[INI]
-Filename: {app}\{#MyAppUrlName}; Section: InternetShortcut; Key: URL; String: {#MyAppURL}
-
-[Icons]
-Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
-Name: {group}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {app}\{#MyAppUrlName}
-Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
-Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
-Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon
-
-[Run]
-Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
-
-[UninstallDelete]
-Type: files; Name: {app}\{#MyAppUrlName}
-
diff --git a/rbutil/rbutil.r b/rbutil/rbutil.r
deleted file mode 100755
index e7c39a882c..0000000000
--- a/rbutil/rbutil.r
+++ /dev/null
@@ -1,2675 +0,0 @@
-data 'vers' (2) {
-$"0100 2000 0000 0531 2E30 6430 0531 2E30"
-$"6430"} ;
-
-data 'vers' (1) {
-$"0100 2000 0000 0531 2E30 6430 0531 2E30"
-$"6430"} ;
-
-data 'ICN#' (-16455, "Item Icon") {
- $"FFFF FFFF F700 001D BB00 002B D700 0057"
- $"ED00 009D BB00 0539 DD00 1261 F700 A4E1"
- $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB"
- $"8103 BD12 810E 4A65 8105 2492 8102 F926"
- $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021"
- $"8100 0027 8100 0021 8100 0021 8100 0021"
- $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1"
- $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
-};
-
-data 'icl4' (-16455, "Item Icon") {
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"F333 333F 0000 0000 0000 0000 0003 3E0F"
- $"F333 333F 0000 0000 0000 0000 00A4 3AEF"
- $"F333 333F 0000 0000 0000 0000 0DCA 3EEF"
- $"F333 333F 0000 0000 0000 0000 E1C5 FE0F"
- $"F333 333F 0000 0000 000C CDCB 1DEA E00F"
- $"F333 333F 0000 0000 0CCC 1CB1 C3FD 000F"
- $"F333 333F 0000 0000 D02C CB1D A9E0 000F"
- $"FFFF FFFF FFFF FFFC C2C3 BCD3 EDDF FFFF"
- $"F000 000F 0000 00CC 2DAB 02BF 2DDD 666F"
- $"F000 000F 0000 0C1D BBB1 BEAB BDCB D66F"
- $"F000 000F 0000 CCD4 E2CB BAEE B42C CD6F"
- $"F000 000F 0000 C2BA BD2E FF3B DCC2 DCDD"
- $"F000 000F 0000 D3BD D2CC 2DCD 02D0 DCEB"
- $"F000 000F 0000 0EAC CDB2 CCCC 20D2 CDDB"
- $"F000 000F 0000 CBBB 3AAE E2D2 CC2C C2DC"
- $"F000 000F 0000 BC2E DD4A EEAE EBBB BBCD"
- $"F000 000F 000C DEDD 00CD DAEA AAEF 35DC"
- $"F000 000F 000B D000 0000 CCD4 DEBE EADC"
- $"F000 000F 0000 0000 0000 0000 00F0 0BCD"
- $"F000 000F 0000 0000 0000 0000 00F0 0FEE"
- $"F000 000F 0000 0000 0000 0000 00F0 000F"
- $"F000 000F 0000 0000 0000 0000 00F0 000F"
- $"F000 000F 0000 0000 0000 0000 00F0 000F"
- $"F000 000F FFFF FFFF FFFF FFFF FFF0 000F"
- $"F000 000F 1111 1111 1111 F999 99F0 000F"
- $"F000 000F 1111 1111 1111 F898 99F0 000F"
- $"F000 000F 1111 1111 1111 F999 98F0 000F"
- $"F000 000F 1111 1111 1111 F989 99F0 000F"
- $"F000 000F 1111 1111 1111 F899 89F0 000F"
- $"F000 000F 1111 1111 1111 F989 98F0 000F"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
-};
-
-data 'icl8' (-16455, "Item Icon") {
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 00DB 22FC 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 DB21 6BDB FCFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 FB03 5581 FDFB 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0007 2C32 325E 0358 88DE FC00 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"002B 0832 0832 5803 3988 ADFB 0000 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"3208 3208 5658 0934 88AD FC00 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32"
- $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF"
- $"FF00 0000 0000 00FF 0000 0000 0000 3208"
- $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 002C 0833"
- $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 F608 395D"
- $"8858 0934 82E0 8888 5E39 332C 3281 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 F739 5E8E"
- $"820F 5788 FFFD 645E 3357 0E32 3332 81F9"
- $"FF00 0000 0000 00FF 0000 0000 3965 8833"
- $"3933 3332 3357 320E 2C0E 322C 0E2D 815D"
- $"FF00 0000 0000 00FF 0000 0000 F5FC 8808"
- $"325D 5D34 320E 082C 0E2C 3233 3232 FA58"
- $"FF00 0000 0000 00FF 0000 0000 2B58 3464"
- $"88DE 8988 885E 5D33 3232 3332 335E F954"
- $"FF00 0000 0000 00FF 0000 0000 5D33 5D82"
- $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654"
- $"FF00 0000 0000 00FF 0000 002C 8187 5756"
- $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8"
- $"FF00 0000 0000 00FF 0000 0081 562B 0000"
- $"0000 0000 F6F7 325D 815E FB88 88FC 5656"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 005D 57F8"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 00FD AB88"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
-};
-
-data 'icm#' (-16455, "Item Icon") {
- $"F24B D007 B028 5557 81B1 124A 8236 1005"
- $"8000 1ABD 8030 557D FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
-};
-
-data 'icm4' (-16455, "Item Icon") {
- $"A33F CDCC DCCD CAAE A333 0000 0000 CDEE"
- $"333A 0000 CCCB 2E0D EDCE CDCD DB2B DB6F"
- $"D00D 00C2 BBEA BCD5 D00D 00BD 2D2D CC2D"
- $"D00D 0CDC CCDB BADC D00D 0000 0000 0DCE"
- $"D00D 0000 0000 0D0D D00D B1BB 1BF9 FD0D"
- $"D00D 1111 1199 8D0D ECDB BB1B B1F9 FECE"
-};
-
-data 'icm8' (-16455, "Item Icon") {
- $"DDDA DADD F8F8 F8F8 F8F8 F8F8 F864 8EAC"
- $"DB23 23DC 0000 0000 0000 0000 F85C 89FB"
- $"DC23 23DB 0000 0000 F608 3234 5E82 2AFA"
- $"FBF8 F8FB F8F8 5633 335D 3488 575D EFF1"
- $"F900 00FA 0000 2C63 5E34 FD64 5D2C 33AA"
- $"FA00 00F9 0000 395E 5D5D 5733 0832 33F9"
- $"F900 00FA 00F6 F92C 2B32 5D88 8888 88F8"
- $"FA00 00F9 0000 0000 0000 0000 00FA F781"
- $"F900 00FA 0000 0000 0000 0000 00F9 00F9"
- $"FA00 00F9 3559 5335 5959 E9E7 E7FA 00FA"
- $"F900 00FA 0505 0505 0505 E8E6 E6F9 00F9"
- $"FBF8 F8FB 592F 5959 2F59 E9E7 E7FB F8FB"
-};
-
-data 'icns' (-16455, "Item Icon") {
- $"6963 6E73 0000 9AB8 4943 4E23 0000 0108"
- $"FFFF FFFF F700 001D BB00 002B D700 0057"
- $"ED00 009D BB00 0539 DD00 1261 F700 A4E1"
- $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB"
- $"8103 BD12 810E 4A65 8105 2492 8102 F926"
- $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021"
- $"8100 0027 8100 0021 8100 0021 8100 0021"
- $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1"
- $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"6963 6C34 0000 0208 FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF F333 333F 0000 0000"
- $"0000 0000 0003 3E0F F333 333F 0000 0000"
- $"0000 0000 00A4 3AEF F333 333F 0000 0000"
- $"0000 0000 0DCA 3EEF F333 333F 0000 0000"
- $"0000 0000 E1C5 FE0F F333 333F 0000 0000"
- $"000C CDCB 1DEA E00F F333 333F 0000 0000"
- $"0CCC 1CB1 C3FD 000F F333 333F 0000 0000"
- $"D02C CB1D A9E0 000F FFFF FFFF FFFF FFFC"
- $"C2C3 BCD3 EDDF FFFF F000 000F 0000 00CC"
- $"2DAB 02BF 2DDD 666F F000 000F 0000 0C1D"
- $"BBB1 BEAB BDCB D66F F000 000F 0000 CCD4"
- $"E2CB BAEE B42C CD6F F000 000F 0000 C2BA"
- $"BD2E FF3B DCC2 DCDD F000 000F 0000 D3BD"
- $"D2CC 2DCD 02D0 DCEB F000 000F 0000 0EAC"
- $"CDB2 CCCC 20D2 CDDB F000 000F 0000 CBBB"
- $"3AAE E2D2 CC2C C2DC F000 000F 0000 BC2E"
- $"DD4A EEAE EBBB BBCD F000 000F 000C DEDD"
- $"00CD DAEA AAEF 35DC F000 000F 000B D000"
- $"0000 CCD4 DEBE EADC F000 000F 0000 0000"
- $"0000 0000 00F0 0BCD F000 000F 0000 0000"
- $"0000 0000 00F0 0FEE F000 000F 0000 0000"
- $"0000 0000 00F0 000F F000 000F 0000 0000"
- $"0000 0000 00F0 000F F000 000F 0000 0000"
- $"0000 0000 00F0 000F F000 000F FFFF FFFF"
- $"FFFF FFFF FFF0 000F F000 000F 1111 1111"
- $"1111 F999 99F0 000F F000 000F 1111 1111"
- $"1111 F898 99F0 000F F000 000F 1111 1111"
- $"1111 F999 98F0 000F F000 000F 1111 1111"
- $"1111 F989 99F0 000F F000 000F 1111 1111"
- $"1111 F899 89F0 000F F000 000F 1111 1111"
- $"1111 F989 98F0 000F FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF 6963 6C38 0000 0408"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 00DB 22FC 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 DB21 6BDB FCFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 FB03 5581 FDFB 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"0000 0007 2C32 325E 0358 88DE FC00 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"002B 0832 0832 5803 3988 ADFB 0000 00FF"
- $"FF23 2323 2323 23FF 0000 0000 0000 0000"
- $"3208 3208 5658 0934 88AD FC00 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32"
- $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF"
- $"FF00 0000 0000 00FF 0000 0000 0000 3208"
- $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 002C 0833"
- $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 F608 395D"
- $"8858 0934 82E0 8888 5E39 332C 3281 D2FF"
- $"FF00 0000 0000 00FF 0000 0000 F739 5E8E"
- $"820F 5788 FFFD 645E 3357 0E32 3332 81F9"
- $"FF00 0000 0000 00FF 0000 0000 3965 8833"
- $"3933 3332 3357 320E 2C0E 322C 0E2D 815D"
- $"FF00 0000 0000 00FF 0000 0000 F5FC 8808"
- $"325D 5D34 320E 082C 0E2C 3233 3232 FA58"
- $"FF00 0000 0000 00FF 0000 0000 2B58 3464"
- $"88DE 8988 885E 5D33 3232 3332 335E F954"
- $"FF00 0000 0000 00FF 0000 0000 5D33 5D82"
- $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654"
- $"FF00 0000 0000 00FF 0000 002C 8187 5756"
- $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8"
- $"FF00 0000 0000 00FF 0000 0081 562B 0000"
- $"0000 0000 F6F7 325D 815E FB88 88FC 5656"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 005D 57F8"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 00FD AB88"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 FF00 0000 00FF"
- $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF"
- $"FF00 0000 0000 00FF 0505 0505 0505 0505"
- $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"696C 3332 0000 0670 9E00 83FF 0000 90FF"
- $"058E EA44 FF00 0083 FF00 008F FF06 8FEA"
- $"AB8E 4400 0083 FF00 008E FF07 5ABE AB8E"
- $"4544 0000 83FF 0000 8DFF 0864 FE91 6945"
- $"44FF 0000 83FF 0000 88FF 0DE2 E1CB B8A1"
- $"FEB1 6245 44FF FF00 0083 FF00 0086 FF0A"
- $"E2E6 E9EF B89F FEC1 6245 4480 FF01 0000"
- $"83FF 0000 85FF 0AD9 E4E9 EBB8 9FFE C362"
- $"4544 81FF 8D00 0BD7 E3DE BA8F A2FE C662"
- $"45D0 6183 0083 FF00 0083 FF0D DAE5 D4B3"
- $"679A FEC8 6245 A5C9 D361 8200 83FF 0000"
- $"82FF 0FDC E2D4 A469 9EF2 C962 4579 9BC2"
- $"D2D0 6181 0083 FF00 0081 FF11 E8DD D2B3"
- $"6AA0 F3C7 5C1B 5D89 9CB5 CDD5 D361 8000"
- $"83FF 0000 81FF 14DF C29C 657A DEB3 6A0D"
- $"2082 ADBD C3D1 D5D7 D069 8800 83FF 0000"
- $"81FF 14AE 8170 B9C5 C1CE C7B2 AFDA E7EA"
- $"E1D9 D8D9 D469 8600 83FF 0000 81FF 14EE"
- $"5C75 EBD4 9FB3 C4DE E7EC EBE3 E4DD D6CE"
- $"C672 9C00 83FF 0000 81FF 14C6 A2C7 886F"
- $"4D61 6F7F 9094 C1DB CCC1 C0B7 AB82 A200"
- $"83FF 0000 81FF 1499 BFAE 5C8A 856D 504E"
- $"5A5B 556C 8F8B 8C95 888F A400 83FF 0000"
- $"80FF 15CA 667C 8C9F FFFF DCB5 8251 4A43"
- $"3F4B 535E 6860 8FA6 0083 FF00 0080 FF02"
- $"669F C283 FF0C DCC3 A88D 847B 686D 5A5E"
- $"8FAF 0083 FF00 008F FF06 00FF FF81 8FB5"
- $"0083 FF00 008F FF06 00FF FF22 4444 0083"
- $"FF00 008F FF00 0081 FF01 0000 83FF 0000"
- $"8FFF 0000 81FF 0100 0083 FF00 008F FF00"
- $"0081 FF01 0000 83FF 9100 81FF 0100 0083"
- $"FF00 0089 FF84 0081 FF01 0000 83FF 0000"
- $"89FF 8400 81FF 0100 0083 FF00 0089 FF84"
- $"0081 FF01 0000 83FF 0000 89FF 8400 81FF"
- $"0100 0083 FF00 0089 FF84 0081 FF01 0000"
- $"83FF 0000 89FF 8400 81FF 9E00 A500 90FF"
- $"0301 0044 FF86 008F FF04 0900 0001 4486"
- $"008E FF05 67BC 0001 1944 8600 8DFF 0666"
- $"E49D 7119 44FF 8600 88FF 0BC9 BEA7 9B82"
- $"E489 4419 44FF FF86 0086 FF0A CFB6 B9BB"
- $"9B79 E493 4419 4480 FF86 0085 FF0A B2AC"
- $"B6B5 9B7D E497 4419 4481 FF8D 000B AFAF"
- $"A06E 5180 E49A 4419 9B62 8300 83FF 0000"
- $"83FF 0DB2 B397 682E 76E4 9D44 1963 96A1"
- $"6282 0083 FF00 0082 FF0F BEB0 9953 307E"
- $"CF9C 4619 3459 8BA6 9C62 8100 83FF 0000"
- $"81FF 11E0 B191 672E 7ED0 9A44 0E2A 3C55"
- $"7BA0 A8A2 6280 0083 FF00 0081 FF14 C576"
- $"4B2D 51B5 864F 040E 3461 818A 9FA8 A7A1"
- $"687C 0083 FF00 0081 FF14 722D 3A7D 8683"
- $"9998 8C85 A0B3 B9AE A9AA AAA5 687E 0083"
- $"FF00 0081 FF14 E844 38B3 A962 6F7D 9DB2"
- $"BEBC B5B7 AFA5 9B95 7392 0083 FF00 0081"
- $"FF14 C283 9A44 3D1E 2934 4455 5C8E AC9A"
- $"8B89 7D75 829A 0083 FF00 0081 FF14 6E8B"
- $"8044 746B 4522 222F 302E 425C 5558 6055"
- $"8E9E 0083 FF00 0080 FF15 B466 5A81 9FFF"
- $"FFD6 9F5B 231B 1310 202B 333C 378E A000"
- $"83FF 0000 80FF 0266 9FC2 83FF 0CD6 B692"
- $"6F66 5B47 4931 3B8E A600 83FF 0000 8FFF"
- $"0600 FFFF 728E AB00 83FF 0000 8FFF 0600"
- $"FFFF 2244 4400 83FF 0000 8FFF 0000 81FF"
- $"0100 0083 FF00 008F FF00 0081 FF01 0000"
- $"83FF 0000 8FFF 0000 81FF 0100 0083 FF91"
- $"0081 FF01 0000 83FF 0000 89FF 0000 827B"
- $"0000 81FF 0100 0083 FF00 0089 FF00 0082"
- $"7B00 0081 FF01 0000 83FF 0000 89FF 0000"
- $"827B 0000 81FF 0100 0083 FF00 0089 FF00"
- $"0082 7B00 0081 FF01 0000 83FF 0000 89FF"
- $"0000 827B 0000 81FF 0100 0083 FF00 0089"
- $"FF00 0082 7B00 0081 FF9E 00A5 0090 FF03"
- $"0F43 44FF 8600 8FFF 0417 4316 0F44 8600"
- $"8EFF 0565 C416 0F1A 4486 008D FF06 5567"
- $"A76C 1A44 FF86 0088 FF0B BCA9 9293 3E67"
- $"4D23 1A44 FFFF 8600 86FF 0AC6 9A98 9893"
- $"3167 4A23 1A44 80FF 8600 85FF 0A9C 8E99"
- $"9593 3767 4F23 1A44 81FF 8D00 0B92 8F86"
- $"5747 3967 5223 1A7A 6183 0083 FF00 0083"
- $"FF0D 9591 7C51 2A32 6753 231A 4B78 8361"
- $"80FF 0100 0083 FF00 0082 FF13 A98B 7D41"
- $"2C37 6353 241A 2C44 6D8A 8061 FFFF 0000"
- $"83FF 0000 81FF 14DA 9278 5427 3761 5122"
- $"1124 323F 6084 8D86 61FF 0000 83FF 0000"
- $"81FF 14B7 5B3C 2730 5956 2A0A 0C2C 4F65"
- $"6C85 8D89 8869 8800 83FF 0000 81FF 1461"
- $"202F 6A76 7683 8378 748C 9A9D 918E 8E8C"
- $"8869 5500 83FF 0000 81FF 14E7 2230 9694"
- $"5354 5F80 95A2 9E9A 9D94 8881 7A73 4400"
- $"83FF 0000 81FF 14C6 4651 3538 191F 2A36"
- $"444A 7591 8173 7268 6081 FF00 83FF 0000"
- $"81FF 0859 6A49 2277 683C 1A1D 8028 0838"
- $"4D47 484F 478E FF00 83FF 0000 80FF 15A8"
- $"654A 7F9F FFFF D39A 551C 140E 0B1B 262B"
- $"3330 8E9A 0083 FF00 0080 FF02 659F C283"
- $"FF0C D3B2 8E69 5F56 4243 2B35 8E9F 0083"
- $"FF00 008F FF06 00FF FF6B 8EA7 0083 FF00"
- $"008F FF06 00FF FF22 4444 0083 FF00 008F"
- $"FF00 0081 FF01 0000 83FF 0000 8FFF 0000"
- $"81FF 0100 0083 FF00 008F FF00 0081 FF01"
- $"0000 83FF 9100 81FF 0100 0083 FF91 0081"
- $"FF01 0000 83FF 9100 81FF 0100 0083 FF91"
- $"0081 FF01 0000 83FF 9100 81FF 0100 0083"
- $"FF91 0081 FF01 0000 83FF 9100 81FF 9E00"
- $"6C38 6D6B 0000 0408 FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF 6963 6823 0000 0248"
- $"FFFF FFFF FFFF FFFF FFFF FFFF F770 0000"
- $"0001 EEB0 0000 0001 F5D0 0000 0001 EF70"
- $"0000 0001 DBB0 0000 0001 F570 0000 0001"
- $"FED0 0000 0001 D5B0 0000 0001 EF70 0000"
- $"0001 FAD0 0000 0001 FFFF FFFF FFFF FFFF"
- $"FFFF FFFF C010 0000 01FF C010 0000 01FF"
- $"C010 0000 01EF C010 0000 01FF C010 0000"
- $"01FB C010 0000 01DF C010 0000 01FF C010"
- $"0000 01FF C010 0000 01FF C010 0000 0181"
- $"C010 0000 0181 C010 0000 0181 C010 0000"
- $"0181 C010 0000 0181 C010 0000 0181 C010"
- $"0000 0181 C010 0000 0181 C010 0000 0181"
- $"C010 0000 0181 C010 0000 0181 C010 0000"
- $"0181 C010 0000 0181 C01F FFFF FF81 C01F"
- $"FFFF FF81 C010 0003 FF81 C011 1113 D581"
- $"C010 4443 6F81 C012 000B BB81 C010 8883"
- $"DD81 C014 2203 6B81 C011 004B BD81 C010"
- $"1103 F781 C014 0423 5B81 FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"6963 6834 0000 0488 FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FF33 3333 333F 0000"
- $"0000 0000 0000 0000 0000 0000 0000 000F"
- $"FF33 3333 333F 0000 0000 0000 0000 0000"
- $"0000 0000 0000 000F FF33 3333 333F 0000"
- $"0000 0000 0000 0000 0000 0000 0000 000F"
- $"FF33 3333 333F 0000 0000 0000 0000 0000"
- $"0000 0000 0000 000F FF33 3333 333F 0000"
- $"0000 0000 0000 0000 0000 0000 0000 000F"
- $"FF33 3333 333F 0000 0000 0000 0000 0000"
- $"0000 0000 0000 000F FF33 3333 333F 0000"
- $"0000 0000 0000 0000 0000 0000 0000 000F"
- $"FF33 3333 333F 0000 0000 0000 0000 0000"
- $"0000 0000 0000 000F FF33 3333 333F 0000"
- $"0000 0000 0000 0000 0000 0000 0000 000F"
- $"FF33 3333 333F 0000 0000 0000 0000 0000"
- $"0000 0000 0000 000F FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F666 666F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F666 666F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F666 666F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F666 666F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F666 666F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F666 666F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F666 666F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F FFFF FFFF FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F FFFF FFFF"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F 0000"
- $"0000 0000 0000 0000 0000 000F F000 000F"
- $"FF00 0000 000F 0000 0000 0000 0000 0000"
- $"0000 000F F000 000F FF00 0000 000F FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF F000 000F"
- $"FF00 0000 000F FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF F000 000F FF00 0000 000F 1111"
- $"1111 1111 1111 11FF 9999 999F F000 000F"
- $"FF00 0000 000F 1111 1111 1111 1111 11FF"
- $"9989 898F F000 000F FF00 0000 000F 1111"
- $"1111 1111 1111 11FF 8998 999F F000 000F"
- $"FF00 0000 000F 1111 1111 1111 1111 11FF"
- $"9899 989F F000 000F FF00 0000 000F 1111"
- $"1111 1111 1111 11FF 9989 998F F000 000F"
- $"FF00 0000 000F 1111 1111 1111 1111 11FF"
- $"8999 899F F000 000F FF00 0000 000F 1111"
- $"1111 1111 1111 11FF 9899 989F F000 000F"
- $"FF00 0000 000F 1111 1111 1111 1111 11FF"
- $"9999 899F F000 000F FF00 0000 000F 1111"
- $"1111 1111 1111 11FF 8989 989F F000 000F"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF 6963 6838 0000 0908"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF 2323 2323 2323 2323 23FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0000 0000"
- $"0000 0000 0000 0000 0000 0000 0000 0000"
- $"0000 0000 0000 00FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E6 E5E6 E5E6 E5FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E5E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E6 E6E5 E6E5 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E5 E6E6 E6E6 E5FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E6 E6E6 E5E6 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E5E6 E6E6 E6E5 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E6 E6E5 E6E6 E6FF FF00 0000 0000 00FF"
- $"FFFF 0000 0000 0000 0000 00FF 0505 0505"
- $"0505 0505 0505 0505 0505 0505 0505 FFFF"
- $"E6E5 E6E6 E5E6 E6FF FF00 0000 0000 00FF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"6968 3332 0000 052A DF00 86FF 0000 A0FF"
- $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF"
- $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF"
- $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF"
- $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF"
- $"8000 86FF 0000 A0FF E000 86FF 0000 98FF"
- $"8800 86FF 0000 98FF 8800 86FF 0000 98FF"
- $"8800 86FF 0000 98FF 8800 86FF 0000 98FF"
- $"8800 86FF 0000 98FF 8800 86FF 0000 98FF"
- $"8800 86FF 0000 98FF 8800 86FF 0000 98FF"
- $"8800 86FF 0000 98FF 0100 0083 FF80 0086"
- $"FF00 0098 FF01 0000 83FF 8000 86FF 0000"
- $"98FF 0100 0083 FF80 0086 FF00 0098 FF01"
- $"0000 83FF 8000 86FF 0000 98FF 0100 0083"
- $"FF80 0086 FF00 0098 FF01 0000 83FF 8000"
- $"86FF 0000 98FF 0100 0083 FF80 0086 FF00"
- $"0098 FF01 0000 83FF 8000 86FF 0000 98FF"
- $"0100 0083 FF80 0086 FF00 0098 FF01 0000"
- $"83FF 8000 86FF 0000 98FF 0100 0083 FF80"
- $"0086 FF00 0098 FF01 0000 83FF 8000 86FF"
- $"0000 98FF 0100 0083 FF80 0086 FF9B 0083"
- $"FF80 0086 FF9B 0083 FF80 0086 FF00 008F"
- $"FF88 0083 FF80 0086 FF00 008F FF88 0083"
- $"FF80 0086 FF00 008F FF88 0083 FF80 0086"
- $"FF00 008F FF88 0083 FF80 0086 FF00 008F"
- $"FF88 0083 FF80 0086 FF00 008F FF88 0083"
- $"FF80 0086 FF00 008F FF88 0083 FF80 0086"
- $"FF00 008F FF88 0083 FF80 0086 FF00 008F"
- $"FF88 0083 FFAE 00E9 00A0 FF8A 00A0 FF8A"
- $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FF8A"
- $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FFE0"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF88"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF88"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF88"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF88"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF01"
- $"0000 83FF 8000 86FF 0000 98FF 0100 0083"
- $"FF80 0086 FF00 0098 FF01 0000 83FF 8000"
- $"86FF 0000 98FF 0100 0083 FF80 0086 FF00"
- $"0098 FF01 0000 83FF 8000 86FF 0000 98FF"
- $"0100 0083 FF80 0086 FF00 0098 FF01 0000"
- $"83FF 8000 86FF 0000 98FF 0100 0083 FF80"
- $"0086 FF00 0098 FF01 0000 83FF 8000 86FF"
- $"0000 98FF 0100 0083 FF80 0086 FF00 0098"
- $"FF01 0000 83FF 8000 86FF 0000 98FF 0100"
- $"0083 FF80 0086 FF00 0098 FF01 0000 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 0000 8FFF 0100 0084 7B01 0000"
- $"83FF 8000 86FF 0000 8FFF 0100 0084 7B01"
- $"0000 83FF 8000 86FF 0000 8FFF 0100 0084"
- $"7B01 0000 83FF 8000 86FF 0000 8FFF 0100"
- $"0084 7B01 0000 83FF 8000 86FF 0000 8FFF"
- $"0100 0084 7B01 0000 83FF 8000 86FF 0000"
- $"8FFF 0100 0084 7B01 0000 83FF 8000 86FF"
- $"0000 8FFF 0100 0084 7B01 0000 83FF 8000"
- $"86FF 0000 8FFF 0100 0084 7B01 0000 83FF"
- $"8000 86FF 0000 8FFF 0100 0084 7B01 0000"
- $"83FF AE00 E900 A0FF 8A00 A0FF 8A00 A0FF"
- $"8A00 A0FF 8A00 A0FF 8A00 A0FF 8A00 A0FF"
- $"8A00 A0FF 8A00 A0FF 8A00 A0FF E000 86FF"
- $"0000 98FF 0100 0083 FF80 0086 FF00 0098"
- $"FF01 0000 83FF 8000 86FF 0000 98FF 0100"
- $"0083 FF80 0086 FF00 0098 FF01 0000 83FF"
- $"8000 86FF 0000 98FF 0100 0083 FF80 0086"
- $"FF00 0098 FF01 0000 83FF 8000 86FF 0000"
- $"98FF 0100 0083 FF80 0086 FF00 0098 FF88"
- $"0086 FF00 0098 FF88 0086 FF00 0098 FF01"
- $"0000 83FF 8000 86FF 0000 98FF 0100 0083"
- $"FF80 0086 FF00 0098 FF01 0000 83FF 8000"
- $"86FF 0000 98FF 0100 0083 FF80 0086 FF00"
- $"0098 FF01 0000 83FF 8000 86FF 0000 98FF"
- $"0100 0083 FF80 0086 FF00 0098 FF01 0000"
- $"83FF 8000 86FF 0000 98FF 0100 0083 FF80"
- $"0086 FF00 0098 FF01 0000 83FF 8000 86FF"
- $"0000 98FF 0100 0083 FF80 0086 FF00 0098"
- $"FF01 0000 83FF 8000 86FF 0000 98FF 0100"
- $"0083 FF80 0086 FF00 0098 FF01 0000 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF"
- $"8000 86FF 9B00 83FF AE00 6838 6D6B 0000"
- $"0908 FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF 6963 7323 0000 0048 F557 D001 700E"
- $"E024 9A9B 0175 9299 0162 923E 0001 9004"
- $"0000 9BBC 102C 8434 5AFD FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF 6963 7334 0000"
- $"0088 AA3F DDDD DDDD DDAE A333 0000 0000"
- $"0C3E 333A 0000 000C DBEC A333 0000 0CBC"
- $"2A00 EDDF DDDB D2CB ECFF D00D 00CD BBBA"
- $"B2D6 D00D 00B2 DDBB DCCB D00D 00D4 D2D2"
- $"CC2D D00D 00BD CCE5 3EEC D00D 0C00 0000"
- $"CBCB D00D 0000 0000 0D0D D00D 0000 0000"
- $"0D00 D00D ABAB ABAF 9F00 D00D 1111 11B8"
- $"9900 D00D 1111 1189 9F00 EDDA 8291 ABAF"
- $"9FDD 6963 7338 0000 0108 DEDC DBB3 F9FA"
- $"F9FA F9FA F9FA F9FA 8FFB DC23 23DB 0000"
- $"0000 0000 0000 0032 6A88 DB23 23DC 0000"
- $"0000 0000 F52B 3357 882B DC23 23DB 0000"
- $"0000 F608 3234 33AD F600 FCFA F9AC F9FA"
- $"F95D 0E5D 3457 8833 F1F2 FA00 00F9 0000"
- $"0733 825E 33AD 6432 33EF F900 00FA 0000"
- $"5D5E 5D33 825D 3332 2C57 FA00 00F9 0000"
- $"5739 5D64 5D33 3232 335C F900 00FA 00F5"
- $"5D57 F732 828E 8988 88F9 FA00 00F9 00F6"
- $"F600 0000 F5F6 4F5D F85D F900 00FA 0000"
- $"0000 0000 0000 00FA 0056 FA00 00FA 0000"
- $"0000 0000 0000 00F9 0000 F900 00F9 8359"
- $"8359 8359 ADD1 E8EA 0000 FA00 00FA 0505"
- $"0505 0505 5FE5 E6E8 0000 F900 00F9 0505"
- $"0505 0505 7DE6 E6D1 0000 ACF9 FAFC 8359"
- $"8359 8359 ADD1 E8E9 FAF9 6973 3332 0000"
- $"026C 0340 8080 4087 8005 5E51 80FF FF80"
- $"86FF 06AA B457 80FF FF80 83FF 09F1 E1C1"
- $"A94E D180 FFFF 8081 FF0B ECE6 DFBE BA4D"
- $"D1FF 4080 8040 8080 4FA6 DCAD B3BC 65B4"
- $"1900 80FF FF80 FFFF E9CF 87A7 B848 8FC6"
- $"B719 80FF FF80 FFFF B58B A0C9 7D8B CFD4"
- $"D89E 80FF FF80 FFFF ADAC A280 A5BE DBD4"
- $"C79A 80FF FF80 FFF2 8F8E C5B4 7655 516E"
- $"7A82 80FF FF80 FFD9 D880 FF09 F7DB C479"
- $"B280 80FF FF80 86FF 0680 FF9A 80FF FF80"
- $"86FF 0580 FFFF 80FF FF84 8000 4080 0005"
- $"FFFF 80FF FF80 83FF 0080 8000 05FF FF80"
- $"FFFF 8083 FF00 8080 0005 FFFF 4080 8040"
- $"8380 0040 8000 0180 8081 0087 8001 0151"
- $"8100 86FF 028B 0129 8100 83FF 05E2 D0B3"
- $"943A D181 0081 FF0B D9BA B19E 952F D1FF"
- $"4080 8040 8080 4F85 A369 8B98 378E 1900"
- $"80FF FF80 FFFF D491 417F 9326 4893 9219"
- $"80FF FF80 FFFF 774C 6C96 5E5A 94A0 A986"
- $"80FF FF80 FFFF 9D73 7346 6589 ABA3 9280"
- $"80FF FF80 FFED 6F7A BAA2 5028 253F 4A6A"
- $"80FF FF80 FFD9 D880 FF09 F5D2 B569 9E73"
- $"80FF FF80 86FF 0680 FF9A 80FF FF80 86FF"
- $"0580 FFFF 80FF FF84 8009 403E 3E1F FFFF"
- $"80FF FF80 83FF 0980 7B7B 3EFF FF80 FFFF"
- $"8083 FF09 807B 7B3E FFFF 4080 8040 8380"
- $"0540 3E3E 1F80 8081 0087 8001 1551 8100"
- $"86FF 0290 202D 8100 83FF 05D9 C97F 6039"
- $"D181 0081 FF0B CEA2 9759 4927 D1FF 4080"
- $"8040 8080 4F6F 8657 474C 2976 5980 80FF"
- $"FF80 FFFF C676 343F 4B1D 3977 7ED8 80FF"
- $"FF80 FFFF 6540 536B 4C4E 7B85 8D79 80FF"
- $"FF80 FFFF 8654 6638 5072 908A 7974 80FF"
- $"FF80 FFEA 5D63 BB9E 4A20 1F36 3E65 80FF"
- $"FF80 FFD9 D880 FF09 F4D0 B266 9B6F 80FF"
- $"FF80 86FF 0680 FF9A 80FF FF80 86FF 0680"
- $"FFFF 80FF FF80 8700 05FF FF80 FFFF 8087"
- $"0005 FFFF 80FF FF80 8700 05FF FF40 8080"
- $"4087 0001 8080 7338 6D6B 0000 0108 FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF 6963"
- $"6D23 0000 0038 F24B D007 B028 5557 81B1"
- $"124A 8236 1005 8000 1ABD 8030 557D FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF 6963 6D34 0000 0068 A33F"
- $"CDCC DCCD CAAE A333 0000 0000 CDEE 333A"
- $"0000 CCCB 2E0D EDCE CDCD DB2B DB6F D00D"
- $"00C2 BBEA BCD5 D00D 00BD 2D2D CC2D D00D"
- $"0CDC CCDB BADC D00D 0000 0000 0DCE D00D"
- $"0000 0000 0D0D D00D B1BB 1BF9 FD0D D00D"
- $"1111 1199 8D0D ECDB BB1B B1F9 FECE 6963"
- $"6D38 0000 00C8 DDDA DADD F8F8 F8F8 F8F8"
- $"F8F8 F864 8EAC DB23 23DC 0000 0000 0000"
- $"0000 F85C 89FB DC23 23DB 0000 0000 F608"
- $"3234 5E82 2AFA FBF8 F8FB F8F8 5633 335D"
- $"3488 575D EFF1 F900 00FA 0000 2C63 5E34"
- $"FD64 5D2C 33AA FA00 00F9 0000 395E 5D5D"
- $"5733 0832 33F9 F900 00FA 00F6 F92C 2B32"
- $"5D88 8888 88F8 FA00 00F9 0000 0000 0000"
- $"0000 00FA F781 F900 00FA 0000 0000 0000"
- $"0000 00F9 00F9 FA00 00F9 3559 5335 5959"
- $"E9E7 E7FA 00FA F900 00FA 0505 0505 0505"
- $"E8E6 E6F9 00F9 FBF8 F8FB 592F 5959 2F59"
- $"E9E7 E7FB F8FB 6974 3332 0000 245A 0000"
- $"0000 FF00 FF00 FF00 FB00 95FF 8100 C9FF"
- $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF"
- $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF"
- $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF"
- $"818E 81EA 8144 81FF 8500 95FF 8100 C5FF"
- $"818F 81EA 81AB 818E 8144 8500 95FF 8100"
- $"C5FF 818F 81EA 81AB 818E 8144 8500 95FF"
- $"8100 C5FF 818F 81EA 81AB 818E 8144 8500"
- $"95FF 8100 C5FF 818F 81EA 81AB 818E 8144"
- $"8500 95FF 8100 C1FF 815A 81BE 81AB 818E"
- $"8145 8144 8500 95FF 8100 C1FF 815A 81BE"
- $"81AB 818E 8145 8144 8500 95FF 8100 C1FF"
- $"815A 81BE 81AB 818E 8145 8144 8500 95FF"
- $"8100 C1FF 815A 81BE 81AB 818E 8145 8144"
- $"8500 95FF 8100 BDFF 8164 81FE 8191 8169"
- $"8145 8144 81FF 8500 95FF 8100 BDFF 8164"
- $"81FE 8191 8169 8145 8144 81FF 8500 95FF"
- $"8100 BDFF 8164 81FE 8191 8169 8145 8144"
- $"81FF 8500 95FF 8100 BDFF 8164 81FE 8191"
- $"8169 8145 8144 81FF 8500 95FF 8100 A9FF"
- $"81E2 81E1 81CB 81B8 81A1 81FE 81B1 8162"
- $"8145 8144 85FF 8500 95FF 8100 A9FF 81E2"
- $"81E1 81CB 81B8 81A1 81FE 81B1 8162 8145"
- $"8144 85FF 8500 95FF 8100 A9FF 81E2 81E1"
- $"81CB 81B8 81A1 81FE 81B1 8162 8145 8144"
- $"85FF 8500 95FF 8100 A9FF 81E2 81E1 81CB"
- $"81B8 81A1 81FE 81B1 8162 8145 8144 85FF"
- $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF"
- $"81B8 819F 81FE 81C1 8162 8145 8144 89FF"
- $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF"
- $"81B8 819F 81FE 81C1 8162 8145 8144 89FF"
- $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF"
- $"81B8 819F 81FE 81C1 8162 8145 8144 89FF"
- $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF"
- $"81B8 819F 81FE 81C1 8162 8145 8144 89FF"
- $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB"
- $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF"
- $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB"
- $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF"
- $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB"
- $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF"
- $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB"
- $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF"
- $"BD00 81D7 81E3 81DE 81BA 818F 81A2 81FE"
- $"81C6 8162 8145 81D0 8161 CD00 81D7 81E3"
- $"81DE 81BA 818F 81A2 81FE 81C6 8162 8145"
- $"81D0 8161 CD00 81D7 81E3 81DE 81BA 818F"
- $"81A2 81FE 81C6 8162 8145 81D0 8161 CD00"
- $"81D7 81E3 81DE 81BA 818F 81A2 81FE 81C6"
- $"8162 8145 81D0 8161 9500 95FF 8100 95FF"
- $"81DA 81E5 81D4 81B3 8167 819A 81FE 81C8"
- $"8162 8145 81A5 81C9 81D3 8161 9100 95FF"
- $"8100 95FF 81DA 81E5 81D4 81B3 8167 819A"
- $"81FE 81C8 8162 8145 81A5 81C9 81D3 8161"
- $"9100 95FF 8100 95FF 81DA 81E5 81D4 81B3"
- $"8167 819A 81FE 81C8 8162 8145 81A5 81C9"
- $"81D3 8161 9100 95FF 8100 95FF 81DA 81E5"
- $"81D4 81B3 8167 819A 81FE 81C8 8162 8145"
- $"81A5 81C9 81D3 8161 9100 95FF 8100 91FF"
- $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9"
- $"8162 8145 8179 819B 81C2 81D2 81D0 8161"
- $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4"
- $"8169 819E 81F2 81C9 8162 8145 8179 819B"
- $"81C2 81D2 81D0 8161 8D00 95FF 8100 91FF"
- $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9"
- $"8162 8145 8179 819B 81C2 81D2 81D0 8161"
- $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4"
- $"8169 819E 81F2 81C9 8162 8145 8179 819B"
- $"81C2 81D2 81D0 8161 8D00 95FF 8100 8DFF"
- $"81E8 81DD 81D2 81B3 816A 81A0 81F3 81C7"
- $"815C 811B 815D 8189 819C 81B5 81CD 81D5"
- $"81D3 8161 8900 95FF 8100 8DFF 81E8 81DD"
- $"81D2 81B3 816A 81A0 81F3 81C7 815C 811B"
- $"815D 8189 819C 81B5 81CD 81D5 81D3 8161"
- $"8900 95FF 8100 8DFF 81E8 81DD 81D2 81B3"
- $"816A 81A0 81F3 81C7 815C 811B 815D 8189"
- $"819C 81B5 81CD 81D5 81D3 8161 8900 95FF"
- $"8100 8DFF 81E8 81DD 81D2 81B3 816A 81A0"
- $"81F3 81C7 815C 811B 815D 8189 819C 81B5"
- $"81CD 81D5 81D3 8161 8900 95FF 8100 8DFF"
- $"81DF 81C2 819C 8165 817A 81DE 81B3 816A"
- $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5"
- $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF"
- $"81DF 81C2 819C 8165 817A 81DE 81B3 816A"
- $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5"
- $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF"
- $"81DF 81C2 819C 8165 817A 81DE 81B3 816A"
- $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5"
- $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF"
- $"81DF 81C2 819C 8165 817A 81DE 81B3 816A"
- $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5"
- $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF"
- $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7"
- $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8"
- $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF"
- $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7"
- $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8"
- $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF"
- $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7"
- $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8"
- $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF"
- $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7"
- $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8"
- $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF"
- $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4"
- $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6"
- $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF"
- $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4"
- $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6"
- $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF"
- $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4"
- $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6"
- $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF"
- $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4"
- $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6"
- $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF"
- $"81C6 81A2 81C7 8188 816F 814D 8161 816F"
- $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0"
- $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF"
- $"81C6 81A2 81C7 8188 816F 814D 8161 816F"
- $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0"
- $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF"
- $"81C6 81A2 81C7 8188 816F 814D 8161 816F"
- $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0"
- $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF"
- $"81C6 81A2 81C7 8188 816F 814D 8161 816F"
- $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0"
- $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF"
- $"8199 81BF 81AE 815C 818A 8185 816D 8150"
- $"814E 815A 815B 8155 816C 818F 818B 818C"
- $"8195 8188 818F 81A4 8100 95FF 8100 8DFF"
- $"8199 81BF 81AE 815C 818A 8185 816D 8150"
- $"814E 815A 815B 8155 816C 818F 818B 818C"
- $"8195 8188 818F 81A4 8100 95FF 8100 8DFF"
- $"8199 81BF 81AE 815C 818A 8185 816D 8150"
- $"814E 815A 815B 8155 816C 818F 818B 818C"
- $"8195 8188 818F 81A4 8100 95FF 8100 8DFF"
- $"8199 81BF 81AE 815C 818A 8185 816D 8150"
- $"814E 815A 815B 8155 816C 818F 818B 818C"
- $"8195 8188 818F 81A4 8100 95FF 8100 89FF"
- $"81CA 8166 817C 818C 819F 85FF 81DC 81B5"
- $"8182 8151 814A 8143 813F 814B 8153 815E"
- $"8168 8160 818F 81A6 8100 95FF 8100 89FF"
- $"81CA 8166 817C 818C 819F 85FF 81DC 81B5"
- $"8182 8151 814A 8143 813F 814B 8153 815E"
- $"8168 8160 818F 81A6 8100 95FF 8100 89FF"
- $"81CA 8166 817C 818C 819F 85FF 81DC 81B5"
- $"8182 8151 814A 8143 813F 814B 8153 815E"
- $"8168 8160 818F 81A6 8100 95FF 8100 89FF"
- $"81CA 8166 817C 818C 819F 85FF 81DC 81B5"
- $"8182 8151 814A 8143 813F 814B 8153 815E"
- $"8168 8160 818F 81A6 8100 95FF 8100 89FF"
- $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D"
- $"8184 817B 8168 816D 815A 815E 818F 81AF"
- $"8100 95FF 8100 89FF 8166 819F 81C2 95FF"
- $"81DC 81C3 81A8 818D 8184 817B 8168 816D"
- $"815A 815E 818F 81AF 8100 95FF 8100 89FF"
- $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D"
- $"8184 817B 8168 816D 815A 815E 818F 81AF"
- $"8100 95FF 8100 89FF 8166 819F 81C2 95FF"
- $"81DC 81C3 81A8 818D 8184 817B 8168 816D"
- $"815A 815E 818F 81AF 8100 95FF 8100 C5FF"
- $"8100 85FF 8181 818F 81B5 8100 95FF 8100"
- $"C5FF 8100 85FF 8181 818F 81B5 8100 95FF"
- $"8100 C5FF 8100 85FF 8181 818F 81B5 8100"
- $"95FF 8100 C5FF 8100 85FF 8181 818F 81B5"
- $"8100 95FF 8100 C5FF 8100 85FF 8122 8544"
- $"8100 95FF 8100 C5FF 8100 85FF 8122 8544"
- $"8100 95FF 8100 C5FF 8100 85FF 8122 8544"
- $"8100 95FF 8100 C5FF 8100 85FF 8122 8544"
- $"8100 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF"
- $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF"
- $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF"
- $"FF00 FF00 FF00 FB00 FF00 FF00 FF00 FF00"
- $"9500 C9FF 8101 8100 8144 81FF A100 C9FF"
- $"8101 8100 8144 81FF A100 C9FF 8101 8100"
- $"8144 81FF A100 C9FF 8101 8100 8144 81FF"
- $"A100 C5FF 8109 8500 8101 8144 A100 C5FF"
- $"8109 8500 8101 8144 A100 C5FF 8109 8500"
- $"8101 8144 A100 C5FF 8109 8500 8101 8144"
- $"A100 C1FF 8167 81BC 8100 8101 8119 8144"
- $"A100 C1FF 8167 81BC 8100 8101 8119 8144"
- $"A100 C1FF 8167 81BC 8100 8101 8119 8144"
- $"A100 C1FF 8167 81BC 8100 8101 8119 8144"
- $"A100 BDFF 8166 81E4 819D 8171 8119 8144"
- $"81FF A100 BDFF 8166 81E4 819D 8171 8119"
- $"8144 81FF A100 BDFF 8166 81E4 819D 8171"
- $"8119 8144 81FF A100 BDFF 8166 81E4 819D"
- $"8171 8119 8144 81FF A100 A9FF 81C9 81BE"
- $"81A7 819B 8182 81E4 8189 8144 8119 8144"
- $"85FF A100 A9FF 81C9 81BE 81A7 819B 8182"
- $"81E4 8189 8144 8119 8144 85FF A100 A9FF"
- $"81C9 81BE 81A7 819B 8182 81E4 8189 8144"
- $"8119 8144 85FF A100 A9FF 81C9 81BE 81A7"
- $"819B 8182 81E4 8189 8144 8119 8144 85FF"
- $"A100 A1FF 81CF 81B6 81B9 81BB 819B 8179"
- $"81E4 8193 8144 8119 8144 89FF A100 A1FF"
- $"81CF 81B6 81B9 81BB 819B 8179 81E4 8193"
- $"8144 8119 8144 89FF A100 A1FF 81CF 81B6"
- $"81B9 81BB 819B 8179 81E4 8193 8144 8119"
- $"8144 89FF A100 A1FF 81CF 81B6 81B9 81BB"
- $"819B 8179 81E4 8193 8144 8119 8144 89FF"
- $"A100 9DFF 81B2 81AC 81B6 81B5 819B 817D"
- $"81E4 8197 8144 8119 8144 8DFF A100 9DFF"
- $"81B2 81AC 81B6 81B5 819B 817D 81E4 8197"
- $"8144 8119 8144 8DFF A100 9DFF 81B2 81AC"
- $"81B6 81B5 819B 817D 81E4 8197 8144 8119"
- $"8144 8DFF A100 9DFF 81B2 81AC 81B6 81B5"
- $"819B 817D 81E4 8197 8144 8119 8144 8DFF"
- $"BD00 85AF 81A0 816E 8151 8180 81E4 819A"
- $"8144 8119 819B 8162 CD00 85AF 81A0 816E"
- $"8151 8180 81E4 819A 8144 8119 819B 8162"
- $"CD00 85AF 81A0 816E 8151 8180 81E4 819A"
- $"8144 8119 819B 8162 CD00 85AF 81A0 816E"
- $"8151 8180 81E4 819A 8144 8119 819B 8162"
- $"9500 95FF 8100 95FF 81B2 81B3 8197 8168"
- $"812E 8176 81E4 819D 8144 8119 8163 8196"
- $"81A1 8162 9100 95FF 8100 95FF 81B2 81B3"
- $"8197 8168 812E 8176 81E4 819D 8144 8119"
- $"8163 8196 81A1 8162 9100 95FF 8100 95FF"
- $"81B2 81B3 8197 8168 812E 8176 81E4 819D"
- $"8144 8119 8163 8196 81A1 8162 9100 95FF"
- $"8100 95FF 81B2 81B3 8197 8168 812E 8176"
- $"81E4 819D 8144 8119 8163 8196 81A1 8162"
- $"9100 95FF 8100 91FF 81BE 81B0 8199 8153"
- $"8130 817E 81CF 819C 8146 8119 8134 8159"
- $"818B 81A6 819C 8162 8D00 95FF 8100 91FF"
- $"81BE 81B0 8199 8153 8130 817E 81CF 819C"
- $"8146 8119 8134 8159 818B 81A6 819C 8162"
- $"8D00 95FF 8100 91FF 81BE 81B0 8199 8153"
- $"8130 817E 81CF 819C 8146 8119 8134 8159"
- $"818B 81A6 819C 8162 8D00 95FF 8100 91FF"
- $"81BE 81B0 8199 8153 8130 817E 81CF 819C"
- $"8146 8119 8134 8159 818B 81A6 819C 8162"
- $"8D00 95FF 8100 8DFF 81E0 81B1 8191 8167"
- $"812E 817E 81D0 819A 8144 810E 812A 813C"
- $"8155 817B 81A0 81A8 81A2 8162 8900 95FF"
- $"8100 8DFF 81E0 81B1 8191 8167 812E 817E"
- $"81D0 819A 8144 810E 812A 813C 8155 817B"
- $"81A0 81A8 81A2 8162 8900 95FF 8100 8DFF"
- $"81E0 81B1 8191 8167 812E 817E 81D0 819A"
- $"8144 810E 812A 813C 8155 817B 81A0 81A8"
- $"81A2 8162 8900 95FF 8100 8DFF 81E0 81B1"
- $"8191 8167 812E 817E 81D0 819A 8144 810E"
- $"812A 813C 8155 817B 81A0 81A8 81A2 8162"
- $"8900 95FF 8100 8DFF 81C5 8176 814B 812D"
- $"8151 81B5 8186 814F 8104 810E 8134 8161"
- $"8181 818A 819F 81A8 81A7 81A1 8168 817C"
- $"8100 95FF 8100 8DFF 81C5 8176 814B 812D"
- $"8151 81B5 8186 814F 8104 810E 8134 8161"
- $"8181 818A 819F 81A8 81A7 81A1 8168 817C"
- $"8100 95FF 8100 8DFF 81C5 8176 814B 812D"
- $"8151 81B5 8186 814F 8104 810E 8134 8161"
- $"8181 818A 819F 81A8 81A7 81A1 8168 817C"
- $"8100 95FF 8100 8DFF 81C5 8176 814B 812D"
- $"8151 81B5 8186 814F 8104 810E 8134 8161"
- $"8181 818A 819F 81A8 81A7 81A1 8168 817C"
- $"8100 95FF 8100 8DFF 8172 812D 813A 817D"
- $"8186 8183 8199 8198 818C 8185 81A0 81B3"
- $"81B9 81AE 81A9 85AA 81A5 8168 817E 8100"
- $"95FF 8100 8DFF 8172 812D 813A 817D 8186"
- $"8183 8199 8198 818C 8185 81A0 81B3 81B9"
- $"81AE 81A9 85AA 81A5 8168 817E 8100 95FF"
- $"8100 8DFF 8172 812D 813A 817D 8186 8183"
- $"8199 8198 818C 8185 81A0 81B3 81B9 81AE"
- $"81A9 85AA 81A5 8168 817E 8100 95FF 8100"
- $"8DFF 8172 812D 813A 817D 8186 8183 8199"
- $"8198 818C 8185 81A0 81B3 81B9 81AE 81A9"
- $"85AA 81A5 8168 817E 8100 95FF 8100 8DFF"
- $"81E8 8144 8138 81B3 81A9 8162 816F 817D"
- $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5"
- $"819B 8195 8173 8192 8100 95FF 8100 8DFF"
- $"81E8 8144 8138 81B3 81A9 8162 816F 817D"
- $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5"
- $"819B 8195 8173 8192 8100 95FF 8100 8DFF"
- $"81E8 8144 8138 81B3 81A9 8162 816F 817D"
- $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5"
- $"819B 8195 8173 8192 8100 95FF 8100 8DFF"
- $"81E8 8144 8138 81B3 81A9 8162 816F 817D"
- $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5"
- $"819B 8195 8173 8192 8100 95FF 8100 8DFF"
- $"81C2 8183 819A 8144 813D 811E 8129 8134"
- $"8144 8155 815C 818E 81AC 819A 818B 8189"
- $"817D 8175 8182 819A 8100 95FF 8100 8DFF"
- $"81C2 8183 819A 8144 813D 811E 8129 8134"
- $"8144 8155 815C 818E 81AC 819A 818B 8189"
- $"817D 8175 8182 819A 8100 95FF 8100 8DFF"
- $"81C2 8183 819A 8144 813D 811E 8129 8134"
- $"8144 8155 815C 818E 81AC 819A 818B 8189"
- $"817D 8175 8182 819A 8100 95FF 8100 8DFF"
- $"81C2 8183 819A 8144 813D 811E 8129 8134"
- $"8144 8155 815C 818E 81AC 819A 818B 8189"
- $"817D 8175 8182 819A 8100 95FF 8100 8DFF"
- $"816E 818B 8180 8144 8174 816B 8145 8522"
- $"812F 8130 812E 8142 815C 8155 8158 8160"
- $"8155 818E 819E 8100 95FF 8100 8DFF 816E"
- $"818B 8180 8144 8174 816B 8145 8522 812F"
- $"8130 812E 8142 815C 8155 8158 8160 8155"
- $"818E 819E 8100 95FF 8100 8DFF 816E 818B"
- $"8180 8144 8174 816B 8145 8522 812F 8130"
- $"812E 8142 815C 8155 8158 8160 8155 818E"
- $"819E 8100 95FF 8100 8DFF 816E 818B 8180"
- $"8144 8174 816B 8145 8522 812F 8130 812E"
- $"8142 815C 8155 8158 8160 8155 818E 819E"
- $"8100 95FF 8100 89FF 81B4 8166 815A 8181"
- $"819F 85FF 81D6 819F 815B 8123 811B 8113"
- $"8110 8120 812B 8133 813C 8137 818E 81A0"
- $"8100 95FF 8100 89FF 81B4 8166 815A 8181"
- $"819F 85FF 81D6 819F 815B 8123 811B 8113"
- $"8110 8120 812B 8133 813C 8137 818E 81A0"
- $"8100 95FF 8100 89FF 81B4 8166 815A 8181"
- $"819F 85FF 81D6 819F 815B 8123 811B 8113"
- $"8110 8120 812B 8133 813C 8137 818E 81A0"
- $"8100 95FF 8100 89FF 81B4 8166 815A 8181"
- $"819F 85FF 81D6 819F 815B 8123 811B 8113"
- $"8110 8120 812B 8133 813C 8137 818E 81A0"
- $"8100 95FF 8100 89FF 8166 819F 81C2 95FF"
- $"81D6 81B6 8192 816F 8166 815B 8147 8149"
- $"8131 813B 818E 81A6 8100 95FF 8100 89FF"
- $"8166 819F 81C2 95FF 81D6 81B6 8192 816F"
- $"8166 815B 8147 8149 8131 813B 818E 81A6"
- $"8100 95FF 8100 89FF 8166 819F 81C2 95FF"
- $"81D6 81B6 8192 816F 8166 815B 8147 8149"
- $"8131 813B 818E 81A6 8100 95FF 8100 89FF"
- $"8166 819F 81C2 95FF 81D6 81B6 8192 816F"
- $"8166 815B 8147 8149 8131 813B 818E 81A6"
- $"8100 95FF 8100 C5FF 8100 85FF 8172 818E"
- $"81AB 8100 95FF 8100 C5FF 8100 85FF 8172"
- $"818E 81AB 8100 95FF 8100 C5FF 8100 85FF"
- $"8172 818E 81AB 8100 95FF 8100 C5FF 8100"
- $"85FF 8172 818E 81AB 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF"
- $"8100 917B 8100 8DFF FF00 FF00 FF00 FB00"
- $"FF00 FF00 FF00 FF00 9500 C9FF 810F 8143"
- $"8144 81FF A100 C9FF 810F 8143 8144 81FF"
- $"A100 C9FF 810F 8143 8144 81FF A100 C9FF"
- $"810F 8143 8144 81FF A100 C5FF 8117 8143"
- $"8116 810F 8144 A100 C5FF 8117 8143 8116"
- $"810F 8144 A100 C5FF 8117 8143 8116 810F"
- $"8144 A100 C5FF 8117 8143 8116 810F 8144"
- $"A100 C1FF 8165 81C4 8116 810F 811A 8144"
- $"A100 C1FF 8165 81C4 8116 810F 811A 8144"
- $"A100 C1FF 8165 81C4 8116 810F 811A 8144"
- $"A100 C1FF 8165 81C4 8116 810F 811A 8144"
- $"A100 BDFF 8155 8167 81A7 816C 811A 8144"
- $"81FF A100 BDFF 8155 8167 81A7 816C 811A"
- $"8144 81FF A100 BDFF 8155 8167 81A7 816C"
- $"811A 8144 81FF A100 BDFF 8155 8167 81A7"
- $"816C 811A 8144 81FF A100 A9FF 81BC 81A9"
- $"8192 8193 813E 8167 814D 8123 811A 8144"
- $"85FF A100 A9FF 81BC 81A9 8192 8193 813E"
- $"8167 814D 8123 811A 8144 85FF A100 A9FF"
- $"81BC 81A9 8192 8193 813E 8167 814D 8123"
- $"811A 8144 85FF A100 A9FF 81BC 81A9 8192"
- $"8193 813E 8167 814D 8123 811A 8144 85FF"
- $"A100 A1FF 81C6 819A 8598 8193 8131 8167"
- $"814A 8123 811A 8144 89FF A100 A1FF 81C6"
- $"819A 8598 8193 8131 8167 814A 8123 811A"
- $"8144 89FF A100 A1FF 81C6 819A 8598 8193"
- $"8131 8167 814A 8123 811A 8144 89FF A100"
- $"A1FF 81C6 819A 8598 8193 8131 8167 814A"
- $"8123 811A 8144 89FF A100 9DFF 819C 818E"
- $"8199 8195 8193 8137 8167 814F 8123 811A"
- $"8144 8DFF A100 9DFF 819C 818E 8199 8195"
- $"8193 8137 8167 814F 8123 811A 8144 8DFF"
- $"A100 9DFF 819C 818E 8199 8195 8193 8137"
- $"8167 814F 8123 811A 8144 8DFF A100 9DFF"
- $"819C 818E 8199 8195 8193 8137 8167 814F"
- $"8123 811A 8144 8DFF BD00 8192 818F 8186"
- $"8157 8147 8139 8167 8152 8123 811A 817A"
- $"8161 CD00 8192 818F 8186 8157 8147 8139"
- $"8167 8152 8123 811A 817A 8161 CD00 8192"
- $"818F 8186 8157 8147 8139 8167 8152 8123"
- $"811A 817A 8161 CD00 8192 818F 8186 8157"
- $"8147 8139 8167 8152 8123 811A 817A 8161"
- $"9500 95FF 8100 95FF 8195 8191 817C 8151"
- $"812A 8132 8167 8153 8123 811A 814B 8178"
- $"8183 8161 89FF 8500 95FF 8100 95FF 8195"
- $"8191 817C 8151 812A 8132 8167 8153 8123"
- $"811A 814B 8178 8183 8161 89FF 8500 95FF"
- $"8100 95FF 8195 8191 817C 8151 812A 8132"
- $"8167 8153 8123 811A 814B 8178 8183 8161"
- $"89FF 8500 95FF 8100 95FF 8195 8191 817C"
- $"8151 812A 8132 8167 8153 8123 811A 814B"
- $"8178 8183 8161 89FF 8500 95FF 8100 91FF"
- $"81A9 818B 817D 8141 812C 8137 8163 8153"
- $"8124 811A 812C 8144 816D 818A 8180 8161"
- $"85FF 8500 95FF 8100 91FF 81A9 818B 817D"
- $"8141 812C 8137 8163 8153 8124 811A 812C"
- $"8144 816D 818A 8180 8161 85FF 8500 95FF"
- $"8100 91FF 81A9 818B 817D 8141 812C 8137"
- $"8163 8153 8124 811A 812C 8144 816D 818A"
- $"8180 8161 85FF 8500 95FF 8100 91FF 81A9"
- $"818B 817D 8141 812C 8137 8163 8153 8124"
- $"811A 812C 8144 816D 818A 8180 8161 85FF"
- $"8500 95FF 8100 8DFF 81DA 8192 8178 8154"
- $"8127 8137 8161 8151 8122 8111 8124 8132"
- $"813F 8160 8184 818D 8186 8161 81FF 8500"
- $"95FF 8100 8DFF 81DA 8192 8178 8154 8127"
- $"8137 8161 8151 8122 8111 8124 8132 813F"
- $"8160 8184 818D 8186 8161 81FF 8500 95FF"
- $"8100 8DFF 81DA 8192 8178 8154 8127 8137"
- $"8161 8151 8122 8111 8124 8132 813F 8160"
- $"8184 818D 8186 8161 81FF 8500 95FF 8100"
- $"8DFF 81DA 8192 8178 8154 8127 8137 8161"
- $"8151 8122 8111 8124 8132 813F 8160 8184"
- $"818D 8186 8161 81FF 8500 95FF 8100 8DFF"
- $"81B7 815B 813C 8127 8130 8159 8156 812A"
- $"810A 810C 812C 814F 8165 816C 8185 818D"
- $"8189 8188 8169 8188 8100 95FF 8100 8DFF"
- $"81B7 815B 813C 8127 8130 8159 8156 812A"
- $"810A 810C 812C 814F 8165 816C 8185 818D"
- $"8189 8188 8169 8188 8100 95FF 8100 8DFF"
- $"81B7 815B 813C 8127 8130 8159 8156 812A"
- $"810A 810C 812C 814F 8165 816C 8185 818D"
- $"8189 8188 8169 8188 8100 95FF 8100 8DFF"
- $"81B7 815B 813C 8127 8130 8159 8156 812A"
- $"810A 810C 812C 814F 8165 816C 8185 818D"
- $"8189 8188 8169 8188 8100 95FF 8100 8DFF"
- $"8161 8120 812F 816A 8576 8583 8178 8174"
- $"818C 819A 819D 8191 858E 818C 8188 8169"
- $"8155 8100 95FF 8100 8DFF 8161 8120 812F"
- $"816A 8576 8583 8178 8174 818C 819A 819D"
- $"8191 858E 818C 8188 8169 8155 8100 95FF"
- $"8100 8DFF 8161 8120 812F 816A 8576 8583"
- $"8178 8174 818C 819A 819D 8191 858E 818C"
- $"8188 8169 8155 8100 95FF 8100 8DFF 8161"
- $"8120 812F 816A 8576 8583 8178 8174 818C"
- $"819A 819D 8191 858E 818C 8188 8169 8155"
- $"8100 95FF 8100 8DFF 81E7 8122 8130 8196"
- $"8194 8153 8154 815F 8180 8195 81A2 819E"
- $"819A 819D 8194 8188 8181 817A 8173 8144"
- $"8100 95FF 8100 8DFF 81E7 8122 8130 8196"
- $"8194 8153 8154 815F 8180 8195 81A2 819E"
- $"819A 819D 8194 8188 8181 817A 8173 8144"
- $"8100 95FF 8100 8DFF 81E7 8122 8130 8196"
- $"8194 8153 8154 815F 8180 8195 81A2 819E"
- $"819A 819D 8194 8188 8181 817A 8173 8144"
- $"8100 95FF 8100 8DFF 81E7 8122 8130 8196"
- $"8194 8153 8154 815F 8180 8195 81A2 819E"
- $"819A 819D 8194 8188 8181 817A 8173 8144"
- $"8100 95FF 8100 8DFF 81C6 8146 8151 8135"
- $"8138 8119 811F 812A 8136 8144 814A 8175"
- $"8191 8181 8173 8172 8168 8160 8181 81FF"
- $"8100 95FF 8100 8DFF 81C6 8146 8151 8135"
- $"8138 8119 811F 812A 8136 8144 814A 8175"
- $"8191 8181 8173 8172 8168 8160 8181 81FF"
- $"8100 95FF 8100 8DFF 81C6 8146 8151 8135"
- $"8138 8119 811F 812A 8136 8144 814A 8175"
- $"8191 8181 8173 8172 8168 8160 8181 81FF"
- $"8100 95FF 8100 8DFF 81C6 8146 8151 8135"
- $"8138 8119 811F 812A 8136 8144 814A 8175"
- $"8191 8181 8173 8172 8168 8160 8181 81FF"
- $"8100 95FF 8100 8DFF 8159 816A 8149 8122"
- $"8177 8168 813C 811A 811D 8928 8138 814D"
- $"8147 8148 814F 8147 818E 81FF 8100 95FF"
- $"8100 8DFF 8159 816A 8149 8122 8177 8168"
- $"813C 811A 811D 8928 8138 814D 8147 8148"
- $"814F 8147 818E 81FF 8100 95FF 8100 8DFF"
- $"8159 816A 8149 8122 8177 8168 813C 811A"
- $"811D 8928 8138 814D 8147 8148 814F 8147"
- $"818E 81FF 8100 95FF 8100 8DFF 8159 816A"
- $"8149 8122 8177 8168 813C 811A 811D 8928"
- $"8138 814D 8147 8148 814F 8147 818E 81FF"
- $"8100 95FF 8100 89FF 81A8 8165 814A 817F"
- $"819F 85FF 81D3 819A 8155 811C 8114 810E"
- $"810B 811B 8126 812B 8133 8130 818E 819A"
- $"8100 95FF 8100 89FF 81A8 8165 814A 817F"
- $"819F 85FF 81D3 819A 8155 811C 8114 810E"
- $"810B 811B 8126 812B 8133 8130 818E 819A"
- $"8100 95FF 8100 89FF 81A8 8165 814A 817F"
- $"819F 85FF 81D3 819A 8155 811C 8114 810E"
- $"810B 811B 8126 812B 8133 8130 818E 819A"
- $"8100 95FF 8100 89FF 81A8 8165 814A 817F"
- $"819F 85FF 81D3 819A 8155 811C 8114 810E"
- $"810B 811B 8126 812B 8133 8130 818E 819A"
- $"8100 95FF 8100 89FF 8165 819F 81C2 95FF"
- $"81D3 81B2 818E 8169 815F 8156 8142 8143"
- $"812B 8135 818E 819F 8100 95FF 8100 89FF"
- $"8165 819F 81C2 95FF 81D3 81B2 818E 8169"
- $"815F 8156 8142 8143 812B 8135 818E 819F"
- $"8100 95FF 8100 89FF 8165 819F 81C2 95FF"
- $"81D3 81B2 818E 8169 815F 8156 8142 8143"
- $"812B 8135 818E 819F 8100 95FF 8100 89FF"
- $"8165 819F 81C2 95FF 81D3 81B2 818E 8169"
- $"815F 8156 8142 8143 812B 8135 818E 819F"
- $"8100 95FF 8100 C5FF 8100 85FF 816B 818E"
- $"81A7 8100 95FF 8100 C5FF 8100 85FF 816B"
- $"818E 81A7 8100 95FF 8100 C5FF 8100 85FF"
- $"816B 818E 81A7 8100 95FF 8100 C5FF 8100"
- $"85FF 816B 818E 81A7 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 85FF 8122 8544 8100 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF"
- $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF"
- $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF"
- $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF"
- $"8500 95FF CD00 8DFF FF00 FF00 FF00 FB00"
- $"7438 6D6B 0000 4008 FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF"
-};
-
-data 'ics#' (-16455, "Item Icon") {
- $"F557 D001 700E E024 9A9B 0175 9299 0162"
- $"923E 0001 9004 0000 9BBC 102C 8434 5AFD"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
-};
-
-data 'ics4' (-16455, "Item Icon") {
- $"AA3F DDDD DDDD DDAE A333 0000 0000 0C3E"
- $"333A 0000 000C DBEC A333 0000 0CBC 2A00"
- $"EDDF DDDB D2CB ECFF D00D 00CD BBBA B2D6"
- $"D00D 00B2 DDBB DCCB D00D 00D4 D2D2 CC2D"
- $"D00D 00BD CCE5 3EEC D00D 0C00 0000 CBCB"
- $"D00D 0000 0000 0D0D D00D 0000 0000 0D00"
- $"D00D ABAB ABAF 9F00 D00D 1111 11B8 9900"
- $"D00D 1111 1189 9F00 EDDA 8291 ABAF 9FDD"
-};
-
-data 'ics8' (-16455, "Item Icon") {
- $"DEDC DBB3 F9FA F9FA F9FA F9FA F9FA 8FFB"
- $"DC23 23DB 0000 0000 0000 0000 0032 6A88"
- $"DB23 23DC 0000 0000 0000 F52B 3357 882B"
- $"DC23 23DB 0000 0000 F608 3234 33AD F600"
- $"FCFA F9AC F9FA F95D 0E5D 3457 8833 F1F2"
- $"FA00 00F9 0000 0733 825E 33AD 6432 33EF"
- $"F900 00FA 0000 5D5E 5D33 825D 3332 2C57"
- $"FA00 00F9 0000 5739 5D64 5D33 3232 335C"
- $"F900 00FA 00F5 5D57 F732 828E 8988 88F9"
- $"FA00 00F9 00F6 F600 0000 F5F6 4F5D F85D"
- $"F900 00FA 0000 0000 0000 0000 00FA 0056"
- $"FA00 00FA 0000 0000 0000 0000 00F9 0000"
- $"F900 00F9 8359 8359 8359 ADD1 E8EA 0000"
- $"FA00 00FA 0505 0505 0505 5FE5 E6E8 0000"
- $"F900 00F9 0505 0505 0505 7DE6 E6D1 0000"
- $"ACF9 FAFC 8359 8359 8359 ADD1 E8E9 FAF9"
-};
-
diff --git a/rbutil/rbutilApp.cpp b/rbutil/rbutilApp.cpp
deleted file mode 100644
index 1901a62df1..0000000000
--- a/rbutil/rbutilApp.cpp
+++ /dev/null
@@ -1,288 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutilApp.cpp
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "rbutilApp.h"
-#include "bootloaders.h"
-
-GlobalVars* gv = new GlobalVars();
-
-IMPLEMENT_APP(rbutilFrmApp)
-
-bool rbutilFrmApp::OnInit()
-{
- wxString buf = wxT("");
-
- wxLogVerbose(wxT("=== begin rbutilFrmApp::Oninit()"));
-
-
- gv->stdpaths = new wxStandardPaths();
-
- // Get application directory
- // DANGER! GetDataDir() doesn't portably return the application directory
- // We want to use the form below instead, but not until wxWidgets 2.8 is
- // released. *Datadir gives the wrong dir for this on Linux/Mac even on Wx2.8 *
- gv->AppDir = gv->stdpaths->GetExecutablePath().BeforeLast(PATH_SEP_CHR);
- // buf = gv->stdpaths->GetDataDir(); buf.Append(PATH_SEP);
- // gv->AppDir = buf.BeforeLast(PATH_SEP_CHR).c_str();
-
- buf = gv->stdpaths->GetUserDataDir();
- if (! wxDirExists(buf) )
- {
- wxLogNull lognull;
- if (! wxMkdir(buf, 0777))
- {
- wxLogFatalError(wxT("Can't create data directory %s"),
- buf.c_str());
- }
- }
-
- buf += PATH_SEP wxT("rbutil.log");
- gv->logfile = new wxFFile(buf, wxT("w"));
- if (! gv->logfile->IsOpened() )
- wxLogFatalError(wxT("Unable to open log file"));
-
- gv->loggui = new wxLogGui();
- gv->loggui->SetActiveTarget(gv->loggui);
- gv->loggui->SetLogLevel(wxLOG_Message);
- gv->logchain = new wxLogChain(
- gv->logstderr = new wxLogStderr(gv->logfile->fp() ) );
-
- buf = buf.Left(buf.Len() - 10);
- buf.Append(wxT("download"));
- if (! wxDirExists(buf) ) wxMkdir(buf, 0777);
-
- wxFileSystem::AddHandler(new wxInternetFSHandler);
- wxFileSystem::AddHandler(new wxZipFSHandler);
-
- if (!ReadGlobalConfig(NULL))
- {
- ERR_DIALOG(gv->ErrStr->GetData(), wxT("Rockbox Utility"));
- return FALSE;
- }
- ReadUserConfig();
-
- wxInitAllImageHandlers(); //init Image handlers
- initIpodpatcher(); // reserve mem for ipodpatcher
- initSansaPatcher(); // reserve mem for sansapatcher
-
- rbutilFrm *myFrame = new rbutilFrm(NULL);
- SetTopWindow(myFrame);
-
- myFrame->Show(TRUE);
-
- wxLogVerbose(wxT("=== end rbUtilFrmApp::OnInit()"));
- return TRUE;
-}
-
-int rbutilFrmApp::OnExit()
-{
- wxLogVerbose(wxT("=== begin rbUtilFrmApp::OnExit()"));
-
- WriteUserConfig();
-
- gv->logfile->Close();
- /* Enabling this code causes the program to crash. I
- * have no idea why. (possibly because deleting non existing objects ? :-) )
- wxLog::DontCreateOnDemand();
- // Free a bunch of structures.
- delete gv->GlobalConfig;
- delete gv->ErrStr;
- delete gv->stdpaths;
- delete gv->platform;
-
- delete gv->logstderr;
- delete gv->logchain;
- delete gv->logfile;
- delete gv->loggui;
-*/
- wxLogVerbose(wxT("=== end rbUtilFrmApp::OnExit()"));
- return 0;
-}
-
-bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame)
-{
- wxString buf, tmpstr, stack;
- wxLogVerbose(wxT("=== begin rbutilFrmApp::ReadGlobalConfig(%p)"),
- (void*) myFrame);
-
- // Cross-platform compatibility: look for rbutil.ini in then in the app dir
- // then in the user config dir (linux ~/) and
- // then config dir (linux /etc/ )
-
- buf = gv->AppDir + wxT("" PATH_SEP "rbutil.ini");
- if (! wxFileExists(buf) )
- {
- buf = gv->stdpaths->GetUserConfigDir()
- + wxT("" PATH_SEP ".rbutil" PATH_SEP "rbutil.ini");
- if (! wxFileExists(buf) )
- {
- buf = gv->stdpaths->GetConfigDir()
- + wxT("" PATH_SEP "rbutil.ini");
- }
- }
-
- if (! wxFileExists(buf) )
- {
- gv->ErrStr = new wxString(wxT("Configuration file doesnt exist!"));
- return false;
- }
-
-
- wxFileInputStream* cfgis = new wxFileInputStream(buf);
-
- if (!cfgis->CanRead()) {
- gv->ErrStr = new wxString(wxT("Unable to open configuration file"));
- return false;
- }
-
- gv->GlobalConfig = new wxFileConfig(*cfgis);
- gv->GlobalConfigFile = buf;
-
- unsigned int i = 0;
-
- stack = gv->GlobalConfig->GetPath();
- gv->GlobalConfig->SetPath(wxT("/platforms"));
- while(gv->GlobalConfig->Read(buf.Format(wxT("platform%d"), i + 1),
- &tmpstr)) {
- wxString cur = tmpstr;
- //gv->plat_id.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/name"),
- cur.c_str()), &tmpstr);
- gv->plat_name.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/platform"),
- cur.c_str()), &tmpstr);
- gv->plat_id.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/released"),
- cur.c_str()), &tmpstr);
- gv->plat_released.Add( (tmpstr == wxT("yes")) ? true : false ) ;
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/needsbootloader"),
- cur.c_str()), &tmpstr);
- gv->plat_needsbootloader.Add( (tmpstr == wxT("yes")) ? true : false ) ;
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadermethod"),
- cur.c_str()), &tmpstr);
- gv->plat_bootloadermethod.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadername"),
- cur.c_str()), &tmpstr);
- gv->plat_bootloadername.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/resolution"),
- cur.c_str()), &tmpstr);
- gv->plat_resolution.Add(tmpstr);
- gv->GlobalConfig->Read(buf.Format(wxT("/%s/manualname"),
- cur.c_str()), &tmpstr);
- gv->plat_manualname.Add(tmpstr);
-
- i++;
- }
-
- gv->GlobalConfig->SetPath(wxT("/general"));
- gv->GlobalConfig->Read(wxT("default_platform"), &tmpstr, wxT("cthulhu"));
-
-
- gv->GlobalConfig->Read(wxT("last_release"), &tmpstr);
- gv->last_release = tmpstr;
-
- gv->GlobalConfig->Read(wxT("download_url"), &tmpstr);
- gv->download_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("daily_url"), &tmpstr);
- gv->daily_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("bleeding_url"), &tmpstr);
- gv->bleeding_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("server_conf_url"), &tmpstr);
- gv->server_conf_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("font_url"), &tmpstr);
- gv->font_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("prog_name"), &tmpstr);
- gv->prog_name = tmpstr;
-
- gv->GlobalConfig->Read(wxT("bootloader_url"), &tmpstr);
- gv->bootloader_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("themes_url"), &tmpstr);
- gv->themes_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("manual_url"), &tmpstr);
- gv->manual_url = tmpstr;
-
- gv->GlobalConfig->Read(wxT("doom_url"), &tmpstr);
- gv->doom_url = tmpstr;
-
-#ifdef __WXMSW__
- gv->curdestdir = wxT("D:\\");
-#else
- gv->curdestdir = wxT("/mnt");
-#endif
- gv->GlobalConfig->SetPath(stack);
-
- wxLogVerbose(wxT("=== end rbutilFrmApp::ReadGlobalConfig()"));
- return true;
-}
-
-void rbutilFrmApp::ReadUserConfig()
-{
- wxString buf, str, stack;
-
- buf = gv->AppDir + wxT("" PATH_SEP "RockboxUtility.cfg");
-
- if (wxFileExists(buf) )
- {
- gv->portable = true;
- }
- else
- {
- gv->portable = false;
- buf = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "RockboxUtility.cfg");
- }
-
- gv->UserConfig = new wxFileConfig(wxEmptyString, wxEmptyString, buf);
- gv->UserConfigFile = buf;
- gv->UserConfig->Set(gv->UserConfig); // Store wxWidgets internal settings
- stack = gv->UserConfig->GetPath();
-
- gv->UserConfig->SetPath(wxT("/defaults"));
- if (gv->UserConfig->Read(wxT("curdestdir"), &str) ) gv->curdestdir = str;
- if (gv->UserConfig->Read(wxT("curplatform"), &str) ) gv->curplat = str;
- if (gv->UserConfig->Read(wxT("curfirmware"), &str) ) gv->curfirmware = str;
- if (gv->UserConfig->Read(wxT("proxy_url"), &str) ) gv->proxy_url = str;
-
- if (gv->UserConfig->Read(wxT("pathToTts"), &str) ) gv->pathToTts = str;
- if (gv->UserConfig->Read(wxT("pathToEnc"), &str) ) gv->pathToEnc = str;
- gv->UserConfig->SetPath(stack);
-}
-
-void rbutilFrmApp::WriteUserConfig()
-{
- gv->UserConfig->SetPath(wxT("/defaults"));
- gv->UserConfig->Write(wxT("curdestdir"), gv->curdestdir);
- gv->UserConfig->Write(wxT("curplatform"), gv->curplat);
- gv->UserConfig->Write(wxT("curfirmware"), gv->curfirmware);
- gv->UserConfig->Write(wxT("proxy_url"), gv->proxy_url);
- gv->UserConfig->Write(wxT("pathToTts"), gv->pathToTts);
- gv->UserConfig->Write(wxT("pathToEnc"), gv->pathToEnc);
-
- delete gv->UserConfig;
-
-}
-
diff --git a/rbutil/rbutilApp.h b/rbutil/rbutilApp.h
deleted file mode 100644
index b20e39eb90..0000000000
--- a/rbutil/rbutilApp.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutilApp.h
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include <wx/wxprec.h>
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-#ifndef WX_PRECOMP
- #include <wx/wx.h>
-#endif
-
-#include <wx/msgdlg.h>
-#include <wx/config.h>
-#include <wx/confbase.h>
-#include <wx/fileconf.h>
-#include <wx/string.h>
-#include <wx/wfstream.h>
-#include <wx/fs_inet.h>
-#include <wx/fs_zip.h>
-#include <wx/stdpaths.h>
-
-#include "rbutilFrm.h"
-#include "rbutil.h"
-
-class rbutilFrmApp:public wxApp
-{
-public:
- bool OnInit();
- int OnExit();
- bool ReadGlobalConfig(rbutilFrm* myFrame);
- void ReadUserConfig(void);
- void WriteUserConfig(void);
-
-};
-
-
diff --git a/rbutil/rbutilCtrls.cpp b/rbutil/rbutilCtrls.cpp
deleted file mode 100644
index fdede634d3..0000000000
--- a/rbutil/rbutilCtrls.cpp
+++ /dev/null
@@ -1,628 +0,0 @@
-
-#include "rbutilCtrls.h"
-#include "bootloaders.h"
-#include "autodetection.h"
-
-/////////////////////////////////////////////////////////////
-//// Controls
-////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////
-//// Image Ctrl
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(ImageCtrl, wxControl)
- EVT_PAINT(ImageCtrl::OnPaint)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(ImageCtrl, wxControl)
-
-bool ImageCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxValidator& validator)
-{
- if (!wxControl::Create(parent, id, pos, size, style, validator)) return false;
-
-return true;
-}
-
-void ImageCtrl::OnPaint(wxPaintEvent& event)
-{
- wxPaintDC dc(this);
- dc.DrawBitmap(m_bitmap,0,0,false);
-}
-
-void ImageCtrl::SetBitmap(wxBitmap bmp)
-{
- m_bitmap = bmp;
- Refresh();
-
-}
-
-wxSize ImageCtrl::DoGetBestSize() const
-{
- wxSize bestsize;
- bestsize.x = m_bitmap.GetWidth();
- bestsize.y = m_bitmap.GetHeight();
- return bestsize;
-}
-
-
-
-/////////////////////////////////////////////
-//// Theme Control
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(ThemeCtrl, wxPanel)
- EVT_LISTBOX(ID_THEME_LST, ThemeCtrl::OnThemesLst)
- EVT_BUTTON(ID_THEME_SELECT_ALL, ThemeCtrl::OnSelectAll)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(ThemeCtrl, wxPanel)
-
-bool ThemeCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxString title )
-{
- if (!wxPanel::Create(parent, id, pos, size, style, title)) return false;
-
- CreateControls();
-
- GetSizer()->Fit(this);
-
- GetSizer()->SetSizeHints(this);
-return true;
-}
-
-void ThemeCtrl::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5);
-
- //Device Selection
- wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL);
- horizontalSizer->Add(wxBoxSizer7,0,wxGROW | wxALL,0);
-
- wxStaticText* m_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Select one or more Themes to install"), wxDefaultPosition,
- wxDefaultSize, 0 );
- wxBoxSizer7->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_themeList = new wxListBox(this,ID_THEME_LST,wxDefaultPosition,
- wxDefaultSize,0,NULL,wxLB_EXTENDED);
- wxBoxSizer7->Add(m_themeList, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_selectAllThemes = new wxButton(this, ID_THEME_SELECT_ALL,
- wxT("Select All"));
- wxBoxSizer7->Add(m_selectAllThemes, 0, wxALIGN_LEFT|wxALL, 5);
-
- // Preview Picture
- wxBoxSizer* wxBoxSizer9 = new wxBoxSizer(wxVERTICAL);
- horizontalSizer->Add(wxBoxSizer9,0,wxGROW | wxALL,0);
-
- wxStaticText* preview_desc= new wxStaticText(this,wxID_ANY,wxT("Preview:"));
- wxBoxSizer9->Add(preview_desc,0,wxGROW | wxALL,5);
-
- m_PreviewBitmap = new ImageCtrl(this,ID_PREVIEW_BITMAP );
- wxBoxSizer9->Add(m_PreviewBitmap,0,wxALIGN_LEFT | wxALL,5);
-
- wxStaticBox* groupbox= new wxStaticBox(this,wxID_ANY,wxT("Selected Theme:"));
- wxStaticBoxSizer* styleSizer = new wxStaticBoxSizer( groupbox, wxVERTICAL );
- topSizer->Add(styleSizer,0,wxGROW|wxALL,0);
-
- // horizontal sizer
- wxBoxSizer* wxBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
- styleSizer->Add(wxBoxSizer8,0,wxGROW | wxALL,0);
-
- // File size
- wxStaticText* size_desc= new wxStaticText(this,wxID_ANY,wxT("Filesize:"));
- wxBoxSizer8->Add(size_desc,0,wxGROW | wxALL,5);
-
- m_size= new wxStaticText(this,ID_FILESIZE,wxT(""));
- wxBoxSizer8->Add(m_size,0,wxGROW | wxALL,5);
-
- // Description
- wxStaticText* desc_desc= new wxStaticText(this,wxID_ANY,wxT("Description:"));
- styleSizer->Add(desc_desc,0,wxGROW | wxALL,5);
-
- m_themedesc= new wxTextCtrl(this,ID_DESC,wxT(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY);
- styleSizer->Add(m_themedesc,0,wxGROW | wxALL,5);
-
- topSizer->Fit(this);
- topSizer->SetSizeHints(this);
- Layout();
-
-}
-
-void ThemeCtrl::Init()
-{
- m_Themes.Clear();
- m_Themes_path.Clear();
- m_Themes_size.Clear();
- m_Themes_image.Clear();
- m_Themes_desc.Clear();
-
-}
-
-void ThemeCtrl::setDevice(wxString device)
-{
-
- int index = gv->plat_id.Index(device);
- if(index == -1) return;
-
- if(gv->plat_resolution[index] == m_currentResolution)
- return;
- else
- m_currentResolution = gv->plat_resolution[index];
-
- // load the themelist
- Init();
- m_size->SetLabel(wxT(""));
- m_themedesc->SetValue(wxT(""));
- m_themeList->Clear();
-
- //get correct Themes list
- wxString src,dest,err;
-
- src = gv->themes_url + wxT("rbutil.php?res=") + m_currentResolution;
- dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP)
- + m_currentResolution + wxT(".list");
-
- if(DownloadURL(src, dest))
- {
- MESG_DIALOG(wxT("Unable to download themes list."));
- return;
- }
-
- //read and parse Themes list
- wxString themelistraw;
- wxFFile themefile;
- if(!themefile.Open(dest)) //open file
- {
- MESG_DIALOG(wxT("Unable to open themes list."));
- return;
- }
- if(!themefile.ReadAll(&themelistraw)) //read complete file
- {
- MESG_DIALOG(wxT("Unable to read themes list."));
- return;
- }
- wxRegEx reAll(wxT("<body >(.+)</body>")); //extract body part
- if(! reAll.Matches(themelistraw))
- {
- MESG_DIALOG(wxT("Themes list is in wrong Format."));
- return;
- }
- wxString lines = reAll.GetMatch(themelistraw,1);
-
- // prepare text
- lines.Replace(wxT("<br />"),wxT(""),true); //replace <br /> with nothing
- lines.Replace(wxT("\n"),wxT(""),true); //replace \n with nothing
- lines.Trim(true); //strip WS at end
- lines.Trim(false); //strip WS at beginning
- wxStringTokenizer tkz(lines,wxT("|")); //tokenize it
-
- while ( tkz.HasMoreTokens() ) // read all entrys
- {
- m_Themes.Add(tkz.GetNextToken()); //Theme name
- m_Themes_path.Add(tkz.GetNextToken()); //Theme path
- m_Themes_size.Add(tkz.GetNextToken()); //File size
- m_Themes_image.Add(tkz.GetNextToken()); //Screenshot
- m_Themes_desc.Add(tkz.GetNextToken()); //Description
-
- m_themeList->Append(m_Themes.Last());
- }
-
- this->GetSizer()->Layout();
- this->GetSizer()->Fit(this);
- this->GetSizer()->SetSizeHints(this);
- m_parent->GetSizer()->Layout();
- m_parent->GetSizer()->Fit(m_parent);
- m_parent->GetSizer()->SetSizeHints(m_parent);
-}
-
-
-void ThemeCtrl::OnThemesLst(wxCommandEvent& event)
-{
- ThemePreview();
-}
-
-void ThemeCtrl::ThemePreview()
-{
- // wxCriticalSectionLocker locker(m_ThemeSelectSection);
-
- wxArrayInt selected;
- int numSelected = m_themeList->GetSelections(selected);
- if(numSelected == 0) return;
-
- int index = selected[0];
-
- m_size->SetLabel(m_Themes_size[index]);
- m_themedesc->SetValue(m_Themes_desc[index]);
- // m_themedesc->Wrap(200); // wrap desc
-
- wxString src,dest;
-
- int pos = m_Themes_image[index].Find('/',true);
- wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length());
-
- dest = gv->stdpaths->GetUserDataDir()
- + wxT("" PATH_SEP "download" PATH_SEP)
- + m_currentResolution;
-
- if(!wxDirExists(dest))
- wxMkdir(dest);
-
- //this is a URL no PATH_SEP
- src = gv->themes_url + wxT("/data/") + m_currentResolution + wxT("/")
- + filename;
- dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP)
- + m_currentResolution + wxT("" PATH_SEP) + filename;
-
- if(!wxFileExists(dest))
- {
- if(DownloadURL(src, dest))
- {
- MESG_DIALOG(wxT("Unable to download image."));
- return;
- }
- }
-
- m_currentimage = dest;
- wxBitmap bmp;
- bmp.LoadFile(m_currentimage,wxBITMAP_TYPE_PNG);
- m_PreviewBitmap->SetBitmap(bmp);
-
- Refresh();
- this->GetSizer()->Layout();
- this->GetSizer()->Fit(this);
- this->GetSizer()->SetSizeHints(this);
-
- m_parent->GetSizer()->Layout();
- m_parent->GetSizer()->Fit(m_parent);
- m_parent->GetSizer()->SetSizeHints(m_parent);
-
-}
-
-void ThemeCtrl::OnSelectAll(wxCommandEvent& event)
-{
- for(unsigned int i=0; i < m_themeList->GetCount(); i++)
- m_themeList->Select(i);
- ThemePreview();
-}
-
-wxArrayString ThemeCtrl::getThemesToInstall()
-{
- wxArrayString themes;
- wxArrayInt selected;
- int numSelected = m_themeList->GetSelections(selected);
-
- for(int i=0; i < numSelected; i++)
- {
- themes.Add(m_Themes_path[selected[i]]);
- }
- return themes;
-
- }
-
-/////////////////////////////////////////////
-//// Ok Cancel Control
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(OkCancelCtrl, wxPanel)
-
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(OkCancelCtrl, wxPanel)
-
-bool OkCancelCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxString title)
-{
- if (!wxPanel::Create(parent, id, pos, size, style, title)) return false;
-
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
-return true;
-}
-
-void OkCancelCtrl::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL);
- this->SetSizer(topSizer);
-
- // The OK button
- m_OkBtn = new wxButton ( this, wxID_OK, wxT("&OK"),
- wxDefaultPosition, wxDefaultSize, 0 );
- topSizer->Add(m_OkBtn, 0, wxALL, 5);
- // The Cancel button
- m_CancelBtn = new wxButton ( this, wxID_CANCEL,
- wxT("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
- topSizer->Add(m_CancelBtn, 0, wxALL, 5);
-
- Layout();
-
-}
-
-
-/////////////////////////////////////////////
-//// Device Selector
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(DeviceSelectorCtrl, wxPanel)
- EVT_BUTTON(ID_AUTODETECT_BTN, DeviceSelectorCtrl::OnAutoDetect)
- EVT_COMBOBOX(ID_DEVICE_CBX,DeviceSelectorCtrl::OnComboBox)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(DeviceSelectorCtrl, wxPanel)
-
-bool DeviceSelectorCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxString title)
-{
- if (!wxPanel::Create(parent, id, pos, size, style, title)) return false;
-
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- return true;
-}
-
-void DeviceSelectorCtrl::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- //Device Selection
- wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5);
- m_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Device:"), wxDefaultPosition,
- wxDefaultSize, 0 );
- horizontalSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_deviceCbx = new wxComboBox(this, ID_DEVICE_CBX,wxT("Select your Device"),
- wxDefaultPosition,wxDefaultSize,gv->plat_name,wxCB_READONLY);
-
- m_deviceCbx->SetToolTip(wxT("Select your Device."));
- m_deviceCbx->SetHelpText(wxT("Select your Device."));
-
- horizontalSizer->Add(m_deviceCbx, 0, wxALIGN_LEFT|wxALL, 5);
-
- wxButton* m_autodetectBtn = new wxButton(this, ID_AUTODETECT_BTN, wxT("Autodetect"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("AutodetectBtn"));
-
- m_autodetectBtn->SetToolTip(wxT("Click here to autodetect your Device."));
- m_autodetectBtn->SetHelpText(wxT("Autodetection of the Device."));
- // m_autodetectBtn->SetFocus();
-
- horizontalSizer->Add(m_autodetectBtn,0,wxGROW | wxALL,5);
- Layout();
-
-}
-
-wxString DeviceSelectorCtrl::getDevice()
-{
- return m_currentDevice;
-}
-
-void DeviceSelectorCtrl::setDefault()
-{
- int index = gv->plat_id.Index(gv->curplat);
- if(index == -1) return;
- m_deviceCbx->SetValue(gv->plat_name[index]);
-}
-
-void DeviceSelectorCtrl::OnComboBox(wxCommandEvent& event)
-{
- int index = gv->plat_name.Index(m_deviceCbx->GetValue());
-
- if(index == -1)
- {
- m_currentDevice = wxT("");
- return;
- }
-
- gv->curplat = gv->plat_id[index];
-}
-
-void DeviceSelectorCtrl::OnAutoDetect(wxCommandEvent& event)
-{
- if(!AutoDetect())
- {
- WARN_DIALOG(wxT("No Device detected. If you have a Device connected, select the correct one manually."),
- wxT("Detecting a Device"));
- }
-}
-
-
-bool DeviceSelectorCtrl::AutoDetect()
-{
- UsbDeviceInfo device;
-
- if(detectDevices(&device))
- {
-
- if(device.status == DEVICEFOUND)
- {
- m_deviceCbx->SetValue(gv->plat_name[device.device_index]);
- gv->curplat=gv->plat_id[device.device_index];
-
- if(device.path != wxT(""))
- {
- gv->curdestdir = device.path;
- }
- return true;
- }
- else if(device.status == TOMANYDEVICES)
- {
- WARN_DIALOG(wxT("More then one device detected, please connect only One"),
- wxT("Detecting a Device"));
- return true;
- }
- }
- return false;
-}
-
-/////////////////////////////////////////////
-//// DevicePosition Selector
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(DevicePositionCtrl, wxPanel)
- EVT_BUTTON(ID_BROWSE_BTN, DevicePositionCtrl::OnBrowseBtn)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(DevicePositionCtrl, wxPanel)
-
-bool DevicePositionCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxString title)
-{
- if (!wxPanel::Create(parent, id, pos, size, style, title)) return false;
-
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
-return true;
-}
-
-void DevicePositionCtrl::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- //Device Selection
- m_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Select your Device in the Filesystem"), wxDefaultPosition,
- wxDefaultSize, 0 );
- topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(horizontalSizer, 0, wxGROW|wxALL, 5);
-
- m_devicePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir);
- m_devicePos->SetToolTip(wxT("Type the folder where your Device is here"));
- m_devicePos->SetHelpText(wxT("Type the folder where your Device is here"));
- horizontalSizer->Add(m_devicePos,0,wxGROW | wxALL,5);
-
- m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("BrowseBtn"));
- m_browseBtn->SetToolTip(wxT("Browse for your Device"));
- m_browseBtn->SetHelpText(wxT("Browse for your Device"));
- horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5);
-
- topSizer->Fit(this);
- Layout();
-
-}
-
-wxString DevicePositionCtrl::getDevicePos()
-{
- return m_devicePos->GetValue();
-
-}
-
-void DevicePositionCtrl::setDefault()
-{
- m_devicePos->SetValue(gv->curdestdir);
-}
-
-void DevicePositionCtrl::OnBrowseBtn(wxCommandEvent& event)
-{
- const wxString& temp = wxDirSelector(
- wxT("Please select the location of your audio device"), gv->curdestdir,
- 0, wxDefaultPosition, this);
-
- if (!temp.empty())
- {
- m_devicePos->SetValue(temp);
- }
-
-}
-
-/////////////////////////////////////////////
-//// FirmwarePosition Selector
-//////////////////////////////////////////////
-
-BEGIN_EVENT_TABLE(FirmwarePositionCtrl, wxPanel)
- EVT_BUTTON(ID_BROWSE_BTN, FirmwarePositionCtrl::OnBrowseBtn)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(FirmwarePositionCtrl, wxControl)
-
-bool FirmwarePositionCtrl::Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos, const wxSize& size, long style,
- const wxString title)
-{
- if (!wxPanel::Create(parent, id, pos, size, style, title)) return false;
-
- CreateControls();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
-return true;
-}
-
-void FirmwarePositionCtrl::CreateControls()
-{
- // A top-level sizer
- wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(topSizer);
-
- //Device Selection
- m_desc = new wxStaticText( this, wxID_STATIC,
- wxT("Select original Firmware from the Manufacturer"), wxDefaultPosition,
- wxDefaultSize, 0 );
- topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5);
-
- wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
- topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5);
-
- m_firmwarePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir);
- m_firmwarePos->SetToolTip(wxT("Type the folder where the original Firmware is here"));
- m_firmwarePos->SetHelpText(wxT("Type the folder where the original Firmware is here"));
- horizontalSizer->Add(m_firmwarePos,0,wxGROW | wxALL,5);
-
- m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("BrowseBtn"));
- m_browseBtn->SetToolTip(wxT("Browse for the original Firmware"));
- m_browseBtn->SetHelpText(wxT("Browse for the original Firmware"));
- horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5);
-
- Layout();
-
-}
-
-wxString FirmwarePositionCtrl::getFirmwarePos()
-{
- return m_firmwarePos->GetValue();
-
-}
-
-void FirmwarePositionCtrl::setDefault()
-{
- m_firmwarePos->SetValue(gv->curfirmware);
-}
-
-void FirmwarePositionCtrl::OnBrowseBtn(wxCommandEvent& event)
-{
- wxString temp = wxFileSelector(
- wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex"));
-
- if (!temp.empty())
- {
- m_firmwarePos->SetValue(temp);
- }
-
-}
-
diff --git a/rbutil/rbutilCtrls.h b/rbutil/rbutilCtrls.h
deleted file mode 100644
index 7998dc69a4..0000000000
--- a/rbutil/rbutilCtrls.h
+++ /dev/null
@@ -1,286 +0,0 @@
-#ifndef RBUTILCTRLS_H_INCLUDED
-#define RBUTILCTRLS_H_INCLUDED
-
-#include "rbutil.h"
-
-
-class ImageCtrl: public wxControl
-{
-DECLARE_DYNAMIC_CLASS(ImageCtrl)
-DECLARE_EVENT_TABLE()
-
-public:
- // Constructors
- ImageCtrl() { }
- ImageCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER,
- const wxValidator& validator = wxDefaultValidator)
- {
- Create(parent, id, pos, size, style, validator);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER,
- const wxValidator& validator = wxDefaultValidator);
-
- // Event handlers
- void OnPaint(wxPaintEvent& event);
-
- wxSize DoGetBestSize() const ;
-
- void SetBitmap(wxBitmap bmp);
-
-protected:
- wxBitmap m_bitmap;
-
-};
-
-class ThemeCtrl: public wxPanel
-{
-DECLARE_DYNAMIC_CLASS(ThemeCtrl)
-DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DESC = 10001,
- ID_FILESIZE= 10002,
- ID_INSTALLCHECKBOX= 10003,
- ID_PREVIEW_BITMAP = 10004,
- ID_THEME_LST = 10005,
- ID_THEME_SELECT_ALL = 10006
- }; //End of Enum
-
-public:
- // Constructors
- ThemeCtrl() { Init(); }
- ThemeCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""))
- {
- Init();
- Create(parent, id, pos, size, style, title);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""));
-
- // Creates the controls and sizers
- void CreateControls();
- // Common initialization
- void Init();
- // Event handlers
- void OnThemesLst(wxCommandEvent& event);
- void OnSelectAll(wxCommandEvent& event);
- void OnCheckBox(wxCommandEvent& event);
-
- void setDevice(wxString device);
- wxArrayString getThemesToInstall();
-
-protected:
- void ThemePreview(void);
-
- wxString m_currentimage;
- wxString m_currentResolution;
-
- wxStaticText* m_desc;
- wxListBox* m_themeList;
- wxButton* m_selectAllThemes;
- wxStaticText* m_size;
- wxTextCtrl* m_themedesc;
- ImageCtrl* m_PreviewBitmap;
-
- wxArrayString m_Themes;
- wxArrayString m_Themes_path;
- wxArrayString m_Themes_size;
- wxArrayString m_Themes_image;
- wxArrayString m_Themes_desc;
-
-};
-
-class OkCancelCtrl: public wxPanel
-{
-DECLARE_DYNAMIC_CLASS(OkCancelCtrl)
-DECLARE_EVENT_TABLE()
-
-public:
- // Constructors
- OkCancelCtrl() { Init(); }
- OkCancelCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""))
- {
- Init();
- Create(parent, id, pos, size, style, title);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""));
-
- // Creates the controls and sizers
- void CreateControls();
- // Common initialization
- void Init() { }
-
-protected:
- wxButton* m_OkBtn;
- wxButton* m_CancelBtn;
-
-};
-
-class DeviceSelectorCtrl: public wxPanel
-{
-DECLARE_DYNAMIC_CLASS(DeviceSelectorCtrl)
-DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_DEVICE_CBX = 10001,
- ID_AUTODETECT_BTN= 10002,
- }; //End of Enum
-
-public:
- // Constructors
- DeviceSelectorCtrl() { }
- DeviceSelectorCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""))
- {
- Create(parent, id, pos, size, style, title);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""));
-
- // Creates the controls and sizers
- void CreateControls();
- // Event handlers
- void OnAutoDetect(wxCommandEvent& event);
- void OnComboBox(wxCommandEvent& event);
- // Accessors
- wxString getDevice();
- void setDefault();
-
- bool AutoDetect();
-
-protected:
- wxString m_currentDevice;
- wxComboBox* m_deviceCbx;
- wxStaticText* m_desc;
- wxButton* m_autodetectBtn;
-
-};
-
-
-class DevicePositionCtrl: public wxPanel
-{
-DECLARE_DYNAMIC_CLASS(DevicePositionCtrl)
-DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_BROWSE_BTN = 10003,
- }; //End of Enum
-
-public:
- // Constructors
- DevicePositionCtrl() { Init(); }
- DevicePositionCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""))
- {
- Init();
- Create(parent, id, pos, size, style, title);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""));
-
- // Creates the controls and sizers
- void CreateControls();
- // Common initialization
- void Init() { }
- // Event handlers
- void OnBrowseBtn(wxCommandEvent& event);
- // Accessors
- wxString getDevicePos();
-
- void setDefault();
-
-protected:
- wxTextCtrl* m_devicePos;
- wxStaticText* m_desc;
- wxButton* m_browseBtn;
-
-};
-
-
-class FirmwarePositionCtrl: public wxPanel
-{
-DECLARE_DYNAMIC_CLASS(FirmwarePositionCtrl)
-DECLARE_EVENT_TABLE()
-public:
-enum {
- ID_BROWSE_BTN = 10004,
- }; //End of Enum
-
-public:
- // Constructors
- FirmwarePositionCtrl() { Init(); }
- FirmwarePositionCtrl(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""))
- {
- Init();
- Create(parent, id, pos, size, style, title);
- }
- // Creation
- bool Create(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER|wxTAB_TRAVERSAL,
- const wxString title = wxT(""));
-
- // Creates the controls and sizers
- void CreateControls();
- // Common initialization
- void Init() { }
- // Event handlers
- void OnBrowseBtn(wxCommandEvent& event);
- // Accessors
- wxString getFirmwarePos();
- void setDefault();
-
-protected:
- wxTextCtrl* m_firmwarePos;
- wxStaticText* m_desc;
- wxButton* m_browseBtn;
-
-};
-
-
-
-#endif
-
diff --git a/rbutil/rbutilFrm.cpp b/rbutil/rbutilFrm.cpp
deleted file mode 100644
index 306f955d46..0000000000
--- a/rbutil/rbutilFrm.cpp
+++ /dev/null
@@ -1,1164 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutilFrm.cpp
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "rbutilFrm.h"
-#include "credits.h"
-
-#include "rbutilFrm_XPM.xpm"
-#include "icons/rbinstall_btn.h"
-#include "icons/remrb_btn.h"
-#include "icons/font_btn.h"
-#include "icons/bootloader_btn.h"
-#include "icons/rembootloader_btn.h"
-#include "icons/themes_btn.h"
-#include "icons/doom_btn.h"
-#include "icons/talkfile_btn.h"
-
-#include "rblogo.xpm"
-
-#include "bootloaders.h"
-#include "install_dialogs.h"
-
-
-
-//----------------------------------------------------------------------------
-// rbutilFrm
-//----------------------------------------------------------------------------
-
-BEGIN_EVENT_TABLE(rbutilFrm,wxFrame)
- EVT_BUTTON (ID_INSTALL_BTN, rbutilFrm::OnInstallBtn)
- EVT_BUTTON (ID_REMOVE_BTN, rbutilFrm::OnRemoveBtn)
- EVT_BUTTON (ID_FONT_BTN, rbutilFrm::OnFontBtn)
- EVT_BUTTON (ID_THEMES_BTN, rbutilFrm::OnThemesBtn)
- EVT_BUTTON (ID_BOOTLOADER_BTN, rbutilFrm::OnBootloaderBtn)
- EVT_BUTTON (ID_BOOTLOADERREMOVE_BTN, rbutilFrm::OnBootloaderRemoveBtn)
- EVT_BUTTON (ID_DOOM_BTN, rbutilFrm::OnDoomBtn)
- EVT_BUTTON (ID_TALK_BTN, rbutilFrm::OnTalkBtn)
-
- EVT_CLOSE(rbutilFrm::rbutilFrmClose)
- EVT_MENU(ID_FILE_EXIT, rbutilFrm::OnFileExit)
- EVT_MENU(ID_FILE_ABOUT, rbutilFrm::OnFileAbout)
- EVT_MENU(ID_FILE_WIPECACHE, rbutilFrm::OnFileWipeCache)
- EVT_MENU(ID_PORTABLE_INSTALL, rbutilFrm::OnPortableInstall)
-
- EVT_MENU(ID_FILE_PROXY, rbutilFrm::OnFileProxy)
-
- EVT_UPDATE_UI (ID_MANUAL, rbutilFrm::OnManualUpdate)
-
-END_EVENT_TABLE()
-
-rbutilFrm::rbutilFrm( wxWindow *parent, wxWindowID id, const wxString &title,
- const wxPoint &position, const wxSize& size, long style )
- : wxFrame( parent, id, title, position, size, style)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrm(...)"));
- CreateGUIControls();
- wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrm"));
-}
-
-rbutilFrm::~rbutilFrm() {}
-
-void rbutilFrm::CreateGUIControls(void)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::CreateGUIControls()"));
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(WxBoxSizer1);
- this->SetAutoLayout(TRUE);
-
- wxPanel* mainPanel = new wxPanel(this,wxID_ANY);
- WxBoxSizer1->Add(mainPanel,1,wxGROW|wxALL,0);
- wxBoxSizer* WxBoxSizer0 = new wxBoxSizer(wxVERTICAL);
- mainPanel->SetSizer(WxBoxSizer0);
- mainPanel->SetAutoLayout(TRUE);
-
- wxBitmap rockboxbmp(rblogo_xpm);
- ImageCtrl* rockboxbmpCtrl = new ImageCtrl(mainPanel,wxID_ANY);
- rockboxbmpCtrl->SetBitmap(rockboxbmp);
-
- WxBoxSizer0->Add(rockboxbmpCtrl,0,wxALIGN_CENTER_HORIZONTAL | wxALL,5);
-
- myDeviceSelector = new DeviceSelectorCtrl(mainPanel,wxID_ANY);
- myDeviceSelector->setDefault();
- myDeviceSelector->AutoDetect();
- WxBoxSizer0->Add(myDeviceSelector,0,wxGROW|wxALL,5);
-
-
- wxNotebook* tabwindow = new wxNotebook(mainPanel,wxID_ANY);
- WxBoxSizer0->Add(tabwindow,1,wxGROW|wxALL,5);
-
- wxPanel* installpage = new wxPanel(tabwindow,wxID_ANY);
- wxPanel* themepage = new wxPanel(tabwindow,wxID_ANY);
- wxPanel* uninstallpage = new wxPanel(tabwindow,wxID_ANY);
- wxPanel* manualpage = new wxPanel(tabwindow,wxID_ANY);
- tabwindow->AddPage(installpage,wxT("Installation"),true);
- tabwindow->AddPage(themepage,wxT("Extras"));
- tabwindow->AddPage(uninstallpage,wxT("Uninstallation"));
- tabwindow->AddPage(manualpage,wxT("Manual"));
-
- /*********************
- Install Page
- ***********************/
-
- wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxVERTICAL);
- installpage->SetSizer(WxBoxSizer2);
- installpage->SetAutoLayout(TRUE);
-
- wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(installpage,
- wxID_ANY, wxT("Please choose an option"));
- wxStaticBoxSizer* WxStaticBoxSizer3 =
- new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxHORIZONTAL);
- WxBoxSizer2->Add(WxStaticBoxSizer3,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- wxFlexGridSizer* WxFlexGridSizer1 = new wxFlexGridSizer(2,2,0,0);
- WxStaticBoxSizer3->Add(WxFlexGridSizer1,0,wxGROW | wxALL,0);
-
-
- wxBitmap BootloaderInstallButton (wxGetBitmapFromMemory(bootloader_btn_png,bootloader_btn_png_length));
- WxBitmapButton4 = new wxBitmapButton(installpage, ID_BOOTLOADER_BTN,
- BootloaderInstallButton, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator,wxT("Bootloader Installation"));
- WxBitmapButton4->SetToolTip(wxT("Click here to install the Rockbox bootloader"));
- WxFlexGridSizer1->Add(WxBitmapButton4, 0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxStaticText* WxStaticText5 = new wxStaticText(installpage, wxID_ANY,
- wxT("Bootloader installation\n\n"
- "Before Rockbox can be installed on your audio player, you "
- "may have to\ninstall a bootloader.\nThis is only necessary the first time "
- "Rockbox is installed."));
- WxFlexGridSizer1->Add(WxStaticText5, 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxBitmap WxBitmapButton1_BITMAP (wxGetBitmapFromMemory(rbinstall_btn_png,rbinstall_btn_png_length));
- WxBitmapButton1 = new wxBitmapButton(installpage, ID_INSTALL_BTN,
- WxBitmapButton1_BITMAP, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator,
- wxT("Rockbox Installation"));
- WxBitmapButton1->SetToolTip(wxT("Click here to install Rockbox"));
- WxFlexGridSizer1->Add(WxBitmapButton1,0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- WxStaticText2 = new wxStaticText(installpage, ID_WXSTATICTEXT2,
- wxT("Install Rockbox on your audio player"));
- WxFlexGridSizer1->Add(WxStaticText2,0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- /*********************+
- Extras Page
- ***********************/
-
- wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
- themepage->SetSizer(WxBoxSizer3);
- themepage->SetAutoLayout(TRUE);
-
- wxStaticBox* WxStaticBoxSizer4_StaticBoxObj = new wxStaticBox(themepage,
- wxID_ANY, wxT("Please choose an option"));
- wxStaticBoxSizer* WxStaticBoxSizer4 =
- new wxStaticBoxSizer(WxStaticBoxSizer4_StaticBoxObj,wxHORIZONTAL);
- WxBoxSizer3->Add(WxStaticBoxSizer4,1,wxALIGN_CENTER_HORIZONTAL |wxGROW| wxALL, 5);
-
- wxFlexGridSizer* WxFlexGridSizer2 = new wxFlexGridSizer(2,2,0,0);
- WxStaticBoxSizer4->Add(WxFlexGridSizer2,0,wxGROW | wxALL,0);
-
- wxBitmap FontInstallButton (wxGetBitmapFromMemory(font_btn_png,font_btn_png_length));
- WxBitmapButton3 = new wxBitmapButton(themepage, ID_FONT_BTN,
- FontInstallButton, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Font installation"));
- WxBitmapButton3->SetToolTip(wxT("Click here to install the most up to date "
- "Rockbox fonts."));
- WxFlexGridSizer2->Add(WxBitmapButton3, 0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxStaticText* WxStaticText4 = new wxStaticText(themepage, wxID_ANY,
- wxT("Install the Rockbox fonts package\n\n"
- "This step is needed for many Themes. You "
- "will not need to download these\nagain unless you uninstall "
- "Rockbox."));
- WxFlexGridSizer2->Add(WxStaticText4, 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxBitmap ThemesInstallButton (wxGetBitmapFromMemory(themes_btn_png,themes_btn_png_length));
- WxBitmapButton5 = new wxBitmapButton(themepage, ID_THEMES_BTN,
- ThemesInstallButton, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Theme installation"));
- WxBitmapButton5->SetToolTip(wxT("Click here to install themes for Rockbox."));
- WxFlexGridSizer2->Add(WxBitmapButton5, 0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxStaticText* WxStaticText6 = new wxStaticText(themepage, wxID_ANY,
- wxT("Install more Themes for Rockbox.\n\n"));
- WxFlexGridSizer2->Add(WxStaticText6, 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxBitmap DoomInstallButton (wxGetBitmapFromMemory(doom_btn_png,doom_btn_png_length));
- WxBitmapButton6 = new wxBitmapButton(themepage, ID_DOOM_BTN,
- DoomInstallButton, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Freedoom installation"));
- WxBitmapButton6->SetToolTip(wxT("Click here to install the freedoom wad files."));
- WxFlexGridSizer2->Add(WxBitmapButton6, 0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxStaticText* WxStaticText7 = new wxStaticText(themepage, wxID_ANY,
- wxT("Install the freedoom wad files.\n\n"));
- WxFlexGridSizer2->Add(WxStaticText7, 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxBitmap TalkInstallButton (wxGetBitmapFromMemory(talkfile_btn_png,talkfile_btn_png_length));
- WxBitmapButton7 = new wxBitmapButton(themepage, ID_TALK_BTN,
- TalkInstallButton, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Create Talk Files"));
- WxBitmapButton7->SetToolTip(wxT("Click here to create Talk files."));
- WxFlexGridSizer2->Add(WxBitmapButton7, 0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxStaticText* WxStaticText8 = new wxStaticText(themepage, wxID_ANY,
- wxT("Create Talk Files.\n\n"));
- WxFlexGridSizer2->Add(WxStaticText8, 0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
-
-
- /*********************+
- Uninstall Page
- ***********************/
-
- wxBoxSizer* WxBoxSizer4 = new wxBoxSizer(wxVERTICAL);
- uninstallpage->SetSizer(WxBoxSizer4);
- uninstallpage->SetAutoLayout(TRUE);
-
- wxStaticBox* WxStaticBoxSizer5_StaticBoxObj = new wxStaticBox(uninstallpage,
- wxID_ANY, wxT("Please choose an option"));
- wxStaticBoxSizer* WxStaticBoxSizer5 =
- new wxStaticBoxSizer(WxStaticBoxSizer5_StaticBoxObj,wxHORIZONTAL);
- WxBoxSizer4->Add(WxStaticBoxSizer5,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5);
-
- wxFlexGridSizer* WxFlexGridSizer3 = new wxFlexGridSizer(2,2,0,0);
- WxStaticBoxSizer5->Add(WxFlexGridSizer3,0,wxGROW | wxALL,0);
-
- wxBitmap WxBitmapButton2_BITMAP (wxGetBitmapFromMemory(remrb_btn_png,remrb_btn_png_length));
- WxBitmapButton2 = new wxBitmapButton(uninstallpage, ID_REMOVE_BTN,
- WxBitmapButton2_BITMAP, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Rockbox uninstallation"));
- WxBitmapButton2->SetToolTip(wxT("Click here to uninstall Rockbox"));
- WxFlexGridSizer3->Add(WxBitmapButton2,0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- WxStaticText3 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT3,
- wxT("Remove Rockbox from your audio player"));
- WxFlexGridSizer3->Add(WxStaticText3,0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- wxBitmap WxBitmapButton4_BITMAP (wxGetBitmapFromMemory(rembootloader_btn_png,rembootloader_btn_png_length));
- WxBitmapButton4 = new wxBitmapButton(uninstallpage, ID_BOOTLOADERREMOVE_BTN,
- WxBitmapButton4_BITMAP, wxPoint(0,0), wxSize(64,54),
- wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator,
- wxT("Bootloader uninstallation"));
- WxBitmapButton4->SetToolTip(wxT("Click here to uninstall the Bootloader"));
- WxFlexGridSizer3->Add(WxBitmapButton4,0,
- wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
- WxStaticText4 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT4,
- wxT("Remove Rockbox Bootloader from your audio player"));
- WxFlexGridSizer3->Add(WxStaticText4,0,
- wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5);
-
-
- /*****************
- * Manual Page
- ******************/
-
- wxBoxSizer* WxBoxSizer5 = new wxBoxSizer(wxVERTICAL);
- manualpage->SetSizer(WxBoxSizer5);
- manualpage->SetAutoLayout(TRUE);
-
- manuallink = new wxHyperlinkCtrl(manualpage,wxID_ANY,wxT("Rockbox PDF Manual"),wxT("http://www.rockbox.org"));
- WxBoxSizer5->Add(manuallink,1,wxGROW | wxALL, 5);
-
- manual =new wxHtmlWindow(manualpage,ID_MANUAL);
- WxBoxSizer5->Add(manual,10,wxGROW | wxALL, 5);
-
-
- /**********
- ** rest of the controls
- **********/
-
- WxMenuBar1 = new wxMenuBar();
- wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0);
- WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, wxT("&File"));
-
- ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_WIPECACHE,
- wxT("&Empty local download cache"), wxT(""), wxITEM_NORMAL);
- if (! gv->portable )
- {
- ID_FILE_MENU_Mnu_Obj->Append(ID_PORTABLE_INSTALL,
- wxT("&Install Rockbox Utility on device"), wxT(""), wxITEM_NORMAL);
- }
- ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_PROXY, wxT("Set &Proxy"), wxT(""),
- wxITEM_NORMAL);
- ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_ABOUT, wxT("&About"), wxT(""),
- wxITEM_NORMAL);
- ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_EXIT, wxT("E&xit\tCtrl+X"), wxT(""),
- wxITEM_NORMAL);
-
- this->SetMenuBar(WxMenuBar1);
- Layout();
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
- if (gv->portable)
- {
- this->SetTitle(wxT("Rockbox Utility (portable)"));
- } else
- {
- this->SetTitle(wxT("Rockbox Utility"));
- }
- this->Center();
- wxIcon rbutilFrm_ICON (rbutilFrm_XPM);
- this->SetIcon(rbutilFrm_XPM);
- this->SetToolTip(wxT("Install Rockbox"));
-
- wxLogVerbose(wxT("=== end rbutilFrm::CreateGUIControls"));
-}
-
-void rbutilFrm::OnManualUpdate(wxUpdateUIEvent& event)
-{
- wxString tmp = wxT("/rockbox-") + gv->curplat;
-
- int index = GetDeviceId(false);
- if(index < 0) {
- curManualDevice = tmp;
- wxString pdflink;
- pdflink = gv->manual_url;
- manuallink->SetURL(pdflink);
- manual->SetPage(wxT("<p><b>no device selected</b> &mdash; "
- "You can find an overview of available manuals at "
- "<a href='http://www.rockbox.org/manual.shtml'>"
- "http://www.rockbox.org/manual.shtml</a></p>"));
- return;
- }
-
- if(gv->plat_manualname[index] != wxT(""))
- tmp = wxT("/") + gv->plat_manualname[index];
-
- if( tmp == curManualDevice)
- return;
-
- curManualDevice = tmp;
-
- // construct link to pdf
- wxString pdflink;
- pdflink = gv->manual_url + tmp + wxT(".pdf");
- manuallink->SetURL(pdflink);
-
- // construct link to html
- wxString htmllink;
- htmllink = gv->manual_url + tmp + wxT("/rockbox-build.html");
- if(gv->proxy_url == wxT(""))
- if(manual->LoadPage(htmllink)) return;
- manual->SetPage(wxT("<p>unable to display manual &mdash;"
- "please use the PDF link above</p>"));
-
-
-}
-
-
-void rbutilFrm::OnFileProxy(wxCommandEvent& event)
-{
-
- wxTextEntryDialog proxydlg(this,wxT("Please enter your Proxy in the Format: URL:PORT"),wxT("Proxy Configuration"), gv->proxy_url);
-
- if(proxydlg.ShowModal() == wxID_OK)
- {
- gv->proxy_url = proxydlg.GetValue();
- }
-
-}
-
-
-void rbutilFrm::rbutilFrmClose(wxCloseEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrmClose(event)"));
- Destroy();
- wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrmClose"));
-}
-
-
-
-/*
- * OnFileExit
- */
-void rbutilFrm::OnFileExit(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::OnFileExit(event)"));
- Close();
- wxLogVerbose(wxT("=== end rbutilFrm::OnFileExit"));
-}
-
-// The routines this code uses are in the wxWidgets documentation, but
-// not yet the library (2.7.0-1). This code can be re-enabled later.
-
-void rbutilFrm::OnFileAbout(wxCommandEvent& event)
-{
-/*
- wxAboutDialogInfo *info = new wxAboutDialogInfo();
-
- info->SetName(wxT(RBUTIL_FULLNAME));
- info->SetVersion(wxT(RBUTIL_VERSION));
- info->SetCopyright(wxT(RBUTIL_COPYRIGHT));
- info->SetDescription(wxT(RBUTIL_DESCRIPTION));
- info->SetWebSite(wxT(RBUTIL_WEBSITE));
-
- long i = 0;
- while (rbutil_developers[i] != "")
- {
- info->AddDeveloper(wxT(rbutil_developers[i++]));
- }
-
- wxAboutBox(*info);
- delete info;
-*/
-
- AboutDlg(this).ShowModal();
-}
-
-void rbutilFrm::OnFileWipeCache(wxCommandEvent& event)
-{
- wxString cacheloc, datadir;
-
- datadir = gv->stdpaths->GetUserDataDir();
- if (datadir == wxT(""))
- {
- ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete "
- "cache."), wxT("Delete download cache.") );
- return;
- }
-
- cacheloc = datadir + wxT("" PATH_SEP "download");
-
- if (! rm_rf(cacheloc) )
- {
- wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.")
- , wxT("Cache deletion"), wxOK |wxICON_INFORMATION);
- msg->ShowModal();
- delete msg;
- }
- else {
- MESG_DIALOG(wxT("Errors occured deleting the local download cache."));
- }
-
- wxMkdir(cacheloc, 0777);
-}
-
-void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderRemoveBtn(event)"));
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- wxString bootloadermethod = gv->plat_bootloadermethod[index];
-
- if(!gv->plat_needsbootloader[index])
- {
- WARN_DIALOG(wxT("This Device doesnt need a Bootloader"),
- wxT("Bootloader"));
- return;
- }
-
- // really deinstall ?
- wxMessageDialog msg(this,wxT("Do you really want to deinstall the Bootloader ?"),wxT("Bootloader deinstallation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
-
- if(bootloadermethod == wxT("ipodpatcher"))
- {
- wxString bootloadername = wxT("bootloader-");
- bootloadername.Append(gv->plat_bootloadername[index] );
- if(ipodpatcher(BOOTLOADER_REM,bootloadername))
- {
- MESG_DIALOG(wxT("The Bootloader has been uninstalled.") );
- }
- else
- {
- MESG_DIALOG(wxT("The Uninstallation failed.") );
- }
- }
- else if(bootloadermethod == wxT("sansapatcher"))
- {
- if(sansapatcher(BOOTLOADER_REM,gv->plat_bootloadername[index]))
- {
- MESG_DIALOG(wxT("The Bootloader has been uninstalled.") );
- }
- else
- {
- MESG_DIALOG(wxT("The Uninstallation failed.") );
- }
- }
- else if(bootloadermethod== wxT("gigabeatf"))
- {
-
- if(gigabeatf(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir))
- {
- MESG_DIALOG(wxT("The Bootloader has been uninstalled."));
- }
- else
- MESG_DIALOG(wxT("The Uninstallation failed.") );
- }
- else if(bootloadermethod == wxT("iaudio") )
- {
- MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n"
- "you need to download and install an Original Firmware from the Manufacturer."));
- }
- else if(bootloadermethod == wxT("fwpatcher"))
- {
- MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n"
- "you need to download and install an original Firmware from the Manufacturer.\n"
- "To do this, you need to boot into the original Firmware."));
- }
- else if(bootloadermethod == wxT("h10"))
- {
- if(h10(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir))
- {
- MESG_DIALOG(wxT("The Bootloader has been uninstalled."));
- }
- else
- MESG_DIALOG(wxT("The Uninstallation failed.") );
- }
- else
- {
- MESG_DIALOG(wxT("Unsupported Bootloader Uninstall method.") );
- }
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderRemoveBtn"));
-}
-
-void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderBtn(event)"));
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- wxString bootloadermethod = gv->plat_bootloadermethod[index];
-
- if(!gv->plat_needsbootloader[index])
- {
- WARN_DIALOG(wxT("This Device doesnt need a Bootloader"),
- wxT("Bootloader"));
- return;
- }
-
- // Bootloader dialog
- if(bootloadermethod != wxT("ipodpatcher") && bootloadermethod != wxT("sansapatcher") )
- {
- bootloaderInstallDlg dialog(NULL, wxID_ANY,wxT("Bootloader Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
- }
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to install the Bootloader ?"),wxT("Bootloader installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
-
- if(bootloadermethod == wxT("ipodpatcher"))
- {
- wxString bootloadername = wxT("bootloader-");
- bootloadername.Append(gv->plat_bootloadername[index] );
- if(ipodpatcher(BOOTLOADER_ADD,bootloadername))
- {
- MESG_DIALOG(wxT("The Bootloader has been installed on your device.") );
- }
- else
- {
- MESG_DIALOG(wxT("The installation has failed.") );
- }
- }
- else if(bootloadermethod == wxT("sansapatcher"))
- {
- if(sansapatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index]))
- {
- MESG_DIALOG(wxT("The Bootloader has been installed on your device.") );
- }
- else
- {
- MESG_DIALOG(wxT("The installation has failed.") );
- }
-
- }
- else if(bootloadermethod== wxT("gigabeatf"))
- {
-
- if(gigabeatf(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir))
- {
- MESG_DIALOG(wxT("The Bootloader has been installed on your device."));
- }
- else
- MESG_DIALOG(wxT("The installation has failed.") );
- }
- else if(bootloadermethod == wxT("iaudio") )
- {
- if(iaudiox5(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir))
- {
- MESG_DIALOG(wxT("The Bootloader has been installed on your device.\n"
- "Now turn OFF your Device, unplug USB,and insert Charger\n"
- "Your Device will automatically upgrade the flash with the Rockbox bootloader"));
- }
- else
- MESG_DIALOG(wxT("The installation has failed.") );
- }
- else if(bootloadermethod == wxT("fwpatcher"))
- {
- if(fwpatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir,gv->curfirmware))
- {
- MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n"
- "Now use the Firmware upgrade option of your Device\n"));
- }
- else
- MESG_DIALOG(wxT("The installation has failed.") );
- }
- else if(bootloadermethod == wxT("h10"))
- {
- if(h10(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir))
- {
- MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n"));
- }
- else
- MESG_DIALOG(wxT("The installation has failed.") );
- }
- else
- {
- MESG_DIALOG(wxT("Unsupported Bootloader Install method.") );
- }
-
-
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderBtn"));
-
-}
-
-void rbutilFrm::OnInstallBtn(wxCommandEvent& event)
-{
- wxString src, dest, buf;
- wxDateTime date;
- wxTimeSpan day(24);
- wxLogVerbose(wxT("=== begin rbutilFrm::OnInstallBtn(event)"));
- wxFileSystem fs;
- wxFileConfig* buildinfo;
- wxDateSpan oneday;
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- // rockbox install dialog
- rockboxInstallDlg dialog(NULL, wxID_ANY,
- wxT("Rockbox Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install
- wxMessageDialog msg(this,wxT("Do you really want to install Rockbox ?"),wxT("rockbox installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
-
- switch (gv->curbuild)
- {
- case BUILD_RELEASE:
- // This is a URL - don't use PATH_SEP
- src = gv->download_url + gv->prog_name + wxT("-")
- + gv->last_release + wxT("-") + gv->curplat + wxT(".zip");
- dest = gv->stdpaths->GetUserDataDir() + wxT("download" PATH_SEP)
- + gv->prog_name + wxT("-") + gv->last_release + wxT("-")
- + gv->curplat + wxT(".zip");
- break;
- case BUILD_DAILY:
- dest = gv->stdpaths->GetUserDataDir()
- + PATH_SEP + wxT("download") + PATH_SEP + wxT("build-info");
- if (DownloadURL(gv->server_conf_url, dest)) {
- WARN_DIALOG(wxT("Unable to download build status."),
- wxT("Install"));
- buf = wxT("");
- } else
- {
- buildinfo = new wxFileConfig(wxEmptyString,
- wxEmptyString, dest);
- buf = buildinfo->Read(wxT("/dailies/date"));
- buildinfo->DeleteAll();
-
- if (buf.Len() != 8) {
- dest = wxT("Invalid build date: ") + buf;
- WARN_DIALOG(dest, wxT("Install"));
- buf = wxT("");
- }
- }
-
- if (buf == wxT("")) {
- WARN_DIALOG(wxT("Can't get date of latest build from "
- "server. Using yesterday's date."), wxT("Install") );
- date = wxDateTime::Now();
- date.Subtract(oneday.Day());
- buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC
- }
-
- src = gv->daily_url + gv->curplat + wxT("/") + gv->prog_name
- + wxT("-") + gv->curplat + wxT("-") + buf + wxT(".zip");
-
- dest = gv->stdpaths->GetUserDataDir() + PATH_SEP wxT("download")
- + gv->prog_name + wxT("-") + gv->curplat + wxT("-")
- + buf + wxT(".zip");
- break;
- case BUILD_BLEEDING:
- src = gv->bleeding_url + gv->curplat + wxT("/")
- + gv->prog_name + wxT(".zip");
- dest = gv->stdpaths->GetUserDataDir()
- + PATH_SEP wxT("download") PATH_SEP
- + gv->prog_name + wxT(".zip");
- break;
- default:
- ERR_DIALOG(wxT("Something seriously odd has happened."),
- wxT("Install"));
- return;
- break;
- }
-
- if (gv->nocache || ( ! wxFileExists(dest) ) )
- {
- if ( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ")+src, wxT("Install"));
- return;
- }
- }
-
- if ( !UnzipFile(dest, gv->curdestdir, true) )
- {
- wxMessageDialog* msg = new wxMessageDialog(this, wxT("Rockbox has been installed on your device.")
- ,wxT("Installation"), wxOK |wxICON_INFORMATION);
- msg->ShowModal();
- delete msg;
- } else
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to unzip ")+dest, wxT("Install"));
- }
-
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnInstallBtn"));
-}
-
-void rbutilFrm::OnFontBtn(wxCommandEvent& event)
-{
- wxString src, dest, buf;
- wxDateTime date;
- wxTimeSpan day(24);
- wxLogVerbose(wxT("=== begin rbutilFrm::OnFontBtn(event)"));
- wxFileSystem fs;
- wxFileConfig* buildinfo;
- wxDateSpan oneday;
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- // font install dialog
- fontInstallDlg dialog(NULL, wxID_ANY,
- wxT("Font Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to install the Fonts ?"),wxT("Font installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
-
- buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox");
- if (! wxDirExists(buf) )
- {
- WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf
- + wxT(" - install Rockbox first."),
- wxT("Can't install fonts") );
- return;
- }
-
- dest = gv->stdpaths->GetUserDataDir()
- + wxT( "" PATH_SEP "download" PATH_SEP "build-info");
- if (DownloadURL(gv->server_conf_url, dest))
- {
- WARN_DIALOG(wxT("Unable to download build status."),
- wxT("Font Install"));
- buf = wxT("");
- } else
- {
- buildinfo = new wxFileConfig(wxEmptyString,
- wxEmptyString, dest);
- buf = buildinfo->Read(wxT("/dailies/date"));
- buildinfo->DeleteAll();
-
- if (buf.Len() != 8) {
- WARN_DIALOG(wxT("Invalid build date: ") + buf, wxT("Font Install"));
- buf = wxT("");
- }
- }
-
- if (buf == wxT("")) {
- WARN_DIALOG(wxT("Can't get date of latest build from "
- "server. Using yesterday's date."),
- wxT("Font Install") );
- date = wxDateTime::Now();
- date.Subtract(oneday.Day());
- buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC
- }
-
- src = gv->font_url + buf + wxT(".zip");
-
- dest = gv->stdpaths->GetUserDataDir() + wxT( "" PATH_SEP "download"
- PATH_SEP "rockbox-fonts-") + buf + wxT(".zip");
-
- if ( ! wxFileExists(dest) )
- {
- if ( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src, wxT("Font Install"));
- return;
- }
- }
-
- if ( !UnzipFile(dest, gv->curdestdir, true) )
- {
- wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Rockbox fonts have been installed on your device.")
- ,wxT("Installation"), wxOK |wxICON_INFORMATION);
- msg->ShowModal();
- delete msg;
- } else
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Font Install"));
- }
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnFontBtn"));
-}
-
-void rbutilFrm::OnDoomBtn(wxCommandEvent& event)
-{
- wxString src, dest, buf;
- wxLogVerbose(wxT("=== begin rbutilFrm::OnDoomBtn(event)"));
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- // font install dialog, reused
- fontInstallDlg dialog(NULL, wxID_ANY,
- wxT("Freedoom wad file Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to install the Freedoom wads ?"),wxT("Freedoom installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
- buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox");
- if (! wxDirExists(buf) )
- {
- WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf
- + wxT(" - install Rockbox first."),
- wxT("Can't install freedoom wads") );
- return;
- }
-
- src = gv->doom_url;
-
- dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP
- "rockdoom.zip");
-
- if ( ! wxFileExists(dest) )
- {
- if ( DownloadURL(src, dest) )
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to download ") + src,
- wxT("Freedoom Install"));
- return;
- }
- }
-
- if ( !UnzipFile(dest, gv->curdestdir, true) )
- {
- wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Freedoom wads have been installed on your device.")
- ,wxT("Installation"), wxOK |wxICON_INFORMATION);
- msg->ShowModal();
- delete msg;
- } else
- {
- wxRemoveFile(dest);
- ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Freedoom Install"));
- }
-
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnDoomBtn"));
-}
-
-
-void rbutilFrm::OnThemesBtn(wxCommandEvent& event)
-{
- wxString src, dest, buf;
- wxLogVerbose(wxT("=== begin rbutilFrm::OnThemesBtn(event)"));
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- // Theme install dialog
- themesInstallDlg dialog(NULL, wxID_ANY,
- wxT("Theme Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to install the selected Themes ?"),wxT("Theme installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
- bool success=true;
- for(unsigned int i=0 ;i < gv->themesToInstall.GetCount();i++)
- {
- if(!InstallTheme(gv->themesToInstall[i]))
- {
- MESG_DIALOG(wxT("The Themes installation has failed") );
- success=false;
- break;
- }
- }
- if(success)
- {
- MESG_DIALOG(wxT("The Theme installation completed successfully.") );
- }
-
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnThemesBtn(event)"));
-}
-
-
-void rbutilFrm::OnRemoveBtn(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::OnRemoveBtn(event)"));
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- // Rockbox deinstall dialog
- rockboxDeInstallDlg dialog(NULL, wxID_ANY,
- wxT("Rockbox Deinstallation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to deinstall Rockbox ?"),wxT("Rockbox deinstallation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
-
- if (Uninstall(gv->curdestdir, gv->curisfull) )
- {
- MESG_DIALOG(
- wxT("The uninstallation wizard was cancelled or completed with "
- "some errors.") );
- } else {
- wxMessageDialog* msg = new wxMessageDialog(this, wxT("The uninstall wizard completed successfully\n"
- "Depending on which Device you own, you also have to uninstall the Bootloader")
- ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION);
- msg->ShowModal();
- delete msg;
- }
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnRemoveBtn"));
-}
-
-void rbutilFrm::OnPortableInstall(wxCommandEvent& event)
-{
- wxString src, dest, buf;
- wxLogVerbose(wxT("=== begin rbutilFrm::OnPortableInstall(event)"));
- wxFileSystem fs;
- wxDateSpan oneday;
-
- int index = GetDeviceId(true);
- if(index < 0)
- return;
-
- //portable install dialog ( reused font dialog)
- fontInstallDlg dialog(NULL, wxID_ANY,
- wxT("Rockbox Utility Portable Installation"));
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want a portable install of rbutil ?"),wxT("rbutil installation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
- if ( InstallRbutil(gv->curdestdir) )
- {
- MESG_DIALOG(wxT("The Rockbox Utility has been installed on your device."));
-
- } else
- {
- ERR_DIALOG(wxT("Installation failed"), wxT("Portable Install"));
- }
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnUnstallPortable"));
-}
-
-void rbutilFrm::OnTalkBtn(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin rbutilFrm::OnTalkBtn(event)"));
-
- TalkFileCreator talk;
-
- talkInstallDlg dialog(&talk,NULL,wxID_ANY);
-
- if (dialog.ShowModal() != wxID_OK)
- return;
-
- // really install ?
- wxMessageDialog msg(this,wxT("Do you really want to create Talkfiles ?"),wxT("Talk file creation"),wxOK|wxCANCEL);
- if(msg.ShowModal() != wxID_OK )
- return;
-
- if(talk.createTalkFiles())
- {
- MESG_DIALOG(wxT("Talk files have been successfully created."));
- }
- else
- {
- ERR_DIALOG(wxT("Talkfile creation failed"), wxT("Talk file creation"));
- }
-
- wxLogVerbose(wxT("=== end rbutilFrm::OnTalkBtn"));
-}
-
-int rbutilFrm::GetDeviceId(bool detect)
-{
- int index = gv->plat_id.Index(gv->curplat);
- if(index < 0 && detect)
- {
- if( wxMessageBox(wxT("No device selected. Do you want to autodetect "
- "the device?"),
- wxT("Warning"), wxYES_NO ) == wxYES )
- {
- myDeviceSelector->AutoDetect();
- index = gv->plat_id.Index(gv->curplat);
- if(index < 0)
- {
- WARN_DIALOG( wxT("Aborting"), wxT("Auto detection failed") );
- return index;
- }
- else
- {
- if( wxMessageBox(wxT("Found ") + gv->plat_name[index] +
- wxT(". Do you want to continue?"),
- wxT("Device found"), wxYES_NO ) == wxYES )
- return index;
- else
- return -1;
- }
- }
- else
- {
- return -1;
- }
- }
- return index;
-}
-
-AboutDlg::AboutDlg(rbutilFrm* parent)
- : wxDialog(parent, -1, wxT("About"), wxDefaultPosition, wxDefaultSize,
- wxDEFAULT_DIALOG_STYLE)
-{
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
- this->SetSizer(WxBoxSizer1);
- this->SetAutoLayout(TRUE);
-
- wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
-
- wxBitmap WxBitmap1 = wxBitmap(rbutilFrm_XPM);
- wxStaticBitmap* WxStaticBitmap1 = new wxStaticBitmap(this, wxID_ANY,
- WxBitmap1);
- WxBoxSizer2->Add(WxStaticBitmap1, 0, wxALL | wxCENTER, 5);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT(RBUTIL_FULLNAME), wxDefaultPosition, wxDefaultSize,
- wxALIGN_CENTER | wxST_NO_AUTORESIZE );
- WxBoxSizer2->Add(WxStaticText1, 0, wxALL | wxCENTER, 5);
- WxBoxSizer1->Add(WxBoxSizer2, 0, wxALL, 5);
-
- wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY,
- wxT(RBUTIL_VERSION "\n" RBUTIL_DESCRIPTION "\n\n" RBUTIL_COPYRIGHT));
- WxStaticText2->Wrap(400);
- WxBoxSizer1->Add(WxStaticText2, 0, wxALL, 5);
-
- wxHyperlinkCtrl* WxHyperlink1 = new wxHyperlinkCtrl(this, wxID_ANY,
- wxT(RBUTIL_WEBSITE), wxT(RBUTIL_WEBSITE) );
- WxBoxSizer1->Add(WxHyperlink1, 0, wxALL, 5);
-
- wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Contributors:"));
- wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1,
- wxVERTICAL);
- wxTextCtrl* WxTextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
- wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY);
-
- long i = 0;
- while ( rbutil_developers[i] != wxT(""))
- {
- WxTextCtrl1->AppendText(rbutil_developers[i++]);
- WxTextCtrl1->AppendText(wxT("\n"));
- }
-
- WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5);
- WxStaticBoxSizer2->Add(WxTextCtrl1, 1, wxGROW | wxALL, 0);
-
- wxStdDialogButtonSizer* WxStdDialogButtonSizer1 = new wxStdDialogButtonSizer();
- wxButton* WxOKButton = new wxButton(this, wxID_OK);
- WxStdDialogButtonSizer1->AddButton(WxOKButton);
- WxStdDialogButtonSizer1->Realize();
-
- WxBoxSizer1->Add(WxStdDialogButtonSizer1, 0, wxALL | wxCENTER, 5);
-
- GetSizer()->Fit(this);
- GetSizer()->SetSizeHints(this);
-
-//this->Center();
- this->Show();
-
-}
-
-AboutDlg::~AboutDlg()
-{
-}
diff --git a/rbutil/rbutilFrm.h b/rbutil/rbutilFrm.h
deleted file mode 100644
index 7341323bd9..0000000000
--- a/rbutil/rbutilFrm.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: rbutilFrm.h
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#ifndef __rbutilFrm_HPP_
-#define __rbutilFrm_HPP_
-
-#include <wx/wxprec.h>
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-#ifndef WX_PRECOMP
- #include <wx/wx.h>
-#endif
-
-#include <wx/menu.h>
-#include <wx/stattext.h>
-#include <wx/bmpbuttn.h>
-#include <wx/statbmp.h>
-#include <wx/panel.h>
-
-#include <wx/frame.h>
-#include <wx/valgen.h>
-//#include <wx/aboutdlg.h>
-#include <wx/richtext/richtextctrl.h>
-
-#include "rbutil.h"
-#include "rbutilCtrls.h"
-
-
-class rbutilFrm : public wxFrame
-{
-private:
- DECLARE_EVENT_TABLE()
-public:
- rbutilFrm( wxWindow *parent, wxWindowID id = 1,
- const wxString &title = wxT("Rockbox Utility"),
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxCAPTION | wxRESIZE_BORDER | wxSYSTEM_MENU |
- wxMINIMIZE_BOX|wxMAXIMIZE_BOX | wxCLOSE_BOX);
- virtual ~rbutilFrm();
-public:
- DeviceSelectorCtrl* myDeviceSelector;
- wxHyperlinkCtrl* manuallink;
- wxHtmlWindow* manual;
- wxString curManualDevice;
-
- wxMenuBar *WxMenuBar1;
- wxStaticText *WxStaticText3;
- wxBitmapButton *WxBitmapButton2;
- wxStaticText *WxStaticText2;
- wxBitmapButton *WxBitmapButton1;
- wxBitmapButton *WxBitmapButton3;
- wxBitmapButton *WxBitmapButton4;
- wxBitmapButton *WxBitmapButton5;
- wxBitmapButton *WxBitmapButton6;
- wxBitmapButton *WxBitmapButton7;
- wxFlexGridSizer *WxFlexGridSizer1;
- wxStaticBoxSizer *WxStaticBoxSizer3;
- wxStaticBitmap *WxStaticBitmap1;
- wxBoxSizer *WxBoxSizer2;
- wxPanel *WxPanel1;
- wxBoxSizer *WxBoxSizer1;
-public:
- enum {
- ID_FILE_MENU = 1033,
- ID_FILE_EXIT = 1034,
- ID_FILE_ABOUT = 1035,
- ID_FILE_WIPECACHE = 1036,
- ID_PORTABLE_INSTALL = 1037,
-
- ID_WXSTATICTEXT3 = 1032,
- ID_WXSTATICTEXT4 = 1032,
- ID_REMOVE_BTN = 1039,
- ID_BOOTLOADERREMOVE_BTN = 1038,
- ID_WXSTATICTEXT2 = 1029,
- ID_INSTALL_BTN = 1028,
- ID_WXSTATICBITMAP1 = 1053,
- ID_FONT_BTN = 1128,
- ID_THEMES_BTN = 1139,
- ID_DOOM_BTN = 1140,
- ID_TALK_BTN = 1141,
- ID_BOOTLOADER_BTN = 1129,
- ID_WXPANEL1 = 1064,
-
- ID_MANUAL = 1065,
- ID_FILE_PROXY = 1066,
-
- ID_DUMMY_VALUE_
- }; //End of Enum
-public:
- void rbutilFrmClose(wxCloseEvent& event);
- void CreateGUIControls(void);
- void OnFileExit(wxCommandEvent& event);
- void OnFileAbout(wxCommandEvent &event);
- void OnFileWipeCache(wxCommandEvent &event);
- void OnLocationBtn(wxCommandEvent& event);
- void OnInstallBtn(wxCommandEvent& event);
- void OnRemoveBtn(wxCommandEvent& event);
- void OnFontBtn(wxCommandEvent& event);
- void OnThemesBtn(wxCommandEvent& event);
- void OnBootloaderBtn(wxCommandEvent& event);
- void OnPortableInstall(wxCommandEvent& event);
- void OnBootloaderRemoveBtn(wxCommandEvent& event);
- void OnManualUpdate(wxUpdateUIEvent& event);
- void OnFileProxy(wxCommandEvent& event);
- void OnDoomBtn(wxCommandEvent& event);
- void OnTalkBtn(wxCommandEvent& event);
-
- int GetDeviceId(bool);
-
-};
-
-#endif
-
-
-
-
diff --git a/rbutil/rbutilFrm_XPM.xpm b/rbutil/rbutilFrm_XPM.xpm
deleted file mode 100644
index 84d3d52444..0000000000
--- a/rbutil/rbutilFrm_XPM.xpm
+++ /dev/null
@@ -1,666 +0,0 @@
-/* rbutilFrm XPM */
-static char *rbutilFrm_XPM[]={
-"32 32 630 2",
-" c None",
-" 0 c #F7F8FD",
-" 1 c #EBEEF5",
-" 2 c #E4E9F8",
-" 3 c #FAFCFE",
-" 4 c #FAFBFD",
-" 5 c #7085D8",
-" 6 c #204DC6",
-" 7 c #2350C7",
-" 8 c #7C95D6",
-" 9 c #F3F7FD",
-" a c #8C9ED8",
-" b c #1F4FD1",
-" c c #2153D3",
-" d c #1645BF",
-" e c #001F94",
-" f c #687AB7",
-" g c #FFFFFE",
-" h c #FCFCFD",
-" i c #FDFDFE",
-" j c #FEFEFE",
-" k c #F4F6FC",
-" l c #F5F7FC",
-" m c #DEE2F6",
-" n c #2B54CF",
-" o c #1B4ECF",
-" p c #1B4AC5",
-" q c #153DB6",
-" r c #062793",
-" s c #7788B7",
-" t c #D5D8E0",
-" u c #DCDCE5",
-" v c #E4E2EB",
-" w c #E5E2E9",
-" x c #F4F4F6",
-" y c #F7F6F9",
-" z c #F9F9FA",
-" A c #FEFEFF",
-" B c #C6CDF0",
-" C c #6C86D4",
-" D c #6989D4",
-" E c #BECFED",
-" F c #F9FAFE",
-" G c #FEFFFF",
-" H c #7F96D4",
-" I c #0532B3",
-" J c #1342BC",
-" K c #1A48C2",
-" L c #072BA3",
-" M c #394C9D",
-" N c #CCBEBC",
-" O c #D7D0D0",
-" P c #C4C4CE",
-" Q c #B7BCC6",
-" R c #B4B9C4",
-" S c #C3C6D0",
-" T c #D1D3DE",
-" U c #D8DBE4",
-" V c #DDDFE3",
-" W c #9EA7D4",
-" X c #3559C6",
-" Y c #194BC4",
-" Z c #1240B9",
-" & c #002397",
-"0 c #8191C7",
-"00 c #FDFEFE",
-"01 c #EEF1F9",
-"02 c #3048A1",
-"03 c #4B5B9A",
-"04 c #4059A0",
-"05 c #0B288B",
-"06 c #16338B",
-"07 c #A8ADBE",
-"08 c #EDC5B8",
-"09 c #E5BDAD",
-"0a c #DAB6A6",
-"0b c #D5B6A7",
-"0c c #BDB0B3",
-"0d c #AEB2C0",
-"0e c #C7CBD7",
-"0f c #D3D7DE",
-"0g c #97A8C8",
-"0h c #2E50B9",
-"0i c #1D4ECC",
-"0j c #184AC6",
-"0k c #173EB1",
-"0l c #08248F",
-"0m c #000A5E",
-"0n c #E0E0EB",
-"0o c #F2F2F7",
-"0p c #B7B4CC",
-"0q c #FFFBFF",
-"0r c #CED1E1",
-"0s c #6B7588",
-"0t c #6179B2",
-"0u c #8198CD",
-"0v c #97A3D6",
-"0w c #9DAADB",
-"0x c #A5AED1",
-"0y c #C9C6D4",
-"0z c #C5BEC3",
-"0A c #C5CACC",
-"0B c #C2C3C9",
-"0C c #C7C5CA",
-"0D c #627BBC",
-"0E c #204CCC",
-"0F c #1949C5",
-"0G c #1746C1",
-"0H c #1439AB",
-"0I c #072282",
-"0J c #080D53",
-"0K c #CFCEE5",
-"0L c #FAF9F9",
-"0M c #F5F0F1",
-"0N c #F7F9FD",
-"0O c #BCBFCC",
-"0P c #A9B4CB",
-"0Q c #5474C9",
-"0R c #6B6F83",
-"0S c #757679",
-"0T c #6B738C",
-"0U c #6B78A2",
-"0V c #6E81B2",
-"0W c #778CB9",
-"0X c #8E9DCC",
-"0Y c #A3B2DD",
-"0Z c #AFB8D6",
-"0& c #2C4395",
-"1 c #082887",
-"10 c #0E3095",
-"11 c #0F33A7",
-"12 c #0C2C9C",
-"13 c #071A67",
-"14 c #191955",
-"15 c #BEBDD9",
-"16 c #EEEDF0",
-"17 c #F9F8FB",
-"18 c #D1D8E8",
-"19 c #BBBEC3",
-"1a c #889FE5",
-"1b c #5C6994",
-"1c c #918B6C",
-"1d c #8C886D",
-"1e c #8F846F",
-"1f c #8F8471",
-"1g c #878274",
-"1h c #7E7C79",
-"1i c #7B7B7E",
-"1j c #5268AC",
-"1k c #688AD7",
-"1l c #798699",
-"1m c #959AAC",
-"1n c #9FA9C8",
-"1o c #495181",
-"1p c #0B1765",
-"1q c #131455",
-"1r c #161547",
-"1s c #ACACC5",
-"1t c #FBFAFB",
-"1u c #EBE8ED",
-"1v c #F7F8FF",
-"1w c #B8BAC4",
-"1x c #ACB5CB",
-"1y c #5474C4",
-"1z c #7E7B73",
-"1A c #93896C",
-"1B c #8A836C",
-"1C c #8B846E",
-"1D c #918870",
-"1E c #928D70",
-"1F c #958D71",
-"1G c #968D73",
-"1H c #4D6AB1",
-"1I c #8399C5",
-"1J c #C4C0B8",
-"1K c #F8F7F7",
-"1L c #EDF4FF",
-"1M c #B0ABAA",
-"1N c #353448",
-"1O c #16134E",
-"1P c #161638",
-"1Q c #C5C5CC",
-"1R c #EAE5EB",
-"1S c #FAFBFF",
-"1T c #D9DBED",
-"1U c #B6B6BA",
-"1V c #7F94D5",
-"1W c #576895",
-"1X c #98896B",
-"1Y c #96886C",
-"1Z c #95886B",
-"1& c #93896D",
-"2 c #8F8672",
-"20 c #8A8673",
-"21 c #948F6F",
-"22 c #768092",
-"23 c #5B7DD7",
-"24 c #B3B5B8",
-"25 c #D1CFD3",
-"26 c #F7FFFF",
-"27 c #C9D0DF",
-"28 c #A09088",
-"29 c #5B5255",
-"2a c #3B3852",
-"2b c #94949D",
-"2c c #F8F8F9",
-"2d c #EFEEF5",
-"2e c #F5F9FF",
-"2f c #B3B4C0",
-"2g c #A0A9B2",
-"2h c #4D78EB",
-"2i c #3C63D6",
-"2j c #5D72B4",
-"2k c #6576A3",
-"2l c #707B91",
-"2m c #827F86",
-"2n c #887F7B",
-"2o c #8B8071",
-"2p c #918871",
-"2q c #5873B6",
-"2r c #91A3D4",
-"2s c #B9B7B5",
-"2t c #EAF0F5",
-"2u c #E8F2FC",
-"2v c #B1AFBA",
-"2w c #84736E",
-"2x c #93807A",
-"2y c #665E65",
-"2z c #D8D9E2",
-"2A c #EAEAEF",
-"2B c #F8FAFE",
-"2C c #D4DEF0",
-"2D c #9C9C9F",
-"2E c #6D81BE",
-"2F c #436EE8",
-"2G c #5E87ED",
-"2H c #3867DA",
-"2I c #4069DB",
-"2J c #456CDF",
-"2K c #4261D2",
-"2L c #4663C3",
-"2M c #5871BC",
-"2N c #5C73B8",
-"2O c #5D80D7",
-"2P c #B2B6BB",
-"2Q c #C3C3CE",
-"2R c #FCFFFF",
-"2S c #CFD9E9",
-"2T c #9C8F8E",
-"2U c #7C6E66",
-"2V c #927C7C",
-"2W c #83819D",
-"2X c #FCFCFF",
-"2Y c #F9F6FA",
-"2Z c #ECEBF1",
-"2& c #FBFFFF",
-"3 c #B9BCC9",
-"30 c #AAB0C3",
-"31 c #4870EB",
-"32 c #2B5DE1",
-"33 c #4F72CE",
-"34 c #3C62CB",
-"35 c #4E73D6",
-"36 c #5777DA",
-"37 c #456ED4",
-"38 c #7393E1",
-"39 c #4D77F4",
-"3a c #3060F1",
-"3b c #7C94C8",
-"3c c #A8A6A6",
-"3d c #E6E9EF",
-"3e c #EDFAFF",
-"3f c #BBBDC7",
-"3g c #8C7A74",
-"3h c #827670",
-"3i c #90847E",
-"3j c #ECECF0",
-"3k c #ECE5EC",
-"3l c #DAE0EF",
-"3m c #ACB0B3",
-"3n c #869EDC",
-"3o c #577EDE",
-"3p c #B0C0E7",
-"3q c #EFF4FF",
-"3r c #E4EAFF",
-"3s c #9EC0FC",
-"3t c #3265E4",
-"3u c #3366E5",
-"3v c #4871DC",
-"3w c #3660DB",
-"3x c #5075E7",
-"3y c #8C9097",
-"3z c #B3B4B6",
-"3A c #D8E4F1",
-"3B c #A89A92",
-"3C c #837069",
-"3D c #91817A",
-"3E c #E0DDD8",
-"3F c #F8F5F6",
-"3G c #F6F2F2",
-"3H c #B9BCC7",
-"3I c #A8ACC0",
-"3J c #BBCCEC",
-"3K c #F8F9FA",
-"3L c #DCD3CD",
-"3M c #EEECEF",
-"3N c #D9D8D9",
-"3O c #E2E4DB",
-"3P c #A4BADE",
-"3Q c #3161E4",
-"3R c #5F85F4",
-"3S c #6387ED",
-"3T c #8597D5",
-"3U c #A4A8AA",
-"3V c #DEE2E9",
-"3W c #F4FFFF",
-"3X c #BEC3CC",
-"3Y c #8D7C6F",
-"3Z c #7A6D65",
-"3& c #A2928E",
-"4 c #FDFBFB",
-"40 c #FCFCFE",
-"41 c #D1D6EB",
-"42 c #F7FAFD",
-"43 c #B2B4C6",
-"44 c #D0D4E4",
-"45 c #F9FCFF",
-"46 c #E7EBF4",
-"47 c #C3C4CE",
-"48 c #B6B3C1",
-"49 c #989BA1",
-"4a c #E7E7E4",
-"4b c #E9ECF7",
-"4c c #3B61D1",
-"4d c #92A0D0",
-"4e c #C7CACC",
-"4f c #A0A6B2",
-"4g c #B2B4BA",
-"4h c #FAFFFF",
-"4i c #E2EAF6",
-"4j c #A9A3A4",
-"4k c #7F6F64",
-"4l c #85776E",
-"4m c #CAC4C0",
-"4n c #EAEDFA",
-"4o c #5A80EA",
-"4p c #2D64E7",
-"4q c #4778E8",
-"4r c #788FC7",
-"4s c #B4B7CA",
-"4t c #CBCCD7",
-"4u c #E7EAE9",
-"4v c #C6CDD5",
-"4w c #AEB3B9",
-"4x c #8A8C8B",
-"4y c #C0C5C5",
-"4z c #B8C4E3",
-"4A c #2859CF",
-"4B c #2855CD",
-"4C c #7989A5",
-"4D c #A4A69F",
-"4E c #D6DAE0",
-"4F c #CBD1DD",
-"4G c #938781",
-"4H c #84756D",
-"4I c #9B8985",
-"4J c #F6F3F2",
-"4K c #F7F9FE",
-"4L c #5C7CE7",
-"4M c #205CF1",
-"4N c #1C5DEA",
-"4O c #0641C7",
-"4P c #072DAA",
-"4Q c #8593C5",
-"4R c #B1B1B5",
-"4S c #BCC0C2",
-"4T c #F7FBFD",
-"4U c #E3E3E1",
-"4V c #C6BCA9",
-"4W c #AAB4CC",
-"4X c #4168D4",
-"4Y c #7AA1DF",
-"4Z c #9AB2E2",
-"4& c #A4ADBD",
-"5 c #BDB8BB",
-"50 c #E8F4FE",
-"51 c #B5B2B9",
-"52 c #82736C",
-"53 c #817770",
-"54 c #BFB4B2",
-"55 c #FFFEFE",
-"56 c #9FB3ED",
-"57 c #1857E7",
-"58 c #185ADE",
-"59 c #1656DD",
-"5a c #1244C2",
-"5b c #112D9F",
-"5c c #959EC7",
-"5d c #D0D1D3",
-"5e c #A7AFB2",
-"5f c #ACAEB5",
-"5g c #B5B2B6",
-"5h c #B0AEB5",
-"5i c #948C8B",
-"5j c #8990B2",
-"5k c #7792D9",
-"5l c #ABABB5",
-"5m c #BAB5B4",
-"5n c #8B95AE",
-"5o c #A8B1D8",
-"5p c #E7EEFF",
-"5q c #D7DEE7",
-"5r c #9E918A",
-"5s c #80736A",
-"5t c #898078",
-"5u c #EBE9E8",
-"5v c #EEF1FA",
-"5w c #3262E5",
-"5x c #1457E6",
-"5y c #1653D9",
-"5z c #1852D7",
-"5A c #1039BB",
-"5B c #2E46A6",
-"5C c #BDC4CB",
-"5D c #CECDD4",
-"5E c #AEB4BF",
-"5F c #A2A6B2",
-"5G c #A4A3A7",
-"5H c #ABADB5",
-"5I c #C1C1CF",
-"5J c #D4D0DE",
-"5K c #DBD8E5",
-"5L c #B7BAC3",
-"5M c #586DB4",
-"5N c #2A5BD4",
-"5O c #2457CF",
-"5P c #375FCF",
-"5Q c #6F7AB3",
-"5R c #8C7C77",
-"5S c #928274",
-"5T c #B4A6A2",
-"5U c #FDFDFD",
-"5V c #A6B3EA",
-"5W c #1037B9",
-"5X c #1C4CD1",
-"5Y c #1E53DC",
-"5Z c #1547CB",
-"5& c #1331A4",
-"6 c #7788BA",
-"60 c #CBCBD3",
-"61 c #C6C6D4",
-"62 c #BABDCA",
-"63 c #B5B9C7",
-"64 c #BABDC7",
-"65 c #AEB4C0",
-"66 c #C8BBC1",
-"67 c #C5BDC7",
-"68 c #CDCDD0",
-"69 c #6C7AB2",
-"6a c #204ED0",
-"6b c #1E53D9",
-"6c c #164BC8",
-"6d c #0C33B1",
-"6e c #001B87",
-"6f c #3F4877",
-"6g c #8A7971",
-"6h c #E2DDDA",
-"6i c #4B5DA9",
-"6j c #02126B",
-"6k c #0F2079",
-"6l c #152C8F",
-"6m c #0B2596",
-"6n c #3A4CA9",
-"6o c #CBCED8",
-"6p c #CFD2D5",
-"6q c #CAD2D9",
-"6r c #D1D1D8",
-"6s c #DBCECD",
-"6t c #C5C2CF",
-"6u c #C3C3D2",
-"6v c #CBC5CD",
-"6w c #D6D5DF",
-"6x c #A5AFC9",
-"6y c #2B4DB9",
-"6z c #1B50D9",
-"6A c #174AC5",
-"6B c #1547BF",
-"6C c #1636AA",
-"6D c #031D7B",
-"6E c #192066",
-"6F c #9A8F99",
-"6G c #FDFCFC",
-"6H c #6778B7",
-"6I c #001B72",
-"6J c #041E7A",
-"6K c #00166D",
-"6L c #000F66",
-"6M c #1D2364",
-"6N c #908886",
-"6O c #B4A89F",
-"6P c #C1B7B3",
-"6Q c #DDD6D4",
-"6R c #EBE2DB",
-"6S c #E2DFE4",
-"6T c #E7E7F3",
-"6U c #D4D6E2",
-"6V c #E9D2C8",
-"6W c #6A7AA7",
-"6X c #1549C7",
-"6Y c #184AC8",
-"6Z c #1545C2",
-"6& c #1544BD",
-"7 c #0F309F",
-"70 c #05196E",
-"71 c #231F64",
-"72 c #C6C1C9",
-"73 c #AAB6E3",
-"74 c #001D80",
-"75 c #102874",
-"76 c #27397E",
-"77 c #162769",
-"78 c #21274C",
-"79 c #393D43",
-"7a c #6F695C",
-"7b c #897C73",
-"7c c #7A6D69",
-"7d c #96827C",
-"7e c #AA958B",
-"7f c #BFB1AC",
-"7g c #DBCFC9",
-"7h c #DFD4D1",
-"7i c #344B90",
-"7j c #0B38B0",
-"7k c #1A46BF",
-"7l c #1A4AC3",
-"7m c #123FB6",
-"7n c #08288F",
-"7o c #08115A",
-"7p c #3E3B6F",
-"7q c #F7F7F7",
-"7r c #E1E6F7",
-"7s c #04228A",
-"7t c #131C4C",
-"7u c #74696C",
-"7v c #847675",
-"7w c #897872",
-"7x c #766B61",
-"7y c #6C625B",
-"7z c #675E57",
-"7A c #46463B",
-"7B c #595645",
-"7C c #645F4B",
-"7D c #7A6C60",
-"7E c #615249",
-"7F c #2D2E34",
-"7G c #0D1C65",
-"7H c #0D155F",
-"7I c #17236A",
-"7J c #172B7C",
-"7K c #0B2582",
-"7L c #081C6E",
-"7M c #11104A",
-"7N c #65678F",
-"7O c #B4C0E3",
-"7P c #4A5B97",
-"7Q c #6976AA",
-"7R c #8283A2",
-"7S c #807B88",
-"7T c #80767D",
-"7U c #9D8A84",
-"7V c #928075",
-"7W c #8E7D73",
-"7X c #746C61",
-"7Y c #605D4F",
-"7Z c #625E51",
-"7& c #594F48",
-"8 c #332F34",
-"80 c #1B1E58",
-"81 c #110C4C",
-"82 c #120D3F",
-"83 c #15103F",
-"84 c #16123D",
-"85 c #22225B",
-"86 c #8081A9",
-"87 c #F8FCFF",
-"88 c #E6EBF9",
-"89 c #D5DBEF",
-"8a c #D5DAE8",
-"8b c #E7E5E7",
-"8c c #EAE3DF",
-"8d c #D2CAC5",
-"8e c #BBACA8",
-"8f c #AA938F",
-"8g c #948079",
-"8h c #927D76",
-"8i c #9C857A",
-"8j c #766F73",
-"8k c #524F6B",
-"8l c #332F5D",
-"8m c #171656",
-"8n c #17154A",
-"8o c #1A1744",
-"8p c #282E71",
-"8q c #D3D5E3",
-"8r c #FBFAFA",
-"8s c #FBFAF9",
-"8t c #F0EDED",
-"8u c #DAD3CF",
-"8v c #C1B7AF",
-"8w c #968F8B",
-"8x c #7E736F",
-"8y c #8A7570",
-"8z c #55506E",
-"8A c #151C6A",
-"8B c #151964",
-"8C c #30378A",
-"8D c #EDEFF6",
-"8E c #F0F3F9",
-"8F c #9FA9C6",
-"8G c #9396B4",
-"8H c #455687",
-"8I c #071F7B",
-"8J c #00106C",
-"8K c #7C81B7",
-"8L c #F9FAFC",
-"8M c #F6F7FD",
-"8N c #EFF2F9",
-"8O c #B8C1DD",
-"8P c #939FCA",
-"8Q c #F7F7FB",
-" 0 1 2 3 ",
-" 4 5 6 7 8 9 ",
-" a b c d e f g h i j j k l j ",
-" m n o p q r s t u v w x y z g A B C D E F ",
-" G H I J K L M N O P Q R S T U V W X Y Z &0 00",
-" 0102030405060708090a0b0c0d0e0f0g0h0i0j0k0l0m0n",
-" 0o0p0q0r0s0t0u0v0w0x0y0z0A0B0C0D0E0F0G0H0I0J0K",
-" 0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0&1 101112131415",
-" j161718191a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s",
-" 1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q",
-" 1R1S1T1U1V1W1X1Y1Z1&2 202122232425262728292a2b j",
-" 2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z ",
-" j2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X ",
-" 2Y2Z2&3 303132333435363738393a3b3c3d3e3f3g3h3i3j ",
-" j3k 3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z2&3A3B3C3D3E ",
-" 3F3G G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3&4 ",
-" 4041423d434445464748494a4b4c4d4e4f4g4h4i4j4k4l4m ",
-" 4n4o4p4q4r4s4t4u4v4w4x4y 4z4A4B4C4D4E4h4F4G4H4I4J ",
-" 4K4L4M4N4O4P4Q4R4S 4T4U4V4W4X4Y4Z4&5 3K505152535455 ",
-" j565758595a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u ",
-" 5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U ",
-" 5V5W5X5Y5Z5&6 606162636465666768696a6b6c6d6e6f6g6h ",
-" 6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G ",
-" 6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6&7 707172 ",
-" 737475767778797a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q ",
-" 7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N j ",
-" A7O7P7Q7R7S7T7U7V7W7X7Y7Z7&8 8081828384848586 i ",
-" A 48788898a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q ",
-" j8r8s8t8u8v8w8x8y8z8A8B8C8D ",
-" 8E8F8G8H8I8J8K8L ",
-" A8M8N8O8P8Q ",
-" "};
-
diff --git a/rbutil/mksums.pl b/rbutil/rbutilqt/irivertools/mksums.pl
index 99786fe161..99786fe161 100755
--- a/rbutil/mksums.pl
+++ b/rbutil/rbutilqt/irivertools/mksums.pl
diff --git a/rbutil/talkfile.cpp b/rbutil/talkfile.cpp
deleted file mode 100644
index 345b327802..0000000000
--- a/rbutil/talkfile.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: tts.cpp
- *
- * Copyright (C) 2007 Dominik wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "talkfile.h"
-
-TalkFileCreator::TalkFileCreator()
-{
- m_supportedTTS.Add(wxT("espeak"));
- m_supportedTTSOpts.Add(wxT(""));
-
- m_supportedEnc.Add(wxT("lame"));
- m_supportedEncOpts.Add(wxT("--vbr-new -t --nores -S"));
-
-}
-
-bool TalkFileCreator::initEncoder()
-{
- if(::wxFileExists(m_EncExec))
- {
- return true;
- }
- else
- {
- return false;
- }
-}
-
-bool TalkFileCreator::initTTS()
-{
- if(::wxFileExists(m_TTSexec))
- {
- return true;
- }
- else
- {
- return false;
- }
-}
-
-bool TalkFileCreator::createTalkFiles()
-{
- if(!initTTS())
- {
- MESG_DIALOG(wxT("Init of TTS engine failed") );
- return false;
- }
- if(!initEncoder())
- {
- MESG_DIALOG(wxT("Init of encoder failed") );
- return false;
- }
-
- // enumerate the dirs
- wxDir talkdir(m_dir);
- TalkTraverser traverser(this);
- if(talkdir.Traverse(traverser) == (size_t)-1)
- return false;
- else
- return true;
-
-
-}
-
-bool TalkFileCreator::voice(wxString text,wxString wavfile)
-{
- if(m_curTTS == wxT("espeak"))
- {
- wxArrayString out;
- wxArrayString err;
- wxExecute(m_TTSexec+wxT(" ")+m_TTSOpts+wxT(" -w \"")+wavfile+wxT("\" \"")+text+wxT("\""),out,err);
- return true;
- }
- else
- {
- MESG_DIALOG(wxT("Unsupported TTS engine") );
- return false;
- }
-}
-
-bool TalkFileCreator::encode(wxString input,wxString output)
-{
- if(m_curEnc == wxT("lame"))
- {
- wxArrayString out;
- wxArrayString err;
- wxExecute(m_EncExec+wxT(" ")+m_EncOpts+wxT(" \"")+input+wxT("\" \"")+output+wxT("\""),out,err);
- return true;
- }
- else
- {
- MESG_DIALOG(wxT("Unsupported encoder") );
- return false;
- }
-
-}
-
-wxString TalkFileCreator::getTTsOpts(wxString ttsname)
-{
- int index = m_supportedTTS.Index(ttsname);
-
- return m_supportedTTSOpts[index];
-}
-
-wxString TalkFileCreator::getEncOpts(wxString encname)
-{
- int index = m_supportedEnc.Index(encname);
-
- return m_supportedEncOpts[index];
-}
-
-wxDirTraverseResult TalkTraverser::OnFile(const wxString& file)
-{
- if(file.EndsWith(wxT(".talk")) || file.EndsWith(wxT(".talk.wav")))
- {
- return wxDIR_CONTINUE;
- }
-
- wxFileName fname(file);
- wxString toSpeak;
- if(m_talkcreator->m_stripExtensions)
- {
- toSpeak = fname.GetName();
- }
- else
- {
- toSpeak = fname.GetName()+fname.GetExt();
- }
- wxString filename = file+ wxT(".talk");
- wxString wavname = filename + wxT(".wav");
-
- if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk)
- {
- if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav)
- {
- if(!m_talkcreator->voice(toSpeak,wavname))
- {
- return wxDIR_STOP;
- }
- }
- if(!m_talkcreator->encode(wavname,filename))
- {
- return wxDIR_STOP;
- }
- }
-
- if(m_talkcreator->m_removeWav)
- {
- wxRemoveFile(wavname);
- }
-
- return wxDIR_CONTINUE;
-}
-
-wxDirTraverseResult TalkTraverser::OnDir(const wxString& dirname)
-{
- wxFileName fname(dirname,wxEmptyString);
- wxArrayString dirs=fname.GetDirs();
- wxString toSpeak = dirs[dirs.GetCount()-1];
-
- wxString filename = dirname + wxT("" PATH_SEP "_dirname.talk");
- wxString wavname = filename + wxT(".wav");
-
- if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk)
- {
- if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav)
- {
- if(!m_talkcreator->voice(toSpeak,wavname))
- {
- return wxDIR_STOP;
- }
- }
- if(!m_talkcreator->encode(wavname,filename))
- {
- return wxDIR_STOP;
- }
- }
-
- if(m_talkcreator->m_removeWav)
- {
- wxRemoveFile(wavname);
- }
-
- if(!m_talkcreator->m_recursive)
- return wxDIR_IGNORE;
- else
- return wxDIR_CONTINUE;
-}
diff --git a/rbutil/talkfile.h b/rbutil/talkfile.h
deleted file mode 100644
index 9d6d28a2fe..0000000000
--- a/rbutil/talkfile.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: tts.h
- *
- * Copyright (C) 2007 Dominik wenger
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-
-#ifndef _TALKFILE_H
-#define _TALKFILE_H
-
-#include "rbutil.h"
-
-class TalkFileCreator
-{
- friend class TalkTraverser;
-public:
- TalkFileCreator();
- ~TalkFileCreator() {};
-
- bool createTalkFiles();
-
- void setTTSexe(wxString exe){m_TTSexec=exe;}
- void setEncexe(wxString exe){m_EncExec=exe;}
-
- wxArrayString getSupportedTTS(){return m_supportedTTS;}
- void setTTsType(wxString tts) {m_curTTS = tts; }
- wxString getTTsOpts(wxString ttsname);
- void setTTsOpts(wxString opts) {m_TTSOpts=opts;}
-
- wxArrayString getSupportedEnc(){return m_supportedEnc;}
- void setEncType(wxString enc) {m_curEnc =enc; }
- wxString getEncOpts(wxString encname);
- void setEncOpts(wxString opts) {m_EncOpts=opts;}
-
- void setDir(wxString dir){m_dir = dir; }
-
- void setOverwriteTalk(bool ov) {m_overwriteTalk = ov;}
- void setOverwriteWav(bool ov) {m_overwriteWav = ov;}
- void setRemoveWav(bool ov) {m_removeWav = ov;}
- void setRecursive(bool ov) {m_recursive = ov;}
- void setStripExtensions(bool ov) {m_stripExtensions = ov;}
-
-private:
-
- bool initTTS();
- bool stopTTS();
- bool initEncoder();
-
- bool encode(wxString input,wxString output);
- bool voice(wxString text,wxString wavfile);
-
- wxString m_dir;
-
- wxString m_curTTS;
- wxString m_TTSexec;
- wxArrayString m_supportedTTS;
- wxArrayString m_supportedTTSOpts;
- wxString m_TTSOpts;
-
- wxString m_curEnc;
- wxString m_EncExec;
- wxArrayString m_supportedEnc;
- wxArrayString m_supportedEncOpts;
- wxString m_EncOpts;
-
- bool m_overwriteTalk;
- bool m_overwriteWav;
- bool m_removeWav;
- bool m_recursive;
- bool m_stripExtensions;
-};
-
-
-class TalkTraverser: public wxDirTraverser
-{
- public:
- TalkTraverser(TalkFileCreator* talkcreator) : m_talkcreator(talkcreator) { }
-
- virtual wxDirTraverseResult OnFile(const wxString& filename);
-
- virtual wxDirTraverseResult OnDir(const wxString& dirname);
-
- private:
- TalkFileCreator* m_talkcreator;
-};
-
-#endif
diff --git a/rbutil/wizard.xpm b/rbutil/wizard.xpm
deleted file mode 100644
index d19402a414..0000000000
--- a/rbutil/wizard.xpm
+++ /dev/null
@@ -1,689 +0,0 @@
-/* XPM */
-static char * wizard_xpm[] = {
-"200 430 256 2",
-" c #040B0E",
-". c #0B080D",
-"+ c #090B07",
-"@ c #030D15",
-"# c #140F0D",
-"$ c #0D1214",
-"% c #071515",
-"& c #0A1319",
-"* c #181008",
-"= c #09141E",
-"- c #081424",
-"; c #101411",
-"> c #14140B",
-", c #061630",
-"' c #1C1406",
-") c #0F1B1E",
-"! c #061A3D",
-"~ c #151A1F",
-"{ c #101C26",
-"] c #161D16",
-"^ c #1B1B16",
-"/ c #211911",
-"( c #131D2F",
-"_ c #251B0C",
-": c #0F202F",
-"< c #171C31",
-"[ c #142225",
-"} c #13222B",
-"| c #10223D",
-"1 c #0A234C",
-"2 c #0F214C",
-"3 c #2B1F0B",
-"4 c #0E2447",
-"5 c #172832",
-"6 c #152838",
-"7 c #11294B",
-"8 c #18264A",
-"9 c #122755",
-"0 c #1A2B2E",
-"a c #1D283B",
-"b c #0E2B54",
-"c c #1E2D24",
-"d c #312711",
-"e c #102D4C",
-"f c #372511",
-"g c #272A2D",
-"h c #292B25",
-"i c #172E46",
-"j c #1C2F38",
-"k c #1A2F3F",
-"l c #34291C",
-"m c #3C2B0F",
-"n c #342C27",
-"o c #422B11",
-"p c #1C3645",
-"q c #0F3864",
-"r c #223448",
-"s c #18395A",
-"t c #223942",
-"u c #233A3C",
-"v c #1D3A52",
-"w c #40341E",
-"x c #4A3113",
-"y c #32373B",
-"z c #463415",
-"A c #2C3C31",
-"B c #203D4D",
-"C c #353831",
-"D c #4C3811",
-"E c #4D3A0C",
-"F c #164770",
-"G c #244558",
-"H c #0E4A81",
-"I c #1E486B",
-"J c #064E8D",
-"K c #2A484E",
-"L c #024F96",
-"M c #284855",
-"N c #2E4846",
-"O c #264862",
-"P c #334A3E",
-"Q c #584117",
-"R c #4A4531",
-"S c #2A4D5F",
-"T c #3F4841",
-"U c #574220",
-"V c #464540",
-"W c #3F484B",
-"X c #57471C",
-"Y c #554729",
-"Z c #564824",
-"` c #23577E",
-" . c #345764",
-".. c #335769",
-"+. c #315770",
-"@. c #5F4F25",
-"#. c #39595C",
-"$. c #5F4F2B",
-"%. c #625020",
-"&. c #694C24",
-"*. c #664E24",
-"=. c #644E2C",
-"-. c #4A5457",
-";. c #68501C",
-">. c #46584F",
-",. c #605133",
-"'. c #644F33",
-"). c #5C5435",
-"!. c #5E523F",
-"~. c #475D46",
-"{. c #6D5318",
-"]. c #66542A",
-"^. c #535752",
-"/. c #645530",
-"(. c #5A5743",
-"_. c #29638D",
-":. c #59584B",
-"<. c #3E6678",
-"[. c #5D5F4B",
-"}. c #406774",
-"|. c #36688B",
-"1. c #5C6052",
-"2. c #3D6782",
-"3. c #45686C",
-"4. c #306B96",
-"5. c #4D695D",
-"6. c #60605B",
-"7. c #775F23",
-"8. c #416597",
-"9. c #646053",
-"0. c #5C6359",
-"a. c #6E5F3E",
-"b. c #79601E",
-"c. c #76602F",
-"d. c #516D59",
-"e. c #5C6661",
-"f. c #556870",
-"g. c #6C6350",
-"h. c #62676C",
-"i. c #5C6B6B",
-"j. c #3A75A5",
-"k. c #3E769F",
-"l. c #457599",
-"m. c #5B7181",
-"n. c #497792",
-"o. c #53777A",
-"p. c #517492",
-"q. c #5E727A",
-"r. c #57796B",
-"s. c #547684",
-"t. c #50778A",
-"u. c #66726A",
-"v. c #896D2B",
-"w. c #5A758A",
-"x. c #736F6A",
-"y. c #8F6C33",
-"z. c #836E4C",
-"A. c #8A7034",
-"B. c #877041",
-"C. c #8A713B",
-"D. c #906E41",
-"E. c #4882AE",
-"F. c #5482A2",
-"G. c #93753E",
-"H. c #598299",
-"I. c #907935",
-"J. c #90793B",
-"K. c #618099",
-"L. c #917A43",
-"M. c #5F868D",
-"N. c #6B8282",
-"O. c #917A49",
-"P. c #648782",
-"Q. c #628593",
-"R. c #8E7C52",
-"S. c #508AB5",
-"T. c #6C848E",
-"U. c #897E66",
-"V. c #5C8AAB",
-"W. c #618AA2",
-"X. c #7C8689",
-"Y. c #88887E",
-"Z. c #6093B9",
-"`. c #6694B3",
-" + c #6994AC",
-".+ c #8B8F75",
-"++ c #6C989E",
-"@+ c #7492AC",
-"#+ c #709995",
-"$+ c #6E98A5",
-"%+ c #7E949F",
-"&+ c #7996A5",
-"*+ c #829593",
-"=+ c #699CC1",
-"-+ c #679EBC",
-";+ c #7498B9",
-">+ c #6E9CB4",
-",+ c #6E9CBB",
-"'+ c #6EA5C4",
-")+ c #73A4BD",
-"!+ c #70A4CA",
-"~+ c #76A3C3",
-"{+ c #7CA8B9",
-"]+ c #85A6B9",
-"^+ c #77ADCA",
-"/+ c #96A5A5",
-"(+ c #78ACD2",
-"_+ c #7FABCA",
-":+ c #8DAEAA",
-"<+ c #8AABC9",
-"[+ c #7CB4D9",
-"}+ c #85B2D3",
-"|+ c #7EB6D5",
-"1+ c #90B0CD",
-"2+ c #8EB6D1",
-"3+ c #8FB8C9",
-"4+ c #87BBD4",
-"5+ c #82BEE3",
-"6+ c #85BEDD",
-"7+ c #8FBCDD",
-"8+ c #8DC5E5",
-"9+ c #94C2E3",
-"0+ c #88C8E6",
-"a+ c #A2C1D1",
-"b+ c #94C6DF",
-"c+ c #8EC9E1",
-"d+ c #9DC7CC",
-"e+ c #96C8DA",
-"f+ c #8FD0ED",
-"g+ c #9ACDE8",
-"h+ c #8ED3EA",
-"i+ c #95D0E9",
-"j+ c #A0CBEA",
-"k+ c #9AD1E3",
-"l+ c #A2CEE1",
-"m+ c #95DAF1",
-"n+ c #A2D4EE",
-"o+ c #9DD8F0",
-"p+ c #9CDBEC",
-"q+ c #A4DAEC",
-"r+ c #A7DAE6",
-"s+ c #A3E3F5",
-"t+ c #AAE1F3",
-"u+ c #ADE3E9",
-"v+ c #A9E4EF",
-"w+ c #B6E3F8",
-"x+ c #AAEAFB",
-"y+ c #B3E9FC",
-"z+ c #C6E8DE",
-"A+ c #BBE9FD",
-"B+ c #BAF0FC",
-"C+ c #C2F7FD",
-"D+ c #CBFDFC",
-"E+ c #D6FFFA",
-"F+ c #E1FFFC",
-"G+ c #EEFFFE",
-"Q.Q.$+Q.Q.Q.Q.Q.Q.Q.s.s.s.}.s.s.M.M.}...+.O O O r e e 8 7 | | | ( ( | a { ) % & ~ ) ~ ) ) ) & ~ [ [ [ u N r.d.P c [ 0 j u M <.n.F.V.V.V.V.F.F.F.F.F.F.F.p.F.n.l.l.p.p.n.p.p.p.p.n.n.p.2.2.2.n.2.n.2.n.n.n.n.t.n.n.n.n.n.n.n.F.H.H.H.W.W.`. +>+ +>+-+`.-+-+=+Z.`.,+=+=+=+Z.=+=+=+;+;+!+,+,+~+~+~+~+~+~+~+~+~+_+~+_+_+~+_+_+_+_+_+_+_+_+_+_+_+_+_+_+(+_+_+_+_+_+(+_+_+(+(+_+_+_+_+_+(+(+(+(+(+(+(+(+(+(+(+(+_+(+_+",
-"3.r.o.o.o.r.o.o.o.o.r.3.#.3.#.3.3.3.f.+.m.<.2.O +.O H 8.8.F I s s e e i | < - - - = = ( = = & { ~ $ = ) c N A c ) ) { : k B ..p.V.V.V.@+K.V.V.W.Q.W.W.H.F.H.F.V.F.F.F.F.F.F.F.F.K.F.l.n.n.n.l.l.|.n.n.2.n.n.t.2.p.n.n.n.n.n.t.n.n.H.F.H.H.H.W.W.W.W.>+>+`.`.Z.`.`.-+,+=+;+Z.;+=+=+=+=+=+=+=+-+,+,+~+'+'+'+'+'+)+~+'+^+'+~+~+~+_+~+(+!+(+!+_+!+_+^+^+(+^+(+^+(+_+(+(+_+_+(+(+(+(+(+_+<+(+(+(+_+_+_+_+(+(+<+(+<+(+",
-"K N N N N P #.P P #.P #.N K K M N . .+.<.m.f.+.+.p.p.p.p.p.8.|.2.` ` I v e < | < , ( < ( ( ~ = { ~ ) = [ [ [ % % = ( ( a B -.p.V.`.Z.Z.;+@+W.Q.Q.M.W.Q.W.W.H.W.V.W.K.W.W.V.H.F.F.V.F.H.n.n.n.n.n.n.n.n.n.n.n.n.n.n.t.n.n.t.t.n.n.n.n.n.n.H.H.W.W.H.H.W.W.W.`.V.-+`. +Z.Z.=+=+=+!+=+=+-+`.=+=+=+-+-+`.,+,+>+)+>+~+;+_+!+~+~+!+!+~+~+~+~+!+~+!+!+~+'+!+'+!+'+'+'+'+~+!+'+'+~+~+~+!+!+!+!+;+(+!+!+!+~+~+!+!+!+!+!+",
-"p t p j 5 0 c 0 j c u c u N t K M B G +.+.<.+.m.+.8.S.;+K.K.p.p.p.p.p.p.8.+.I I s s e e | : ( ( { - { { : : { & = { ( a r r O p.V.V.W. +`.W.++o.o.o.o.M.o.M.M.Q.Q.W.W.W.W.W.W.V.@+H.W.F.W.H.F.F.F.F.n.F.n.H.n.n.n.n.n.n.n.n.}.n.n.n.n.n.n.n.n.n.H.n.H.H.W.W.W.H.W.W.W.W.W. +>+,+-+-+-+=+=+Z.Z.`.Z.`.=+=+,+=+;+,+,+=+,+,+!+'+,+,+!+!+=+!+~+!+;+=+;+=+!+!+~+~+!+~+=+=+=+~+,+=+!+=+!+;+!+!+!+~+'+'+!+!+!+(+!+!+!+!+",
-"+.B p i | : ( ( { } ) [ [ 0 u u t G S +.2.p.2.2.p.p.K. +W.H.K.K.p.p.p.p.p.p.p.8.+.8.I O O v v 7 a | | < | | | - , , a i r G +.p.F.Z.V. + +Q.o.#.#.#.5.3.3.3.o.o.s.Q.Q.H.Q.W.Q.V.W.Q.W.W.V.H.V.F.F.V.H.W.F.W.H.F.H.l.n.n.n.n.n.n.k.l.l.H.n.n.n.n.n.F.n.n.H.n.H.M.n.W.W.W.W.-+W.-+W.>+W.`.`.`.`.`.`.`.Z.`.`.Z.Z.`.`.,+`.`.,+,+,+,+=+=+=+=+;+;+!+!+=+,+-+=+=+;+=+,+!+=+=+=+!+=+=+!+=+!+!+!+!+!+!+'+~+!+=+!+!+!+!+!+",
-"<.S O s v e i | : } } ) [ [ [ j y O +.+.2.p.p.p.p.K.W.Q.t.K.H.p.K.K.H.n.w.p.p.p.p.p.p.p.2.2.I O I s s s q q q s 7 e s s I +.` p.V.V.`.V.-+Q.#.u u c u N K K #.#.5.3.3.o.s.Q.Q.Q.W.W.$+W.W.V.V.V.W.W.V.V.W.W.V.W.F.V.F.F.F.F.F.F.l.l.n.n.E.n.E.F.k.n.n.n.n.n.n.n.H.n.n.n.n.H.W.H.W.H.-+W.W.-+V.W.V.Z.`.Z.V.V.V.V.`.V.`.`.`.`.`.Z.`.Z.;+=+=+=+Z.;+=+=+=+=+=+=+,+=+=+;+;+;+;+=+!+Z.!+!+;+!+;+=+'+=+!+=+!+!+!+!+~+!+",
-"p.+.+.` +.I O s s k 6 } ) { { } k r +.m.m.m.w.w.K.w.H.H.H.n.H.H.n.H.K.F.H.t.H.K.F.l.F.p.p.p.p.8.p.|.8.` 8.8.8.8.F 8.8.8.8.p.8.S.;+Z.=+Z.-+M.N [ { ) [ [ 0 0 t u u N #.#.3.}.o.o.s.Q.M.Q.Q.Q.$+W.W.W.W.W.W.W.V.V.W.V.V.V.F.F.S.F.F.F.E.F.H.F.F.F.F.F.k.n.H.n.n.n.n.n.n.H.F.n.H.H.H.H.H.H.H.F.V.V.W.W.W.Z.Z.V.V.F.V.F.V.V.V.V.V.`.`.`.Z.Z.Z.;+Z.,+Z.Z.=+=+=+=+=+=+=+=+=+=+-+=+=+=+!+!+Z.!+!+=+!+=+'+!+,+~+,+;+!+!+",
-"m.2.p.p.2.p.` 8.+.O v 6 : - ( ~ a r ..}.}.3.o.3.m.t.m.w.s.q.s.t.p.w.t.w.t.n.H.n.H.W.W.W.K.p.p.p.p.p.p.j.p.E.K.p.8.2.p.p.@+8.;+S.;+!+!+'+-+H.K 5 { } ) } 5 ) { : [ c 0 u N #.#.3.o.}.o.s.s.M.Q.Q.Q.Q.W.$+ + +W. +V.V.`.`.V.V.V.V.S.V.F.W.W.V.F.F.F.F.F.F.n.n.n.H.n.S.n.n.n.H.n.n.n.n.n.H.n.H.n.F.F.F.V.H.W.W.F.F.F.V.F.V.F.V.V.V.W.V.V.V.Z.Z.`.`.>+`.;+;+;+Z.Z.`.`.=+Z.=+=+=+=+!+Z.=+!+=+=+!+-+!+=+-+!+=+!+!+=+;+",
-"2.p.2.p.p.p.p.|.|.2.+.I e i | { { a S 3. . . . .#. . .<.}.3.}.}.<.m.s.s.s.w.H.W.Q.W.Q.W.W.F.V.F.F.F.K.V.;+;+;+V.p.p.j.p.;+;+V.;+;+(+(+^+{+Q.M k : 6 : 5 5 : : : = } [ [ c t u N N #.#.5.3.3.3.s.M.M.M.Q.H.W.W.W. +V.W. +`.W.W.V.V.V.V.V.V.W.`.W.V.V.V.V.F.F.F.F.H.H.F.W.F.F.F.H.n.H.n.n.n.n.n.n.n.n.n.n.H.H.n.F.n.V.F.V.F.F.S.F.S.F.S.F.F.S.F.V.`.V.Z.Z.Z.Z.Z.`.Z.;+Z.Z.,+=+;+=+!+Z.!+=+=+=+=+=+!+!+!+=+=+!+!+!+",
-"t.m.2.p.2.p.p.p.p.p.8.+.O B k a } r S K M G O G S M S S ......+.....f.}.<.2.V.$+t.H.Q.H.F.K.V.p.V.F.V.F.;+;+;+V.;+V.;+V.V.;+;+=+!+'+)+{+)+n.O v i i i p 6 a 6 6 : : { : ) } [ 0 u u u K N N #.#.3.3.o.o.o.M.M.Q.W.@+W.W.W. +`.`.V.Z.-+W.-+-+V.V.Z.V.-+W.V.V.W.W.F.W.W.-+W.W.n.H.n.n.H.n.F.n.n.n.n.n.H.n.n.n.n.n.n.n.n.n.n.S.n.S.F.F.F.F.E.F.F.F.F.F.H.V.V.`.V.V.Z.Z.`.`.Z.Z.=+=+Z.=+Z.Z.=+;+=+;+=+=+=+!+!+!+S.=+",
-"<.t.2.t.p.p.p.t.n.p.p.w.<. .N 0 g 5 B G O I +.+.+.+.I 2.+.+.+.+.2...+.+.2.w.F.W.2.n.F.H.F.l.;+E.;+V.;+F.Z.~+)+`.V.V.;+S.Z.;+`.,+'+-+)+$+>+H._.` I I v I i i r r a 6 : 6 : 6 } [ } 5 } 0 0 u A N N K #.3.3.3.o.o.s.W.W.Q.Q.Q.W.Z.Z.Z.`.W.W.-+`.`.`.Z.Z.V.-+V.-+W.-+W.-+W.W.W.F.W.W.n.F.n.S.n.n.n.n.n.n.n.n.n.k.n.n.n.k.n.n.n.n.k.F.n.E.n.F.F.n.F.n.n.n.H.n.F.F.H.F.V.V.V. +V.Z.;+Z.Z.;+!+Z.=+Z.=+=+=+=+Z.!+=+!+;+",
-"}.}.m.2.2.p.n.H.H.Q.Q.M.5.>.0 [ ) a r O ` 2.8.2.p.8.2.p.8.p.p.p.2.p.p.p.2.n.K.E.E.E.E.V.F.E.V.;+;+S.@+`.-+>+)+>+Z.Z.Z.`.`.>+>+>+>+>+-+-+`.F.p.|.2.|.` +.I O G B s v k a i i i 6 6 6 6 [ [ [ 0 0 u u u N N K #.3.o.M.M.M.o.s.M. +;+(+'+$+M.Q. +`.=+`.`.Z.-+W.-+W.-+F.-+W.-+-+F.-+V.S.V.V.W.V.F.n.k.n.k.k.|.k.|.|.|.n.n.|.4.|.|.n.n.k.n.n.k.n.|.k.k.k.n.n.n.n.k.n.F.F.F.F.F.V.V.V.;+S.;+S.;+=+Z.;+=+Z.!+S.;+!+Z.=+",
-"3.#.#.<.n.t.t.M.s.o.o.r.P A [ ) & < s m.+.p.p.p.p.p.p.p.p.m.p.m.m.p.2.p.m.p.K.E.!+(+(+=+;+@+V.;+;+Z.`. +~+>+)+@+,+ +;+>+-+,+,+,+,+,+,+-+,+V.K.l.p.l.|.p.|.2.2.+.O O O v v v p v p i 6 p 5 [ 5 5 [ [ [ 0 0 c u K #.3.o.o.>.#.o. +^+3+++M.o.H.W.`.'+-+=+=+=+=+`.-+-+-+-+-+W.-+V.W.W.S.-+F.-+F.V.F.F.n.n.k.n.k.k.k.n.k.k.k.k.|.|.|.<.|.|.n.2.n.k.|.n.|.|.n.|.k.|.k.|.n.n.n.n.n.F.F.F.V.V.Z.Z.Z.Z.Z.=+Z.;+Z.!+Z.;+=+",
-"N K K S s.o.o.3.3.5.#.N c % % ~ ( i s +.m.2.p.w.m.p.m.s.s.w.m.2.m.m.}.m.t.s.8.Z.5+j+b+)+ +V.Z.Z.=+@+>+>+>+)+,+-+ +>+)+>+>+,+!+;+,+~+>+ +`.;+;+S.V.F.F.l.p.l.p.l.p.|.|.+.` I I O v v B p p p p k j 6 : { { } [ 0 u >.>.P A N 3.M.:+#+P.3.#.}.W. +-+'+-+=+=+=+=+=+Z.Z.-+-+-+Z.-+-+-+V.-+Z.`.-+V.V.V.V.V.W.V.F.S.F.F.S.k.n.n.n.k.|.n.2.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.2.k.n.n.|.n.l.F.l.E.F.F.V.V.V.;+Z.Z.;+Z.Z.;+",
-"0 } 0 M 3.3.>.P N c 0 5 : ~ & = < 7 +.8.m.m.2.p.f.t.<.s.}.}.f.}...f.3.3.3.3.n.!+j+o+e+{+>+`.`.;+=+,+,+,+;+>+~+,+,+>+~+)+)+>+'+~+>+,+,+~+Z.Z.;+Z.;+V.V.V.F.F.F.l.l.p.p.|.2.2.|.` ` O O G B B B p p k k : : 6 } } 5 u u [ ] 0 N 5.r.r.P N K .Q. +~+~+'+!+!+!+!+!+!+!+-+-+=+-+-+-+-+-+Z.Z.`.-+`.-+V.V.-+F.Z.V.V.V.W.V.V.V.F.H.E.n.k.n.k.|.n.n.n.k.|.|.|.|.2.2.<.|.|.|.2.|.|.|.|.|.|.n.2.l.n.n.F.l.F.F.V.V.V.;+`.Z.",
-"k k 6 p K N 0 } } - : i 6 : : < i s +...2.2.s.3.}.f.f.#.-. . .......#.#. . .2.`.4+e+3+{+,+;+;+`.,+,+,+;+~+;+;+=+'+~+>+~+,+~+-+-+,+~+;+,+,+,+;+@+;+Z.`.Z.;+V.V.V.K.E.p.F.l.l.l.p.l.|.|.` +.+.O O G G p r r k 6 6 k 5 [ ) } % [ u u c 0 [ p <.t. +>+)+)+~+~+)+)+'+~+'+'+!+!+!+!+-+=+=+!+'+=+=+=+=+-+Z.-+-+Z.V.-+W.-+-+-+V.F.-+F.F.F.k.n.n.k.k.n.n.k.|.|.|.|.|.2.|.|.|.|.2.|.|.|.|.|.|.|.|.|.|.|.k.n.l.F.n.F.F.V.V.",
-"W y r B t B 5 ( ( < 6 v O r i e s ` m.<.f.f. .f.#. .M .K M W . .K W K B G +.H.{+$+)+>+`.Z.,+,+,+-+!+,+=+,+,+,+,+~+-+'+>+>+)+~+,+,+;+~+,+=+=+`. +`.;+ +`.`.;+`.`.Z.Z.V.F.V.F.F.p.p.p.l.p._.|.|.+.+.O O v M B B r r a { { { { 6 6 6 6 k B ..t.W.>+>+>+<+~+'+)+'+!+^+'+'+'+^+!+^+'+'+'+'+'+!+'+-+-+=+=+-+=+Z.=+-+-+V.-+`.V.`.V.S.V.V.S.F.H.V.F.H.k.n.n.|.|.2.2.|.|.|.|.|.2.|.2.|.k.|.k.|.2.|.|.|.|.|.n.k.n.n.F.n.",
-"K K K M K B G r v r v r O +.O s O +...}... .#.W M K t M G M M M K G B O s I ` n.-+-+-+-+-+>+Z.,+,+,+-+=+,+-+,+,+-+,+,+ +~+>+,+,+,+'+-+,+!+,+,+'+,+,+>+,+,+ +-+`.=+@+;+;+;+V.S.;+S.V.E.p.E.p.p.p.p.p.2.8.+.+.+.O I I s 7 | i i e s s I I O <.n.Q.W.`.,+'+_+_+!+^+'+!+_+~+_+~+^+'+^+_+~+_+'+^+~+_+'+!+=+!+!+=+=+=+=+-+-+-+-+-+-+`.Z.Z.V.W.V.W.Z.F.F.E.k.k.k.k.|.k.|.|.|.|.|.|.|.|.k.k.n.2.|.|.|.|.|.|.|.|.|.|.k.n.",
-"M G S I I I 8.s H s O W ..m.I 8.p.m.3.#. .}. .M M B r W r B r B r s I F ` 8.j.F.V.`.`.`.-+>+=+,+,+;+;+,+,+>+>+>+-+,+-+>+~+'+,+;+,+'+-+,+,+=+,+~+~+=+=+,+,+,+,+ +=+=+Z.Z.=+,+Z.;+Z.;+Z.@+S.V.F.p.E.p.p.8.p.2.p.8.2.8.I I F I F F 8.` ` 8.2.2.l.F.V.;+=+!+~+_+~+_+_+!+(+!+^+~+_+'+^+(+!+(+!+(+!+_+~+(+!+'+^+!+~+!+!+=+=+=+`.-+Z.`.`.=+`.-+Z.W.-+V.V.W.V.H.n.F.n.k.n.k.|.|.|.k.k.|.n.F.k.|.n.|.|.n.|.|.2.|.|.|.|.|.",
-"q q F 8.8.8.8.8.8.E.t.-.M -.p.p.p.<.#. .M S K M r B G v O s s I ` ` 8.8.E.E.Z.;+=+,+>+>+>+,+;+,+,+,+,+,+;+,+-+;+>+~+>+-+-+,+)+=+,+-+>+~+!+;+=+-+,+;+;+,+,+~+,+-+-+,+,+'+,+,+,+Z.,+`.;+Z.;+;+Z.Z.K.S.p.F.p.p.p.p.p.p.p.8.p.8.|.8.p.p.p.p.4.p.F.V.Z.=+<+~+^+~+_+~+!+_+~+~+_+^+^+_+~+'+^+^+_+_+(+(+(+(+(+!+!+^+!+'+'+^+'+!+!+!+-+-+=+-+=+Z.`.Z.V.`. +S.`.V.-+F.V.F.S.n.k.k.n.n.F.n.W.W.n.|.2.2.|.|.2.n.|.|.|.2.|.|.",
-"8.8.;+8.<+;+]+]+]+*+M.>.j O |.V. +M. .G O +.S O O I O F ` 8.8.8.8.E.8.;+;+Z.;+;+;+;+;+;+,+>+,+,+`.,+,+-+~+,+,+;+>+;+<+>+-+,+>+;+;+~+>+>+>+~+~+'+'+!+,+~+,+~+~+,+-+-+>+-+,+~+>+,+~+-+,+=+Z.Z.;+;+Z.;+S.;+V.V.F.V.E.;+p.p.p.p.V.E.E.p.E.p.F.S.Z.;+!+!+(+!+^+_+^+^+!+(+_+~+!+!+^+^+_+!+^+^+(+_+!+!+(+_+_+_+(+^+^+^+'+^+~+!+'+^+!+'+;+=+!+=+=+=+Z.`.`.`.Z.W.`.V.-+F.V.W.V.V.V.S.F.F.W.-+n.n.k.n.|.|.|.|.|.2.|.<.|.|.",
-";+]+>+$+{+++++P.#+o.o.K 6 v 2.W.M.o.G O O O ` I +.8.8.p.8.E.l.;+;+;+;+;+;+`.`.-+-+-+=+,+,+-+,+,+,+-+>+>+>+,+~+,+,+>+>+,+>+,+~+-+,+,+~+,+~+)+,+,+,+,+!+=+~+-+-+'+~+~+'+~+!+-+-+!+=+~+;+>+)+,+=+=+,+Z.,+;+Z.@+;+V.;+;+;+Z.;+V.;+;+;+Z.@+V.V.;+!+!+!+(+)+_+_+!+(+!+(+<+(+!+_+_+_+'+!+^+!+!+)+_+^+^+^+[+(+(+_+^+(+(+(+!+(+(+!+!+(+!+(+!+!+!+,+=+-+=+=+Z.Z.-+V.-+`.W.-+`.`.S.V.W.S.F.V.W.W.k.n.n.n.k.|.|._.|.|.2.|.|.",
-"Q.$+%+#+P.M.M.o.3.3. .G i s ` H.M.}.O 8.8.8.p.8.F.E.E.;+;+;+;+V.;+@+`.`.-+>+>+>+,+,+=+,+,+Z. +,+>+,+,+-+>+>+,+,+-+,+-+,+,+,+,+-+,+,+,+>+,+,+,+~+=+,+,+=+,+~+-+)+-+,+,+~+)+~+-+~+;+!+!+'+'+-+-+~+,+=+=+,+=+Z.=+Z.!+!+;+Z.V.V.;+!+~+=+Z.;+Z.=+(+_+^+(+_+(+^+'+_+(+(+(+<+!+(+!+(+^+_+_+^+_+(+~+^+'+)+^+^+^+_+^+^+_+_+^+'+^+_+(+(+!+(+!+!+(+~+!+!+!+!+!+=+=+=+Z.=+`.Z.Z.-+`.-+V.`.Z.`.W.V.V.V.F.n.n.k.n.k.|.|.|.2._.",
-"s.s.}.}.<. .2.+.2.` |.+.` ` 2.n.p.p.2.p.p.p.;+V.;+K.;+V.V.;+;+;+`.`.`.>+`.`.`.-+,+ +>+>+,+,+,+,+,+,+-+,+>+>+,+,+;+,+,+,+,+,+~+>+~+;+,+~+~+=+!+,+~+'+~+~+;+-+~+-+'+~+~+-+~+'+~+'+!+~+~+,+~+~+)+-+~+~+'+,+-+~+!+;+!+!+!+;+=+,+(+<+^+~+,+Z.,+'+~+^+!+<+_+^+_+_+!+_+(+(+(+<+~+^+_+_+~+^+~+(+'+^+~+^+_+_+!+!+^+~+(+(+^+_+_+(+(+<+(+(+(+(+_+^+(+_+(+!+!+!+!+!+!+!+=+'+=+=+`.`.`.-+`.W.-+`.`.S.S.-+-+V.S.F.k.k.k.|.k.|.",
-"2.2.n.2.2.2.2.|.p.p.p.p.p.p.p.n.K.p.p.E.;+;+V.;+V.;+;+;+;+V.`.`.;+`.`. +-+ + +`.,+`.`.,+,+=+=+,+,+ +,+-+-+>+>+>+,+,+>+,+,+,+,+,+-+~+-+>+,+-+'+>+)+-+'+-+~+>+~+,+'+~+~+-+~+~+,+,+~+~+'+'+'+~+)+'+)+)+~+~+,+~+!+!+<+!+!+,+!+-+^+_+^+~+~+!+~+'+~+_+!+(+!+(+_+^+!+_+_+(+!+(+!+~+_+^+^+^+)+_+!+_+!+!+~+_+~+!+^+_+!+(+(+[+(+(+!+<+(+(+^+(+(+^+!+^+(+[+(+(+(+!+(+^+!+!+!+!+!+=+=+=+=+-+Z.Z.-+`.Z.V.V.W.S.W.S.S.E.E.p.E.",
-"n.K.p.p.p.H.p.p.p.F.p.p.p.F.F.K.F.V.V.@+Z.V.Z.`. +`.V.`.;+ + +;+ + +`.>+ +-+;+ +`. +,+`.,+,+;+;+>+,+,+>+>+~+)+)+>+)+,+>+,+,+~+-+~+-+,+'+'+,+-+'+>+)+>+~+;+~+,+~+-+'+~+)+,+-+~+~+'+'+~+'+~+'+~+'+~+!+'+~+!+!+<+!+!+!+~+!+;+~+^+(+<+^+'+~+~+^+!+!+_+!+<+_+!+_+_+(+_+_+(+!+<+(+!+!+(+^+^+^+^+(+<+^+(+~+^+_+!+_+^+(+_+_+_+(+(+(+_+^+^+^+_+(+^+^+^+_+_+_+(+^+!+(+(+(+!+^+!+(+'+!+!+=+-+=+=+-+-+-+Z.=+`.Z.Z.V.V.;+S.V.",
-"n.F.K.F.W.H.F.V.H.K.H.H.W.W.V.W.W.@+V.@+`.@+`.`. + + +;+;+Z.`.;+`. +`.>+ +`.,+,+,+-+>+-+,+=+,+,+,+,+,+;+-+,+>+-+ +~+=+,+,+,+,+-+,+,+,+>+~+,+,+!+-+~+>+'+~+,+~+~+-+'+'+'+~+'+~+,+~+'+~+'+~+~+~+'+~+'+'+~+~+!+~+<+~+(+~+!+<+!+~+^+!+!+'+^+!+'+~+(+(+!+(+^+'+^+_+!+_+(+!+(+~+^+_+(+(+(+(+_+^+!+(+!+(+~+_+_+(+_+_+(+(+(+}+_+(+(+(+(+^+[+_+_+(+_+(+(+(+^+^+^+(+(+(+(+(+^+(+!+^+!+(+!+(+'+=+!+=+!+=+=+=+=+=+=+Z.;+S.;+",
-"H.H.n.H.H.H.H.H.n.H.H.H.H.F.H.@+V.V.;+`. +`. +`.`.`.;+`.;+,+ +>+ +>+>+`.,+-+`.`.`. + +,+;+>+,+,+>+,+-+-+,+,+,+>+,+,+,+-+-+;+>+>+,+~+>+'+>+'+'+-+,+'+~+,+,+!+,+~+~+-+'+~+~+~+'+~+)+)+'+~+~+~+~+~+'+!+'+^+'+~+!+!+_+~+!+!+!+~+^+~+!+^+~+!+!+_+!+~+~+^+'+_+^+^+!+^+(+_+<+^+^+^+!+<+<+_+_+_+(+(+(+(+^+(+(+(+^+}+(+^+_+}+^+(+_+^+_+}+(+_+(+(+}+(+(+}+(+(+(+(+(+(+[+^+^+(+(+[+(+(+(+(+(+!+(+_+(+!+(+!+(+!+!+!+(+;+!+=+",
-"t.H.H.n.H.t.H.K.n.H.F.H.K.F.F.V.V.V.V.@+`.;+`. +`.Z.;+Z.;+`.`. +>+ + +@+@+ +,+-+=+,+ +>+;+,+,+,+>+,+,+,+-+,+;+;+,+,+,+,+'+!+~+;+,+,+,+-+>+-+)+~+,+'+'+'+>+~+'+)+)+~+)+'+-+~+'+~+~+)+'+)+'+!+~+~+~+~+~+'+~+)+~+!+~+_+~+'+<+~+^+)+_+_+~+_+!+_+!+_+_+_+!+!+^+^+_+_+!+(+_+)+(+(+(+!+(+(+(+_+(+(+(+(+_+^+^+(+(+}+(+^+^+^+^+^+_+[+^+^+(+^+^+^+_+<+(+(+}+(+(+[+^+^+(+[+^+[+(+(+[+(+(+(+(+}+(+(+[+(+(+(+(+(+(+(+(+(+(+(+",
-"H.t.H.t.F.H.K.p.K.p.K.F.F.W.W.V.V.@+;+V.@+Z. +`.`. +Z.;+`.,+,+,+ +>+;+,+=+,+,+;+ +,+>+,+,+,+,+,+'+>+,+,+>+~+=+,+;+>+,+,+,+,+,+~+,+=+'+)+'+~+;+,+~+>+,+)+'+'+>+~+~+,+!+~+~+'+'+'+'+~+~+'+'+)+'+'+'+'+'+~+!+<+~+'+^+~+^+~+!+~+!+^+'+!+_+!+_+^+_+(+!+!+(+_+!+'+^+_+<+_+_+^+'+(+(+(+_+_+_+^+_+(+<+}+^+^+(+(+(+(+}+_+^+_+^+^+_+)+^+_+^+_+(+(+(+(+(+}+(+}+(+(+[+(+}+_+|+^+|+[+(+[+(+[+[+(+[+(+[+[+[+[+[+[+(+(+(+(+(+(+",
-"p.H.H.t.K.n.F.p.F.p.K.K.H.K.K.;+V.V.;+V. +;+ + +`. +`.`.`.`. +>+`. +,+ +Z.`.,+;+,+,+>+,+=+,+>+>+-+>+>+,+,+>+,+>+;+>+>+,+,+,+-+,+~+,+'+-+,+!+~+~+~+'+-+'+)+~+~+~+'+-+'+~+'+)+>+)+~+~+,+~+~+^+)+'+'+'+^+~+!+~+~+~+'+'+^+_+'+_+~+^+(+!+_+!+!+!+^+_+(+~+!+_+_+~+^+_+(+(+(+^+_+(+(+(+(+(+(+_+_+[+(+(+[+(+^+^+_+(+(+_+!+^+^+^+^+~+'+_+^+^+_+^+}+_+(+^+(+|+}+}+|+[+[+(+[+(+[+|+}+[+}+[+}+[+|+(+|+|+[+[+(+[+[+7+[+[+}+[+",
-"H.p.n.H.H.K.K.H.K.K.F.F.V.V.F.V.V.@+V.@+Z.`. + + +`.`.,+ + +,+`.,+;+ +>+>+>+,+Z.`.,+,+`.,+>+>+>+ +-+>+>+,+>+>+,+-+,+~+;+,+,+~+-+,+!+,+>+~+,+=+'+-+>+)+>+~+~+~+~+~+~+~+~+>+)+'+~+~+-+!+'+'+'+'+'+'+'+~+'+~+~+_+~+_+_+~+'+_+'+^+!+^+^+_+_+(+^+_+^+~+(+_+^+_+_+_+^+^+^+_+(+(+(+(+(+^+(+_+^+(+(+(+_+(+^+[+^+^+^+[+_+^+'+~+!+~+^+^+)+'+_+^+^+)+^+<+(+^+(+(+(+^+^+(+}+[+}+|+|+|+(+}+(+(+|+(+[+}+[+[+7+[+[+[+(+}+[+[+}+",
-"H.H.K.n.H.H.K.n.H.H.F.W.H.V.F.V.V.@+V.@+`.`. +>+ + + + +,+;+`.`.Z.;+`.>+>+`.>+,+,+,+,+`.,+,+>+-+-+,+,+>+,+,+>+>+,+,+-+~+,+,+~+,+,+=+!+-+,+~+=+~+~+~+'+'+'+~+-+,+,+'+~+!+'+'+'+~+!+~+~+~+'+~+~+~+'+^+!+_+!+'+^+'+~+_+_+'+^+!+~+_+~+^+~+<+'+'+(+^+'+!+!+(+(+(+(+_+_+!+<+(+~+_+^+(+^+^+(+(+_+_+^+_+(+_+(+[+(+(+!+_+_+^+^+^+!+~+~+_+)+'+^+)+^+^+^+(+_+}+}+[+[+[+(+(+[+}+|+[+|+[+}+[+[+|+}+(+(+[+}+[+(+[+[+(+7+}+|+|+",
-"n.H.F.H.H.H.F.H.H.F.H.W.W.W.W.W.`.V.`.`. + +`. +>+ +`.,+`.-+ +,+ +,+ +,+>+>+,+,+`. +-+>+,+,+ + +>+=+,+-+,+=+,+>+,+,+;+,+;+~+,+,+-+>+>+-+-+,+~+,+,+~+,+>+'+-+~+~+'+,+'+)+-+'+'+'+~+~+'+-+~+!+~+'+~+!+_+!+^+_+~+_+)+<+'+^+~+^+^+~+(+!+'+^+^+^+'+(+(+_+_+~+^+!+!+(+(+_+!+(+(+(+(+^+(+(+(+(+(+[+}+}+(+(+^+_+(+^+[+(+(+(+(+(+^+(+(+~+~+^+'+^+'+^+_+^+^+^+^+}+[+[+[+}+|+[+[+|+(+[+[+[+|+(+[+[+7+(+[+}+[+[+[+[+[+|+^+}+",
-"H.t.F.n.H.Q.F.F.Q.F.F.V.K.W.W.W.W. +V.`.`. +`. + + + +>+`.,+>+,+`.,+`.`.-+`.`.,+`. +`.,+ +,+;+,+>+;+,+-+ +=+=+,+,+-+>+'+,+)+>+>+)+~+,+~+'+,+~+'+-+!+!+>+~+'+-+'+'+)+~+~+)+)+'+'+~+~+~+'+~+'+~+^+)+'+'+~+~+'+'+_+'+~+'+'+~+~+(+~+_+_+~+_+)+<+)+_+(+(+(+~+_+<+!+!+(+(+_+_+(+(+!+_+(+(+<+(+(+(+^+}+(+(+(+_+(+(+^+^+(+(+(+(+[+!+(+(+'+^+)+^+!+(+_+^+^+^+^+^+|+|+|+[+^+}+[+[+}+[+|+(+|+[+(+[+}+[+[+[+[+[+7+^+|+[+|+|+",
-"p.H.H.H.F.H.F.F.F.F.K.H.V.V.W.W. +V. +`. +`. +`.;+;+`.`. + +`. +>+`.,+-+ +@+;+;+,+>+>+>+,+;+,+;+,+,+,+,+-+>+>+,+-+~+,+,+,+,+,+)+,+,+~+>+>+)+-+-+,+,+~+~+)+>+~+>+'+~+'+)+-+)+)+'+'+~+~+>+'+~+'+)+'+'+^+)+'+_+_+!+^+'+~+^+^+^+'+(+'+!+^+_+_+^+_+_+_+^+'+^+(+!+(+_+_+(+(+(+<+(+(+(+_+<+(+(+(+(+(+(+}+}+}+(+(+^+(+(+(+}+[+[+^+[+(+^+[+^+(+^+^+(+(+(+^+[+^+|+^+[+|+|+[+|+[+|+5+(+[+[+[+[+}+|+[+}+[+7+[+[+[+|+|+[+[+[+",
-"F.H.H.W.F.H.K.W.W.F.V.V.K.W.W.V.@+V. +`. + + +`.V.`. +,+`. +,+>+>+ +;+,+-+,+`.;+;+,+,+-+,+,+,+;+,+@+;+;+~+,+,+,+>+,+,+,+,+~+;+~+-+>+'+>+>+>+)+~+~+,+~+~+~+'+~+~+'+)+'+)+'+~+,+~+-+~+!+~+)+'+!+^+)+~+~+<+'+'+)+<+'+!+!+_+~+_+'+^+^+'+~+'+'+^+)+^+!+^+_+)+^+<+(+(+^+'+(+(+_+}+(+(+(+(+(+(+^+(+^+(+[+(+(+(+}+(+[+}+[+_+|+(+^+[+(+^+[+[+[+(+^+[+^+(+^+[+_+[+^+^+^+|+|+|+[+[+5+7+5+[+[+[+[+[+[+(+[+}+7+[+[+[+|+5+|+[+",
-"K.K.H.H.H.K.H.H.F.F.V.W.V.H.V.W.V.V.`.V.;+W.`.@+@+@+,+`.;+,+ +>+ +;+-+ + +`.;+-+>+,+,+>+,+,+,+-+,+,+~+,+-+-+-+,+,+,+~+;+>+>+~+@+>+,+>+)+)+>+~+,+,+~+,+,+~+>+)+~+>+)+>+~+~+'+~+-+~+~+~+)+^+~+~+)+'+)+)+'+'+'+^+'+'+^+^+!+^+^+<+~+^+~+^+!+_+'+^+^+)+_+'+<+^+'+_+'+_+(+_+!+_+_+_+_+(+(+_+(+(+(+[+^+^+^+(+(+(+(+_+[+_+[+(+[+[+^+(+(+(+(+[+[+[+^+[+[+[+[+[+|+|+|+|+6+|+6+6+6+5+5+[+[+7+|+}+[+7+[+7+[+[+|+|+6+[+|+|+6+",
-"K.l.H.H.F.F.F.K.K.W.K.W.W.W.V.@+V.W. + +`.W. + +`.`. +`.`.-+ +`.`.@+`.>+,+,+ +,+ +>+@+ +>+-+,+,+-+>+-+>+;+,+,+,+,+,+-+~+;+'+'+~+~+>+>+-+~+>+>+-+,+~+~+~+~+~+)+~+~+~+~+'+~+'+~+'+'+~+'+'+'+_+'+)+)+^+'+~+~+~+)+^+'+'+)+(+~+^+^+~+^+!+^+!+!+'+)+^+!+(+'+'+^+'+_+^+^+!+_+(+^+^+!+_+_+(+_+^+^+(+[+(+(+(+[+[+(+[+[+(+[+[+(+[+[+|+[+[+[+[+[+[+[+[+6+|+|+5+[+|+|+^+|+6+|+6+5+6+6+6+7+5+7+7+[+5+7+[+[+5+6+6+5+7+5+6+6+6+",
-"p.K.F.K.H.F.K.F.F.H.W.W.W.F.W.V. +`.W.`. +&+`.`. + +>+ +;+ +>+>+,+`. +,+ +`.,+ +,+,+,+,+,+>+ +,+`.,+>+,+>+,+,+,+,+,+~+,+-+>+>+>+)+,+'+>+-+~+~+>+~+-+>+>+)+'+,+~+)+~+~+'+'+~+'+'+~+'+~+'+~+~+'+)+'+'+'+'+'+'+'+)+)+^+^+)+^+~+'+_+!+'+)+^+^+^+^+'+^+^+^+)+(+_+^+!+!+(+(+!+(+^+^+(+(+^+(+(+(+^+^+|+[+[+(+(+[+[+|+[+[+|+6+[+|+[+|+[+|+|+|+[+7+5+|+6+5+5+6+5+6+6+6+6+5+5+6+6+6+6+5+[+5+5+5+[+7+5+7+|+7+|+4+6+6+5+6+6+",
-"F.F.F.K.H.F.K.H.F.H.H.F.W.W.W.W.V.`.W. + + + +`.;+`. + +`.`. + + + + +,+>+ +,+`.`.>+`.,+`.-+>+>+-+,+>+,+>+,+-+>+ +>+;+>+,+-+-+,+'+,+~+,+,+>+~+,+~+'+~+>+>+'+'+,+)+'+~+-+'+~+~+'+~+~+~+'+'+~+'+)+'+~+'+^+'+^+'+^+^+'+_+~+^+)+^+_+_+^+)+'+'+'+)+~+~+^+^+)+(+!+_+_+^+(+_+!+(+(+^+^+(+[+(+[+(+|+|+[+|+|+[+[+[+[+5+|+[+|+6+[+6+5+[+5+[+[+6+5+5+6+6+6+6+6+6+5+5+6+6+0+6+8+6+6+6+8+5+5+5+7+9+5+5+5+5+5+5+5+6+7+6+6+7+5+",
-"K.K.K.H.H.H.H.F.W.H.W.W.W.V.Q.`.W.V. +W.`.V.`. +`.`.;+`. +>+>+>+,+;+;+ +>+-+`.@+>+`.>+>+>+ +`.,+,+,+,+>+,+-+,+-+)+;+=+,+~+,+~+~+,+=+=+'+)+~+>+~+>+>+-+~+~+)+-+!+,+'+)+~+-+'+'+'+)+'+)+,+~+'+'+'+'+'+~+~+'+)+)+'+'+~+!+^+'+'+'+'+'+~+^+_+_+^+^+^+^+~+^+(+^+^+(+(+(+^+(+^+^+[+(+[+(+[+[+[+|+[+|+6+|+5+6+|+6+5+[+7+5+6+5+5+5+5+5+7+9+7+5+5+5+6+6+6+5+5+6+6+6+0+6+6+5+5+5+5+5+5+7+8+5+8+5+5+5+5+5+5+8+8+6+6+7+6+5+6+",
-"H.H.H.H.K.F.K.H.H.H.Q.F.W.V.W.V.@+W. +W. + +`.W. + + + +>+ + +>+`.`.;+`. +>+-+`.>+ +`.>+>+,+;+;+;+Z.,+>+>+>+ +,+>+>+~+,+,+-+-+,+,+)+>+,+-+!+,+'+'+,+,+~+'+)+)+'+-+'+'+)+,+'+>+~+,+;+~+,+~+'+'+'+'+'+'+'+'+'+-+)+'+)+,+'+^+'+'+!+(+!+'+(+!+!+!+!+(+!+'+[+(+[+[+[+[+[+[+(+[+[+[+[+|+|+|+5+5+|+5+0+|+6+6+5+6+6+5+8+6+5+6+5+5+0+6+5+5+9+5+8+8+0+0+0+8+5+0+0+6+0+0+b+c+0+0+8+8+5+5+8+5+8+8+8+8+8+8+7+5+6+6+6+7+6+6+5+",
-"F.H.F.F.F.V.K.F.H.F.F.Q.V.W.W.W.W. +W.;+V.;+`. +>+`.`.`. +>+>+$+>+ +`.-+`. + + +>+,+>+ +,+`.`.,+=+,+>+-+~+,+,+>+-+,+,+,+~+>+>+'+,+~+~+~+,+,+)+>+,+)+~+-+-+~+,+,+~+'+)+~+'+~+!+-+'+!+'+~+-+^+)+~+~+'+'+-+)+'+'+'+'+!+!+^+'+~+_+^+!+'+(+!+_+^+^+[+^+[+[+[+[+[+|+[+|+5+[+[+|+6+6+6+5+5+5+5+6+5+6+6+8+5+0+8+8+5+0+0+0+0+5+0+8+8+0+0+8+8+8+8+0+5+6+8+5+8+5+9+0+0+5+5+5+8+b+0+8+0+b+0+0+8+0+8+8+9+5+8+8+9+7+9+5+5+|+6+",
-"F.H.K.K.p.;+p.F.H.H.V.H.V.H.W.V.V. +W.@+`.@+`. +$+ + +Z.`.`.>+`.-+`. + +,+,+,+,+,+>+,+>+>+,+ +>+ +,+ + +~+,+,+>+,+,+,+>+~+'+,+~+,+-+-+~+,+,+,+)+,+>+)+)+>+~+>+>+,+,+)+>+>+'+~+=+-+,+'+)+>+'+)+'+'+)+)+^+)+~+!+'+'+^+!+^+^+!+(+^+(+(+[+(+^+(+^+[+|+[+^+|+|+5+6+5+6+7+5+5+5+0+6+6+5+0+6+6+5+0+5+0+8+5+0+0+0+8+0+8+5+8+g+0+f+8+8+8+5+8+0+g+0+0+0+0+0+9+5+5+5+8+8+9+9+f+8+8+8+8+8+8+0+8+0+8+5+8+5+5+5+5+5+5+9+5+6+6+",
-"H.K.F.K.F.K.H.H.H.V.F.W.Q.W.F.@+W.W. + +V.V. +`. + +`.@+;+`.`. +`.>+;+,+`.;+`.>+ +,+>+>+,+>+>+-+-+>+,+,+,+,+,+>+,+,+-+'+>+,+-+,+=+,+>+>+>+,+>+>+-+,+>+~+=+>+-+)+)+-+-+'+'+)+-+~+~+!+=+'+'+'+^+^+~+^+^+~+(+^+_+!+(+!+[+(+^+[+(+[+(+[+(+[+[+|+[+5+5+|+6+|+6+6+6+6+5+0+5+8+8+5+0+5+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+f+f+f+f+8+f+f+f+f+0+g+8+8+8+8+8+0+8+8+0+8+8+5+9+0+8+8+8+8+8+5+8+5+8+8+8+8+8+0+0+8+8+5+8+6+6+",
-"F.F.K.K.F.W.F.F.H.F.K.V.W.W.W.V.`.W.`.@+`.V. +`.`. +`.`.,+-+`. +,+>+`.>+`. +,+,+ +>+>+ +>+,+>+ +>+>+,+-+-+,+,+,+-+-+-+-+>+)+>+)+,+,+>+>+)+-+-+{+-+,+,+>+,+)+,+,+~+>+-+'+'+'+~+^+~+~+!+!+^+'+)+(+^+^+!+(+(+(+(+^+[+[+(+[+[+[+[+|+|+[+|+5+|+6+6+6+5+5+5+5+0+8+0+0+8+0+8+0+f+0+0+8+0+0+f+f+f+f+f+f+g+8+f+c+f+i+0+g+g+f+f+i+f+f+f+f+0+8+f+f+f+f+f+f+0+8+8+8+8+f+f+5+f+8+8+0+f+8+8+g+0+8+8+5+f+5+j+5+8+5+5+8+7+8+5+6+",
-"p.F.H.F.H.K.K.K.K.F.V.W.V.K.V.W.W.V.@+`.W.`.V.`. + + +;+@+ + +;+;+`. +`.>+>+`.,+,+>+>+,+,+>+>+,+,+,+>+ +>+>+-+`.,+,+,+,+'+>+-+-+-+-+-+,+,+>+>+-+>+-+,+=+'+>+~+~+!+!+~+'+'+^+'+(+!+^+~+^+^+^+(+^+(+^+[+[+[+[+|+[+[+|+|+|+6+[+5+5+5+8+5+6+0+6+6+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+0+h+f+h+h+f+f+h+o+f+f+h+f+i+f+f+o+i+f+h+f+f+m+f+f+f+f+f+f+c+f+f+f+f+f+0+f+f+f+g+8+0+g+8+8+f+5+8+9+f+8+f+5+8+8+8+0+8+5+5+7+8+0+",
-"l.F.H.K.F.H.F.H.K.V.H.H.V.W.W. +W.V.W.`. + +@+@+Z.`. +`. + +`. + +>+&+>+ + + +;+,+-+>+`.,+ + +,+`.,+>+>+-+>+>+ +>+>+=+>+>+>+>+>+)+,+'+-+!+~+>+-+'+)+~+~+~+'+'+'+_+~+'+!+'+^+^+^+(+(+(+(+[+^+[+(+[+[+[+7+5+7+7+[+5+5+6+6+6+6+6+6+6+0+0+0+0+0+0+0+0+f+f+0+0+f+f+0+f+f+f+c+h+f+h+f+h+f+h+h+f+m+f+f+f+m+h+m+h+m+m+h+m+o+m+m+m+m+f+f+o+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+g+f+0+f+0+f+f+5+8+5+8+9+8+f+8+8+8+8+8+5+6+6+6+",
-"p.n.K.F.H.F.H.W.F.K.V.F.V.V.V.V.`.W. +W.W.`.Z.`.@+W.W. +;+;+@+`.,+`.`. +`.`.;+`. + +-+-+-+,+,+ + +>+>+,+ +>+>+>+,+,+ +,+~+-+~+=+,+'+-+,+,+'+'+~+>+'+~+!+!+~+_+_+(+^+(+(+[+(+(+[+|+[+[+|+|+5+7+5+5+6+6+5+5+0+5+6+5+5+5+6+0+0+0+8+0+8+0+0+f+0+f+f+f+0+f+f+f+i+f+f+f+f+h+f+f+h+m+h+h+m+h+m+m+o+h+o+m+f+o+m+o+m+f+o+i+m+m+o+m+f+o+m+m+o+o+o+o+m+m+m+o+f+o+f+f+f+h+f+f+f+g+f+f+f+f+n+8+f+f+5+f+0+8+8+8+8+5+8+8+8+7+6+",
-"8.k.n.F.H.H.H.H.F.H.F.W.W.V.V.K.Z.V. +`.W.W.;+`.;+;+W. +`.`.;+`.`.`. + +;+`.>+ +>+ +>+@+;+;+;+,+,+,+>+>+)+>+,+>+)+!+,+,+'+-+~+=+,+~+'+~+=+!+'+!+~+'+(+(+!+(+(+^+^+|+^+(+[+[+[+|+|+[+|+|+5+5+5+5+5+8+5+8+5+0+0+0+0+0+0+0+f+f+f+f+0+c+f+h+h+i+i+f+h+f+i+h+h+h+m+h+h+m+m+m+m+m+m+o+h+m+o+p+m+o+f+o+m+m+o+m+q+s+m+m+m+q+m+o+m+o+o+f+m+m+m+m+o+o+f+m+o+o+o+o+o+f+m+h+f+f+g+0+g+f+f+8+f+8+8+8+8+f+0+8+0+8+8+6+6+5+7+5+",
-"_.4.4.n.F.H.F.W.K.V.K.F.V.V.F.;+K.@+V.W.`.@+@+V. +W.;+ + + + +;+@+ +`. + +,+ +,+ +>+>+>+`.;+-+Z.,+=+=+-+>+)+,+~+-+,+~+-+)+~+~+~+!+~+~+!+!+'+_+^+(+(+_+(+(+(+[+(+7+(+5+5+5+6+6+0+6+6+6+0+0+0+5+8+f+8+0+8+f+f+f+0+0+f+f+f+f+f+f+f+f+f+i+f+f+f+f+h+m+o+f+o+o+m+o+o+m+p+p+s+p+o+s+o+o+q+m+m+o+o+s+m+m+p+m+s+s+m+t+t+m+s+o+m+o+m+s+m+m+q+m+m+m+m+o+o+m+m+o+f+o+o+f+f+m+f+f+f+0+f+f+f+f+f+f+8+8+8+8+8+8+0+6+8+8+6+5+6+",
-"` _.4.l.l.F.F.V.V.K.V.K.@+V.V.V.V.@+@+`.V.V.;+;+;+`.W. +`.`. +>+,+ +,+-+`.,+>+ + +>+,+;+=+;+,+=+,+,+,+!+,+~+,+~+~+'+~+~+'+!+!+_+(+(+(+_+(+(+(+(+[+[+|+[+5+[+5+[+6+7+[+7+5+0+0+4+0+0+6+0+0+f+f+8+f+f+f+f+f+f+f+f+m+f+f+h+h+m+o+o+m+o+o+o+m+m+o+o+m+p+o+m+m+m+o+o+s+s+p+m+m+o+s+t+m+m+o+m+m+o+x+s+m+s+m+m+t+s+m+t+m+t+t+s+t+o+s+q+m+q+s+m+p+m+o+f+o+m+o+m+o+o+o+f+f+g+n+g+8+f+g+f+8+f+8+f+0+8+0+8+8+0+6+6+6+5+6+6+",
-"_._._.|.k.p.F.F.F.;+F.;+V.W.V.;+;+`.V.`.>+ + +`.`. +,+ +@+ +`.-+>+ +;+;+>+ + +,+,+,+>+,+,+=+-+,+~+~+!+,+!+'+!+!+'+_+_+!+^+^+(+(+^+^+_+(+|+[+7+5+[+7+|+6+5+6+5+5+9+5+8+0+5+8+0+0+c+0+f+f+0+h+f+f+f+f+f+h+h+f+f+m+h+m+m+m+m+m+m+m+o+m+m+m+m+q+s+o+s+s+m+s+q+s+s+m+s+s+s+t+t+t+t+s+y+y+m+y+y+m+y+y+s+s+y+x+m+t+t+s+s+s+s+t+s+s+o+s+m+m+p+s+m+s+m+m+m+o+o+f+o+f+f+i+f+f+f+f+f+g+0+g+f+8+g+f+8+0+8+8+6+6+8+8+7+6+7+6+",
-"_._._._.4.j.E.V.V.V.@+K.Z.@+V. + +,+;+V.`. + +$+Z.;+`. +;+`. + +>+>+`.;+!+-+=+=+;+~+)+;+)+~+'+'+'+_+^+~+!+~+~+(+(+(+^+(+(+_+(+[+[+[+|+|+|+[+6+7+5+6+6+6+5+0+0+0+0+8+8+f+0+c+i+c+f+f+i+i+f+h+f+m+m+m+o+o+o+o+o+m+m+p+m+o+t+o+o+m+t+s+o+y+s+m+s+o+s+s+t+m+x+s+s+s+s+s+s+m+x+m+y+m+s+x+s+s+x+m+x+y+y+m+y+y+x+x+o+y+m+x+s+o+y+m+y+s+t+t+p+q+o+o+p+s+m+m+o+m+o+o+o+i+f+h+h+f+f+f+0+f+g+8+f+0+8+8+5+9+8+6+6+6+6+5+7+5+",
-"` _.4._._.8.k.l.F.V.V.;+V.`. +`.`.@+`. +>+`.>+`.@+`.>+-+Z.;+;+>+,+-+;+=+,+,+,+,+!+,+)+'+!+~+~+_+~+_+(+(+^+^+(+(+(+^+}+}+(+5+[+[+}+6+6+6+6+0+6+5+5+8+0+8+8+b+8+8+8+8+f+8+8+f+f+f+i+h+h+h+i+m+m+o+o+o+m+m+m+o+m+m+p+p+s+s+s+s+s+t+s+y+x+s+o+y+y+w+y+m+x+x+s+s+x+t+y+y+y+y+x+y+x+w+y+o+y+y+y+y+y+o+y+y+x+m+x+x+x+s+y+o+x+m+s+y+m+t+o+s+t+m+m+o+o+m+o+o+o+o+o+o+f+f+i+i+f+f+h+f+f+8+f+0+8+f+8+8+0+8+5+8+8+5+6+6+5+|+",
-"|.` _.4._._.4.k.F.V.V. +@+ +$+`.`. +`. + +`.@+ + +,+ +>+-+,+;+,+;+=+!+~+'+)+~+'+~+_+_+)+_+(+!+_+(+_+^+(+(+}+}+}+[+[+|+4+|+6+6+6+4+6+8+0+6+7+0+0+8+0+0+0+0+0+f+f+f+f+f+i+h+h+m+h+h+o+o+m+p+p+m+o+m+s+m+t+s+s+y+m+s+m+s+t+m+y+x+y+m+y+y+m+x+y+x+y+y+y+m+x+x+x+y+m+x+m+x+y+x+y+x+y+y+y+y+y+y+y+y+w+y+w+y+y+o+x+x+m+y+x+x+y+m+y+s+s+y+s+o+t+s+o+o+m+o+o+o+o+o+o+o+f+f+i+h+0+c+c+i+f+f+8+8+0+0+b+8+8+6+6+6+8+|+6+6+[+",
-"_._._._._._._.4.j.E.V.Z.`.-+ +>+`.;+,+-+>+>+,+,+>+-+=+=+,+-+!+=+'+'+~+'+)+!+(+~+^+'+~+_+!+_+_+(+[+[+(+|+|+[+[+[+[+|+6+7+6+6+8+6+8+8+4+b+b+0+8+8+f+c+c+c+c+h+0+f+f+f+h+h+m+p+p+o+q+p+p+p+p+m+o+m+s+s+s+m+s+y+s+s+x+x+x+x+y+x+x+x+y+m+y+y+y+y+y+y+y+y+y+y+m+y+x+y+y+x+y+y+y+y+x+y+y+y+y+y+x+y+y+x+y+x+y+y+y+y+y+y+x+y+y+y+y+x+o+y+o+t+s+s+o+m+m+o+o+o+o+m+m+f+i+h+o+c+c+k+h+0+f+c+c+c+c+8+8+8+5+6+6+6+8+6+4+|+|+6+",
-"_.` 8.` _.8._._.|.k.l.V.`.-+>+-+Z.`.,+`.,+,+,+,+>+~+~+~+~+'+~+~+~+^+^+^+'+'+(+!+^+^+(+}+^+[+(+(+(+6+|+5+|+6+4+}+5+6+5+7+6+0+0+8+8+0+0+8+8+8+f+f+c+c+i+i+c+i+i+f+f+n+o+o+p+p+p+m+m+m+o+m+s+s+s+y+o+y+m+y+m+y+y+s+y+y+y+x+y+y+y+x+y+x+x+x+x+y+y+y+y+y+y+x+B+y+x+x+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+x+x+y+y+o+y+y+o+y+s+o+y+y+s+s+y+o+o+s+t+m+m+s+m+o+m+m+o+f+o+i+f+h+h+c+c+0+i+f+8+8+c+c+6+0+8+8+7+7+6+7+6+6+4+|+",
-"8.H ` _._._._._.4._.j.E.Z.`.-+>+;+;+;+,+,+'+~+!+!+-+,+'+'+'+^+!+~+_+~+~+^+(+(+(+[+}+[+(+[+}+}+6+|+7+7+|+5+6+6+6+6+8+0+5+5+8+4+0+c+c+0+c+c+c+c+h+i+h+i+i+i+m+f+f+f+m+m+p+m+p+m+m+p+t+m+t+s+s+y+s+x+y+y+y+y+y+s+y+x+y+y+y+x+y+x+y+B+y+B+y+x+x+y+B+x+B+B+B+B+y+y+y+B+A+B+y+y+y+y+y+x+y+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+m+y+y+t+s+o+y+m+y+m+o+s+t+m+o+m+m+i+o+f+o+i+h+h+c+f+f+0+g+c+c+0+6+6+5+5+6+7+6+6+5+7+6+|+|+|+|+",
-"` 8.8.8._._.4.4._._._.4.F.Z.,+>+'+)+~+,+,+,+~+~+~+~+~+^+~+_+^+(+^+^+(+(+_+(+[+(+[+(+7+}+|+|+}+6+6+6+9+5+5+8+6+6+9+8+0+8+b+8+0+0+f+c+0+0+8+f+c+k+i+k+h+o+f+m+o+m+o+s+m+p+s+s+s+m+s+y+s+y+s+s+y+y+o+y+y+y+y+y+x+y+x+x+y+y+y+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+C+B+C+A+B+y+B+y+y+y+y+B+y+y+y+y+y+y+y+y+y+x+y+y+y+y+x+o+y+s+s+s+o+s+o+y+o+m+t+m+o+m+o+f+m+h+i+i+i+i+c+c+i+0+f+c+0+0+8+0+8+7+8+7+|+4+6+6+|+|+}+}+}+",
-"_._._._.8.4._._.4._.8.j.j.F.Z.'+,+=+'+'+~+'+'+'+!+(+'+_+^+(+(+^+(+[+|+^+|+(+}+7+5+|+5+6+6+6+6+6+6+6+6+8+8+5+0+8+0+0+8+0+f+i+8+i+f+i+i+g+h+f+f+f+h+m+m+o+q+m+m+s+m+s+s+s+s+s+t+t+s+s+o+y+y+y+x+y+y+y+x+y+y+y+y+y+y+B+B+B+B+B+B+C+B+B+B+B+B+B+B+B+C+A+B+C+C+C+C+A+C+C+B+B+B+B+y+y+B+y+C+A+y+y+y+y+y+y+y+y+w+m+x+x+m+y+x+s+o+s+y+m+o+y+m+s+o+m+q+o+o+i+o+k+k+i+f+i+0+f+i+0+c+0+0+g+8+6+6+6+5+5+5+6+6+6+[+7+}+[+^+^+",
-"_._._._.4.|.|.4.4.4.4.k.j.l.F.Z.;+!+~+'+_+_+^+^+^+(+^+^+^+_+(+^+}+[+|+|+|+[+|+|+6+|+6+6+6+6+6+5+0+0+c+8+0+8+8+8+b+c+g+0+f+i+0+i+f+f+f+g+i+m+m+o+h+m+m+m+q+p+o+t+t+t+m+s+y+s+s+o+y+x+y+y+x+y+x+x+y+y+x+y+B+y+B+B+B+B+C+C+B+C+B+C+B+C+A+C+C+A+C+C+D+C+C+C+C+C+C+D+C+C+C+B+C+C+A+C+B+B+y+B+y+y+C+y+y+x+y+x+y+y+y+x+x+o+y+m+y+y+o+x+m+y+m+m+t+m+m+i+f+f+h+h+k+i+0+g+8+8+g+8+8+8+8+b+8+6+5+5+|+6+6+6+6+7+[+[+}+[+(+}+",
-"_._.8.8.j.4.4.4.4.|._.4.4.k.k.V.,+~+^+_+!+^+_+!+(+^+[+|+(+[+}+[+[+|+6+5+6+|+6+6+6+8+6+0+6+6+5+8+5+8+8+8+8+g+0+f+0+f+0+h+h+h+i+f+m+o+o+f+o+o+m+o+o+o+m+s+m+y+x+m+y+x+y+y+s+y+y+y+x+y+y+y+y+A+B+B+B+B+B+B+B+B+B+B+C+C+C+C+C+C+C+C+D+C+D+D+C+D+C+C+D+D+C+D+C+C+C+C+C+C+C+B+B+B+B+B+C+B+B+C+y+B+y+y+y+y+y+y+y+y+x+x+x+x+y+y+s+m+s+m+y+o+q+p+m+p+o+f+f+h+h+c+f+0+g+8+8+0+f+0+4+8+6+0+6+2+7+6+5+6+|+|+}+}+[+}+[+(+(+(+",
-"4.4._.4.j.4.j.k.k.4.4.8.4.|.4.k.V.`.'+^+^+^+_+(+}+^+}+|+[+|+|+4+|+|+6+6+8+6+6+7+6+6+|+0+0+8+5+8+8+0+0+8+0+i+8+g+f+i+i+i+c+m+m+o+o+f+m+m+p+t+m+o+t+m+o+x+s+y+y+s+y+y+y+y+x+y+y+y+x+x+x+y+B+B+A+B+B+C+C+C+C+C+B+C+C+C+C+D+C+C+D+C+D+C+C+D+D+D+E+D+D+C+D+C+D+F+C+C+C+C+C+C+B+B+B+y+B+B+y+B+B+B+B+B+y+y+y+y+y+o+y+m+y+y+t+y+o+y+o+s+s+m+m+h+m+o+o+h+i+c+h+f+8+0+0+0+8+8+8+8+8+8+6+8+6+|+7+6+6+6+|+6+|+2+}+|+[+}+(+(+",
-"k.4.4.4.4.8.j.k.4.8.8.4.4.4.4.4.k.Z.Z.'+(+^+(+(+[+|+|+|+7+7+7+|+4+6+6+6+5+6+9+5+8+b+0+6+7+5+f+0+8+8+b+f+f+c+c+f+i+i+i+f+m+o+i+m+m+m+o+o+s+s+t+m+s+s+x+o+t+x+m+y+y+y+y+y+y+y+y+y+B+B+B+B+C+B+B+B+C+C+C+C+C+D+C+C+C+C+E+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+C+C+C+C+C+C+B+F+C+C+C+A+C+B+B+B+y+y+B+y+y+y+y+x+y+y+y+x+x+y+m+m+y+s+s+m+t+o+m+m+q+p+k+p+i+i+i+f+0+8+8+8+0+8+8+6+0+5+6+6+8+6+6+4+6+4+4+[+|+4+4+|+[+(+}+(+^+_+",
-"_.4.j.k.j.4.k.k._.4.4.4.|.k.4.4.k.F.S.-+[+|+|+[+[+6+|+|+|+|+6+|+6+6+8+0+5+5+0+8+8+b+8+0+b+0+b+0+b+0+c+i+i+h+f+f+f+f+m+f+m+m+p+o+t+s+m+y+o+x+o+y+y+m+x+x+y+y+x+x+y+y+y+y+B+y+B+B+B+C+B+B+C+C+C+C+D+D+D+C+D+C+D+D+D+D+C+E+D+D+D+D+D+D+D+D+D+D+D+D+D+F+D+C+D+D+E+C+B+C+B+C+C+C+B+B+C+y+B+y+B+B+y+y+y+y+y+m+y+y+m+y+y+s+t+m+m+m+s+m+p+f+i+m+i+i+g+f+c+b+f+9+8+8+5+8+0+4+c+0+6+6+|+6+6+6+|+|+7+}+}+^+^+|+}+(+}+_+^+^+",
-"4.4.4.4.4.j.k.k.4.4.4.k.4.4.4.4.k.k.n.`.'+_+|+|+4+|+|+6+6+|+5+7+|+8+6+8+0+6+8+4+0+8+b+8+f+i+f+b+f+g+i+h+o+f+h+i+m+m+o+m+m+s+t+s+m+o+y+y+x+y+x+x+x+y+y+y+y+y+B+y+C+B+C+B+B+B+B+C+C+D+C+C+D+D+C+D+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+E+D+E+D+E+D+D+D+D+E+D+D+C+D+D+D+C+C+B+B+D+B+B+B+B+B+y+B+y+y+y+y+y+y+x+y+x+x+s+y+s+s+o+s+y+o+o+o+q+o+h+h+f+i+i+c+8+8+0+8+5+9+5+0+0+8+6+6+|+0+|+6+6+4+4+|+|+|+|+^+}+|+^+(+^+^+(+_+_+",
-"_.4.k.4.4.k.|.4.j.j.j.j.k.j.j.4.4.4.4.S.`.!+6+6+6+6+6+5+6+6+6+5+5+5+0+8+0+6+0+8+0+8+i+0+g+f+f+f+0+g+i+f+o+o+m+p+m+m+t+s+s+s+s+x+x+x+x+x+y+y+x+y+y+x+B+B+B+B+C+C+B+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+E+D+D+E+E+E+D+E+D+D+D+D+D+D+D+D+C+D+E+C+C+B+C+B+C+A+C+B+y+C+y+y+y+y+y+y+y+y+y+f+x+s+m+x+s+m+m+s+p+m+m+m+m+f+h+f+h+i+g+g+8+8+8+8+5+7+6+4+8+6+4+4+6+6+4+|+|+4+|+^+4+[+^+}+}+^+_+_+)+^+!+'+",
-"4.4.4.8.4.4.4.j.k.4.j.k.j.j.j.j.j.8.j.k.E.Z._+7+6+6+6+8+6+6+0+8+8+8+8+8+8+0+8+c+b+g+f+i+f+i+m+h+f+f+f+m+o+o+q+m+t+t+s+y+y+o+y+y+y+y+x+y+B+y+B+B+B+B+B+B+B+B+C+C+D+C+C+D+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+D+C+D+E+D+D+D+D+E+D+E+D+D+D+D+D+E+D+E+E+D+C+D+C+C+B+C+A+C+B+B+B+C+A+y+y+y+y+y+y+y+y+y+y+x+x+x+s+o+y+p+s+o+o+q+o+i+i+o+i+h+f+0+0+0+5+8+5+0+8+8+6+6+6+4+6+}+|+6+|+4+4+4+^+(+_+_+|+)+^+^+^+!+'+)+'+~+",
-"4.k.4.4.j.4.4.j.k.4.j.j.j.j.j.4.8.j.8.4.k.E.=+}+6+6+5+5+0+5+8+5+8+8+0+0+g+f+0+f+0+g+f+f+o+i+o+p+m+o+o+s+s+y+t+o+y+o+m+x+y+y+x+y+x+B+y+B+x+B+B+B+B+B+C+C+B+C+C+C+D+D+E+D+D+D+D+D+D+D+D+D+E+D+E+D+E+D+E+D+D+D+E+E+C+D+E+E+E+D+D+E+D+F+E+D+D+E+D+D+D+D+C+D+C+D+C+C+B+C+C+A+C+B+B+y+A+B+y+y+x+y+y+y+x+x+y+o+s+t+s+m+p+p+m+o+f+h+o+i+i+i+i+c+i+c+8+8+8+8+6+6+6+|+|+4+6+4+^+4+4+|+|+^+^+(+|+[+^+^+^+^+~+(+'+)+~+)+'+~+",
-"j.4.4.4.k.4.j.k.k.j.j.j.j.j.j.j.j.j.j.j.4.k.S.=+(+6+8+8+8+c+0+8+8+8+i+f+f+i+i+f+i+i+i+o+f+m+s+m+m+s+s+t+y+m+w+y+y+x+y+y+y+B+y+B+B+B+B+B+C+C+C+C+C+C+D+C+C+D+D+D+D+D+E+D+D+D+E+E+D+F+E+D+E+E+E+E+E+F+E+F+E+E+E+E+E+D+E+D+D+E+E+D+E+D+D+E+E+D+D+D+D+C+D+C+B+C+C+C+B+B+C+B+B+B+B+B+B+y+x+y+y+x+x+m+x+y+m+s+o+m+m+m+o+m+o+f+i+o+f+i+f+f+0+b+8+8+6+0+5+6+6+6+6+6+6+^+4+|+|+^+|+(+^+^+^+4+^+)+)+'+^+~+)+_+)+~+'+~+>+,+",
-"j.j.j.|.|.4.j.k.k.4.j.j.j.j.j.j.j.j.j.j.k.|.j.S.=+[+5+5+8+b+f+g+0+g+f+i+i+i+h+m+m+m+m+m+o+m+x+s+t+s+y+m+y+x+y+y+y+y+A+x+B+y+B+B+B+C+C+C+C+C+D+C+D+D+D+D+D+D+D+D+E+E+E+D+D+E+D+E+D+D+F+D+D+D+E+D+E+D+D+E+D+E+E+D+E+D+E+E+F+D+E+D+E+E+F+D+D+E+D+D+E+D+C+C+y+y+B+B+A+B+B+B+B+y+y+y+y+B+y+x+y+y+x+y+m+x+s+m+s+p+m+m+i+i+h+f+h+h+h+f+0+b+f+b+6+0+6+0+7+7+6+6+|+4+|+[+^+|+|+^+|+|+^+_+^+)+^+^+)+)+^+'+)+~+)+)+-+~+>+,+",
-"j.k.n.k._.k.j.E.4.j.j.j.j.j.j.j.j.j.E.E.4.j.4.k.S.=+5+f+f+f+f+f+g+f+i+h+h+p+p+p+m+q+o+y+y+x+s+y+y+y+x+y+y+y+y+y+B+A+B+B+C+C+A+C+D+C+D+C+D+C+D+D+C+D+D+D+D+D+D+D+D+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+E+E+E+D+E+E+E+E+D+E+D+E+D+E+E+D+D+D+E+C+C+D+D+C+C+B+B+B+y+B+B+B+y+y+B+y+B+y+y+y+x+m+y+x+y+m+s+m+m+p+m+q+q+i+o+f+f+h+g+g+8+0+b+0+b+8+6+8+9+|+6+[+5+5+|+|+[+^+}+_+}+[+^+_+_+^+)+^+^+'+~+'+)+<+~+)+~+,+>+>+,+-+",
-"k.k.|.4._.j.k.j.j.j.j.E.E.j.S.j.E.E.E.E.E.j.8.j.k.S.(+0+g+g+f+f+o+o+m+o+m+m+m+p+s+x+s+s+o+x+x+x+y+y+y+x+x+y+y+B+B+B+B+C+C+D+C+D+D+C+D+D+D+D+D+D+D+D+D+D+E+D+F+D+E+E+F+E+E+E+E+E+E+E+E+E+E+D+E+E+E+F+E+E+E+D+E+E+D+E+E+E+F+D+D+D+E+E+D+D+D+D+C+D+D+C+B+C+B+x+x+x+y+B+y+C+y+y+y+y+x+x+y+x+x+m+m+y+s+s+m+o+h+f+m+h+h+f+g+f+0+g+b+8+9+5+8+6+6+6+7+5+5+}+[+}+[+^+}+_+^+(+}+_+^+~+~+~+_+_+_+'+)+)+)+)+~+-+~+)+>+>+>+,+",
-"k.k.4.4.4.j.E.j.k.k.j.E.E.E.S.S.E.E.E.k.k.j.j.j.j.j.=+|+f+f+m+m+o+p+p+m+q+p+s+y+s+o+y+y+y+y+x+y+y+y+B+B+B+B+C+C+C+C+C+C+C+D+E+D+D+D+D+D+D+E+D+D+E+D+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+D+D+E+C+D+D+C+C+B+B+B+B+C+B+x+p+x+x+x+y+x+x+x+x+x+y+x+m+m+s+s+m+f+m+o+o+o+m+i+f+i+g+0+0+g+0+0+8+5+8+5+7+6+6+5+[+|+7+}+(+^+^+^+(+(+_+^+_+~+^+~+~+~+'+'+<+~+)+)+>+>+>+-+,+>+>+,+ +",
-"|.4.4.4.j.j.j.E.F.k.E.k.j.j.S.E.E.E.E.E.E.k.j.j.j.j.E.!+6+o+o+s+m+o+y+s+y+o+x+y+x+y+y+y+y+B+B+B+B+A+B+A+C+C+C+C+D+D+D+C+D+C+D+D+D+D+D+E+D+E+E+E+F+E+F+E+E+E+F+E+F+D+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+D+D+D+C+D+E+B+B+B+A+y+C+x+B+x+p+m+m+x+B+y+y+y+x+m+y+m+x+m+m+s+p+o+m+h+f+i+f+c+g+8+g+8+8+6+8+8+8+5+6+6+6+|+|+|+[+[+(+}+_+_+^+^+^+^+^+^+_+~+)+'+'+'+)+~+)+>+>+~+'+,+>+,+>+@+>+-+>+",
-"4.j.j.4.j.j.j.j.E.k.k.j.j.E.E.E.j.E.E.j.E.E.j.j.j.j.j.S.[+f+m+s+y+s+m+y+y+y+y+y+A+x+y+y+B+B+B+B+B+D+C+C+D+C+D+D+C+D+E+C+E+E+D+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+F+E+F+E+F+F+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+E+D+E+E+E+D+E+E+D+D+E+D+E+D+E+C+C+C+B+C+B+y+y+B+y+y+t+s+p+p+m+s+m+x+o+o+y+s+y+o+p+p+m+m+p+o+i+h+0+c+f+f+g+5+6+5+8+6+6+6+6+7+6+4+6+6+|+|+^+(+^+(+(+!+^+_+^+^+^+'+-+'+'+)+)+~+,+!+;+,+>+@+,+~+@+;+,+;+&+ +",
-"j.j.j.j.k.j.j.E.E.k.k.j.j.S.E.j.E.S.S.E.j.E.E.j.j.j.j.j.Z.|+f+t+o+y+x+x+y+y+y+y+B+B+B+B+B+C+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+E+E+E+D+E+E+F+E+E+E+E+F+F+F+E+F+F+F+F+F+F+F+E+E+F+F+G+E+E+E+E+F+E+E+E+E+E+F+F+E+E+E+E+E+D+E+D+E+E+D+D+D+C+C+C+C+C+y+B+y+y+B+C+B+x+y+y+s+p+h+h+s+o+y+m+s+m+m+s+m+m+i+i+k+i+8+c+f+8+8+0+8+9+6+5+5+6+7+|+6+4+|+|+4+^+^+(+}+(+)+_+(+!+(+'+~+~+>+)+'+>+)+~+'+~+@+~+@+)+,+;+,+,+`.`. +`. + +",
-"j.j.E.E.E.j.j.E.S.k.j.j.j.S.E.E.j.S.F.E.E.j.E.E.S.E.j.k.j.Z.0+m+y+y+B+y+B+C+B+C+B+C+B+C+C+C+D+D+D+C+D+C+D+D+D+E+D+D+E+D+E+E+E+D+E+D+F+F+F+E+F+F+E+E+E+F+E+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+E+F+F+E+E+E+F+E+F+E+E+E+D+E+D+D+E+D+C+D+C+C+B+C+B+B+B+y+y+y+x+y+x+x+o+m+h+f+f+s+m+o+t+m+m+o+o+i+h+h+f+f+c+8+0+b+8+8+4+8+7+|+4+8+|+7+|+5+[+[+^+^+|+_+_+'+^+'+_+_+^+~+'+'+~+~+,+~+,+>+)+>+)+>+,+ + +>+`.`. +@+`.`. + +",
-"k.E.E.k.k.j.j.S.S.F.j.j.S.S.E.E.j.S.F.k.k.j.S.S.E.S.E.j.8.j.(+f+x+y+B+B+B+B+C+C+D+C+D+C+D+D+D+C+E+D+D+D+D+D+E+E+E+E+F+D+E+E+E+E+F+E+E+F+F+E+F+G+F+G+F+F+F+G+G+F+F+F+G+F+F+F+F+G+E+F+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+D+D+D+D+D+C+D+C+C+B+A+B+B+B+y+y+x+B+y+y+y+x+x+s+p+h+f+0+m+m+s+m+p+h+h+h+i+i+c+8+8+6+8+0+8+8+7+[+6+6+|+|+|+[+|+|+|+^+(+|+_+(+^+_+~+~+'+_+~+^+-+)+'+,+~+-+>+)+>+,+>+>+ + + +-+ + +;+`. +W. +`.V.",
-"E.E.E.k.j.j.E.S.V.j.j.j.S.E.S.E.S.E.E.E.j.E.j.E.E.k.j.j.j.j.S.5+o+B+B+B+C+C+C+C+D+C+D+D+D+E+D+F+D+E+E+E+D+F+E+E+E+E+D+E+E+F+F+E+E+F+F+F+F+F+G+F+G+F+F+F+F+F+F+F+G+G+F+F+F+G+F+F+F+E+F+F+F+F+E+F+E+E+E+E+E+C+E+E+E+D+D+D+D+C+D+C+C+C+B+B+A+B+y+x+y+y+x+x+x+s+y+m+t+o+m+f+h+q+m+h+o+q+i+c+c+i+f+0+8+8+6+6+5+7+6+5+[+|+}+|+|+}+^+[+|+^+[+(+!+'+'+!+'+'+'+_+'+'+,+)+>+>+,+{+>+~+ +>+>+`.`. +,+`. +`.;+W. +W. +V.@+ +",
-"k.k.j.E.j.j.E.E.S.E.8.E.S.E.E.E.S.S.E.j.j.j.E.E.j.E.j.j.j.j.j.!+5+x+C+C+E+C+D+D+E+D+D+D+E+D+E+E+E+E+E+E+F+E+E+E+F+E+E+F+E+F+F+F+G+F+G+G+F+F+F+E+F+G+G+G+F+G+G+F+F+G+G+F+F+F+F+G+F+F+F+E+E+F+F+F+E+F+E+E+E+E+E+C+E+C+C+C+C+C+C+C+A+C+A+B+y+B+y+x+y+y+x+t+t+m+t+s+s+q+o+f+m+p+o+c+f+f+i+0+0+0+8+8+6+6+6+b+6+6+6+7+7+[+[+|+[+}+(+_+^+_+_+_+(+~+_+<+)+-+'+~+)+~+~+'+>+>+,+>+>+,+>+,+>+ + + + +;+ + + +W. +W.@+W.W.W.",
-"j.j.E.j.E.E.E.E.E.S.8.E.E.E.j.S.E.S.k.E.j.E.S.j.E.S.E.E.S.j.j.j.[+f+B+C+D+E+D+C+E+D+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+F+F+F+F+F+E+F+E+G+F+F+G+G+F+F+G+F+F+F+G+F+F+F+G+F+E+G+F+F+E+E+F+E+E+F+E+E+E+F+E+C+E+D+C+D+D+E+D+D+D+C+C+A+B+B+B+y+y+B+y+y+y+y+x+x+o+s+s+o+s+o+o+f+o+o+f+i+h+i+b+0+0+c+6+8+8+6+6+6+6+|+6+}+6+|+^+4+|+(+(+(+^+^+^+^+(+(+~+'+'+)+'+,+)+)+,+>+>+>+-+,+>+>+)+ +;+ +@+;+ + + + + +`.V.@+W.@+W.K.W.W.",
-"j.j.j.S.S.E.S.E.j.S.S.S.E.E.j.;+E.E.E.j.S.S.S.E.S.E.E.S.S.j.j.j.E.[+m+D+D+D+F+D+E+F+D+F+E+E+F+E+E+F+E+G+E+F+F+F+E+F+F+G+F+F+F+G+F+G+G+G+G+G+G+F+G+G+F+F+F+F+F+F+G+G+E+F+F+F+F+E+F+F+C+E+F+E+E+E+E+E+C+D+C+D+D+C+D+C+C+C+C+B+A+y+y+B+x+B+y+y+t+y+y+y+o+o+s+o+m+m+m+m+f+h+h+i+f+0+8+f+8+4+b+5+5+7+|+4+|+|+|+}+^+[+^+_+}+|+_+'+~+~+'+^+'+^+_+,+'+)+-+-+>+~+,+,+-+ +>+$+>+,+,+ +`.`.W.@+W.W. +W.W. +W.V.W.@+V.@+@+W.",
-"S.j.E.S.S.j.S.j.S.S.S.E.E.E.E.S.E.S.j.E.j.S.S.S.S.S.S.S.k.j.j.j.j.S.0+B+D+F+D+E+F+F+E+E+F+G+E+F+F+F+F+F+G+F+F+F+F+F+F+G+G+G+G+F+G+G+G+F+G+G+G+G+G+F+G+F+G+G+G+G+G+F+F+F+F+F+E+F+F+F+E+E+D+E+E+E+E+D+D+D+C+C+C+C+B+A+C+C+B+y+B+B+x+x+y+x+y+x+o+t+s+m+m+m+o+m+o+p+k+f+i+c+c+c+b+8+0+8+6+0+6+6+6+5+|+|+|+|+^+4+}+^+(+(+(+_+'+'+'+~+~+'+'+~+'+~+,+'+>+>+>+>+>+>+ +-+ + +>+ + +>+ +@+Z.V.`. + +K.@+V.V.@+V.K.K.H.W.K.",
-"E.j.S.S.E.E.E.j.j.S.S.E.E.S.E.E.S.E.E.E.E.S.S.j.S.S.S.S.S.j.k.j.j.j.(+f+C+E+F+E+F+F+F+F+F+G+G+G+G+G+G+F+G+G+G+G+F+G+F+G+G+F+G+G+G+F+G+G+G+F+F+F+G+G+G+F+F+F+F+F+G+G+E+F+E+F+E+E+F+F+E+E+E+C+D+D+D+D+C+D+B+C+C+B+C+B+B+A+B+y+A+y+y+y+y+x+y+s+s+t+p+t+m+m+p+m+o+h+i+f+f+f+b+6+0+8+0+6+6+6+6+6+|+6+[+|+^+|+^+^+_+'+^+_+!+(+^+^+'+~+~+'+,+,+'+~+>+~+,+-+>+,+ + + +`. +`.`.`. +W.`.@+@+Q.W.W.V.V.@+W.V.@+F.W.W.W.W.K.",
-"j.j.S.S.E.S.j.j.S.j.;+j.S.S.E.E.E.E.E.S.E.E.S.j.E.S.S.S.S.S.j.j.8.j.E.[+x+D+D+F+F+F+F+F+F+G+F+F+F+G+G+G+G+G+G+G+G+F+G+G+G+G+F+G+G+G+G+G+F+G+G+G+G+F+F+G+F+F+E+F+F+F+F+C+F+D+E+E+E+D+D+C+E+E+C+C+C+C+C+C+C+B+B+B+B+B+B+B+y+y+x+y+x+t+y+y+o+p+m+m+o+h+i+h+o+o+f+o+i+c+c+4+6+5+|+c+4+4+6+6+7+(+}+[+}+(+[+_+^+^+'+_+~+_+_+)+~+~+~+-+-+,+'+~+,+-+,+,+`.,+>+>+,+`. + +`. +&+ +`. +Q.W.V.W.W.;+K.W.W.F.@+F.@+K.H.H.H.W.",
-"E.E.j.S.S.j.S.S.S.S.S.S.;+S.E.;+j.E.S.j.S.S.S.j.S.E.E.S.S.E.k.j.j._.j.E.f+B+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+G+G+G+F+F+G+G+F+F+E+F+F+F+E+E+E+E+E+E+E+E+D+D+E+D+C+D+C+C+B+B+C+B+y+B+y+B+y+y+y+x+s+s+t+o+s+o+p+p+m+o+i+o+h+i+m+c+i+b+8+0+6+6+5+|+0+4+6+|+|+6+|+(+(+_+^+(+(+^+^+)+^+!+)+_+^+>+)+~+)+>+>+ +,+;+,+>+,+`.`. + +@+`.`.`.`.`. +;+V.V.W.W.@+W.W.V.W.W.W.V.K.K.K.K.Q.W.K.H.",
-"j.E.S.j.S.S.S.j.E.j.S.j.S.S.S.S.S.S.S.S.S.Z.S.S.S.j.E.E.-+k.E.j.j.j.j.j.(+m+C+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+G+C+F+E+E+E+E+E+D+D+E+D+D+D+D+C+C+B+C+C+C+C+A+B+y+y+B+y+x+x+t+s+y+y+y+s+x+o+q+p+o+o+i+i+c+o+b+f+i+c+c+|+4+4+6+8+8+6+|+|+4+|+6+|+_+_+(+(+^+^+_+^+)+^+_+'+'+^+~+~+,+-+,+>+,+-+,+-+,+ + + +`.-+`.`. + + +W.W.@+W. +W.W.W.V.Q.W.W.H.W.Q.Q.K.V.V.W.H.K.H.K.",
-"S.j.j.S.S.S.8.S.j.j.E.S.S.S.S.Z.S.E.j.S.(+S.Z.E.S.E.E.S.E.E.E.E.j.j.j.j.j.5+x+D+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+E+F+F+E+F+E+E+D+E+D+D+E+E+E+C+C+C+C+C+A+C+B+B+B+B+y+y+y+y+x+s+o+m+m+s+o+m+s+m+q+h+f+h+f+c+8+f+4+0+c+b+4+^+|+|+6+7+7+|+^+|+^+|+|+^+^+_+^+'+'+^+'+^+'+-+'+~+,+,+,+-+)+'+,+ + + + +,+,+`.`. + +@+W.`.W. + + +V.W.W.W.W.W.K.V.K.K.K.K.W.V.W.K.K.H.H.Q.H.H.K.",
-"S.S.j.j.S.!+j.S.S.8.j.E.E.E.S.S.;+S.j.S.=+Z.Z.E.S.E.E.S.E.E.j.j.j.E.k.j.8.S.f+C+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+G+C+F+F+F+E+E+E+D+E+E+D+D+E+D+C+C+C+C+C+A+B+B+B+B+B+B+y+y+v+y+x+s+m+x+m+s+y+o+m+q+o+i+h+k+h+i+c+0+c+0+4+b+0+6+|+'+|+6+|+6+[+^+|+^+^+4+^+(+(+^+^+)+)+_+)+'+)+'+'+'+,+,+~+,+ +>+>+>+ +,+;+ +`.>+ +W.;+`.`.W.`.V.@+W.W.W.@+H.@+V.K.@+K.W.W.W.K.K.H.H.K.K.Q.K.H.m.t.",
-"E.E.j.S.;+j.j.!+j.S.S.S.E.S.;+E.S.8.S.S.S.S.S.E.E.S.E.E.E.S.E.E.j.E.j.j.8.j.5+x+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+G+G+G+G+E+F+G+F+C+F+E+C+E+C+D+D+D+D+D+D+C+B+C+B+B+y+y+B+B+y+y+x+x+y+s+y+s+t+o+q+o+p+m+o+m+h+k+c+0+k+c+0+b+8+c+6+|+4+0+6+^+^+|+|+|+|+|+^+|+^+^+^+'+_+~+'+'+)+)+^+)+'+)+)+'+,+`.>+ +,+-+`.,+,+ +`.;+ +`. +`. +@+V.;+V.W.W.@+Q. +W.W.H.K.W.K.V.K.H.K.F.K.H.m.H.s.w.Q.s.H.w.w.",
-"S.j.S.S.S.j.j.(+Z.S.S.E.E.S.S.Z.S.j.j.S.S.S.S.E.S.S.E.E.E.V.k.j.E.j.j.j.4.j.E.f+C+G+G+G+G+G+G+G+G+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+G+G+F+E+F+F+E+E+E+D+E+E+E+E+E+D+D+C+C+D+A+C+A+B+y+x+B+y+y+x+B+t+x+s+m+s+t+m+p+m+m+h+k+p+i+c+0+0+c+0+c+4+6+6+6+^+^+6+c+^+^+!+4+^+4+^+^+!+^+^+^+^+^+_+_+)+^+'+^+)+>+>+>+>+>+`. + +,+`. + + + +;+`.W.`.V.`.W.W.V.@+W.K. +W.W.W.H.Q.K.V.W.H.H.K.H.H.H.K.H.K.t.w.K.H.s.w.m.m.s.",
-"E.S.S.S.j.S.S.S.S.Z.S.S.S.S.S.S.S.S.E.j.S.Z.S.E.E.E.j.j.S.S.j.j.j.j.k.j.8.j.j.!+s+F+G+G+G+G+G+G+G+E+F+F+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+F+F+F+E+E+E+D+E+D+D+C+E+C+D+C+B+C+B+C+y+B+B+x+y+x+t+s+s+t+o+s+p+s+i+o+i+k+i+f+f+i+c+0+8+0+c+6+4+|+|+6+4+^+^+6+|+[+)+^+|+^+4+'+^+^+(+^+'+'+^+~+~+'+'+~+>+)+)+-+>+,+>+ + + + +;+`.W.>+ + +`. + +W.W.@+ +W.V.K.@+K.V.W.K.K.V.K.K.K.H.H.t.K.H.s.K.s.K.m.w.w.m.w.m.m.m.m.",
-"S.j.S.S.S.j.!+Z.S.Z.Z.S.Z.S.E.S.Z.S.S.S.S.Z.E.E.S.k.j.E.S.k.j.E.j.E.j.4.j.8.4.k.6+B+G+G+G+G+G+G+G+F+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+E+E+C+E+E+E+E+D+E+D+D+D+D+C+C+B+B+t+B+B+y+y+t+y+o+m+s+m+s+s+p+p+p+o+o+i+f+i+i+c+c+c+i+b+4+c+6+6+4+|+|+|+|+^+'+^+6+^+4+-+)+'+^+'+^+^+!+'+'+^+'+'+'+^+,+'+{+>+ +>+)+ + + +W.W.H.W. +W. +`.`.`. +V.W. +W.W.H.W.@+V.K.V.K.F.K.F.H.K.K.K.w.Q.w.Q.m.K.w.s.s.t.m.K.w.m.s.q.f.q.",
-"S.S.S.8.S.S.S.S.S.S.Z.E.S.V.E.E.S.S.S.S.S.S.S.E.S.j.E.E.E.4.j.j.j.E.4.4.j.j.4.4.E.m+F+G+G+G+G+G+G+z+E+E+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+E+E+E+E+C+E+D+C+C+C+C+E+B+C+C+B+B+y+y+B+B+y+o+y+t+o+s+m+p+m+o+i+m+m+i+i+i+i+e+c+6+0+0+|+}+4+4+|+|+[+(+[+[+|+'+^+|+^+4+-+)+!+^+~+^+^+)+)+'+)+)+)+~+'+,+,+>+>+>+ + + + +H.n.F.n.Q.>+V.W. +W.V. + +W. +W.W.W.H.K.V.H.H.K.K.K.K.H.H.n.w.K.t.w.t.m.s.w.q.s.s.m.m.w.m.m.m.m.f.",
-"j.S.S.j.S.S.(+S.S.S.Z.j.E.E.E.j.E.S.S.S.S.S.E.V.E.E.E.E.E.8.E.E.k.k.4.8.j._._._.k.(+C+G+G+G+G+G+G+E+E+F+F+G+G+G+G+G+G+G+G+G+G+F+F+F+F+C+E+E+E+E+E+D+D+D+C+E+C+B+B+B+B+B+y+y+t+w+y+t+o+w+m+m+s+q+p+k+h+h+i+i+c+f+c+c+0+4+4+4+4+|+|+|+^+^+|+}+}+|+^+^+^+^+^+^+^+`.-+)+'+-+!+_+'+'+>+,+'+'+-+)+>+>+ +W.W.Q.H. +W.n.t.t.t.H.W.W.W.W. +W.@+W.W.W.Q.H.H.H.W.H.H.H.H.H.K.t.K.m.w.K.w.w.w.m.Q.m.m.t.q.m.f.m.m.m.f.f.f.f.",
-"E.j.j.S.(+S.S.S.E.S.E.j.S.S.E.E.S.E.S.Z.E.S.S.F.E.j.S.l.k.j.E.E.k.j.j.j.j._.4._.4.j.f+C+G+G+G+G+G+E+E+E+E+F+G+G+G+G+G+G+G+G+G+F+F+E+F+E+D+D+D+D+C+C+E+C+B+B+C+B+A+A+y+y+s+y+m+t+y+o+m+o+q+i+o+i+m+i+8+c+i+0+c+c+c+4+6+6+|+^+^+^+^+^+_+_+^+^+<+^+[+^+)+^+'+'+>+`.-+>+)+>+~+,+>+~+'+>+>+>+>+>+W. + +n.n.H.H.V.K.2.t.t.t.}.W.W.W.K.W.W.W.Q.W.V.Q.Q.H.w.H.Q.Q.s.H.s.w.s.H.w.m.w.w.w.w.m.m.q.q.m.f.m.f.f.m.f.f.f.f.f.",
-"E.S.j.j.S.;+S.E.j.E.E.E.E.;+j.S.S.j.S.S.E.S.F.E.j.j.S.F.j.j.E.k.4.j.j.j.j.8.j._.4.4.=+B+G+G+G+G+G+F+E+E+F+F+G+G+G+G+G+G+G+G+F+F+F+F+D+E+E+D+C+C+D+C+B+C+B+B+A+B+B+y+x+B+t+o+t+s+m+p+m+o+h+h+c+i+i+c+8+g+b+4+6+6+6+6+^+|+|+(+^+4+)+'+^+'+^+'+)+-+)+'+^+)+)+)+-+-+>+;+,+,+,+,+>+>+ +>+W.>+>+W.Q. +F.}.t.Q.W. +F.n.n.t.}.n.Q.W.V.H.@+K.K.W.W.K.K.Q.K.H.T.w.w.K.w.K.s.w.w.T.s.t.w.m.m.m.f.m.f.f.m.f.f.m.f.f.f.i.f.h.",
-"j.j.S.!+S.E.S.j.j.S.E.E.S.E.j.S.S.E.Z.E.k.S.E.j.j.E.S.4.j.k.E.E.k.j.E.4.4.j._.` 4._.j.6+C+G+G+G+G+G+E+E+z+E+F+G+G+G+G+G+G+G+F+F+E+D+E+C+D+D+C+C+B+C+B+y+y+B+A+y+x+B+s+s+m+m+m+s+m+k+m+h+c+c+6+c+0+4+5+0+6+6+|+6+6+6+^+[+|+_+^+)+)+^+)+)+{+`.>+>+)+)+)+>+{+ +&+~+>+>+{+>+>+>+>+>+ + +H. +>+H.H.W.F.2.H.Q.Q.H.H.t.}.n.n.n.n.H.K.H.W.H.H.K.Q.H.t.s.t.w.H.t.s.m.m.m.t.s.t.w.m.s.m.f.m.m.f.m.f.f.f.m.h.f.h.f.h.i.f.h.",
-"E.E.j.E.S.E.E.l.j.E.E.E.V.S.j.S.E.E.S.V.k.E.E.E.E.E.k.4.j.k.k.k.k.k.k.4.j.k._._._._._.S.i+C+G+G+G+G+G+F+E+z+F+G+G+G+G+G+G+F+F+D+F+B+E+D+C+C+E+A+B+B+y+v+B+t+x+x+s+s+t+q+q+o+m+p+k+f+c+i+c+8+8+6+6+|+|+7+|+|+4+4+4+^+^+'+_+'+~+)+)+)+>+$+`. +-+$+{+$+$+++$+$+$+++++++M.P.++W.>+,+`.W.t. +W.H.n.H.n.n.n.n.n.s.H.n.}.}.t.<.t.H.H.H.K.H.m.Q.K.m.Q.Q.s.s.m.w.m.s.s.s.q.m.m.f.q.m.m.q.f.f.f.f.f.h.f.h.h.f.f.i.f.f.h.f.",
-"j.j.S.S.S.E.k.E.j.S.E.E.F.j.E.S.E.S.E.k.j.j.E.F.l.l.j.4.k.k.j.k.|.k.k.4.k.4._._._.` ` 4.=+t+G+G+G+G+G+G+F+F+G+G+G+G+G+G+F+F+F+F+u+E+C+D+C+B+C+C+B+x+y+t+x+y+t+y+o+m+m+o+o+q+o+m+h+b+c+c+c+4+6+4+|+|+|+4+|+^+4+4+^+_+^+'+~+'+-+-+)+>+>+$+>+Q.$+$+++++P.P.P.P.P.P.r.P.P.P.o.Q. + +W.W.t.W.W.Q.n.H.n.n.t.t.t.}.M.n.<.t.s.<.t.Q.w.H.w.H.m.s.H.m.w.w.w.q.M.q.w.m.f.q.s.m.m.s.m.f.f.q.f.f.f.f.f.f.f.f.h.f.f.e.e.e.e.e.",
-"E.j.S.S.E.E.j.E.k.E.S.E.j.j.j.E.E.F.l.l.j.E.E.k.k.k.4.j.k.4.4.k._.4.j.k.|._._.` _._.|._.E.f+F+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+D+C+C+D+C+B+C+A+C+v+t+B+s+t+s+s+s+s+p+q+o+i+o+i+i+8+0+c+c+6+6+|+(+^+_+|+^+4+)+^+{+)+'+>+)+'+)+>+>+&+W.$+ +M.M.++P.P.r.r.r.o.r.r.d.5.~.~.5.o.Q.W.>+ +H.n.H.W.H.t.n.H.Q.t.Q.n.}.t.n.n.2.2.t.K.t.t.w.w.s.t.K.m.t.m.s.w.s.m.s.q.f.s.o.f.f.m.f.f.m.q.f.i.i.e.h.f.h.f.f.f.i.i.-.h.-.h.^.",
-"E.S.V.F.F.E.j.j.j.E.V.k.j.E.8.;+E.E.j.j.l.l.E.k.k.|.4.4.4.4.4._._._.j.E.|.` 8.H _._.` ` j.(+y+F+G+G+G+G+G+G+G+G+G+G+G+G+E+D+F+u+D+D+C+C+A+B+u+q+k+c+x+s+q+t+p+p+o+o+o+o+c+k+c+c+6+8+6+|+6+|+|+[+}+^+|+^+)+{+)+{+)+)+>+>+>+>+ +W.$+M.P.M.M.P.r.r.d.d.~.~.P P P P A N P P 3.M.Q. +`.F.n.n.H.Q.}.n.H.H.n.s.<.<.s.t.n.t.<.m.w.w.K.w.w.m.m.m.m.m.m.s.m.s.m.t.m.f.f.q.h.f.f.f.f.f.h.m.h.f.f.f.h.f.h.e.-.-.e.0.6.6.^.6.",
-"S.S.S.E.E.p.E.E.j.E.S.p.j.S.j.j.E.E.j.l.E.j.k.4.k.k.|.k.4.4._._._.4.4.4._.H 4._.|.` ` ` _.E.0+F+G+G+G+G+G+G+G+G+G+F+G+E+F+E+E+r+D+B+B+B+C+d+e+^+6+f+t+o+m+p+q+o+p+m+o+b+0+c+b+6+4+4+4+|+6+[+(+_+^+^+(+'+'+'+'+-+$+>+&+$+$+$+++M.P.P.r.d.5.d.~.~.A A A u u c c c 0 0 u N 3.M.$+W.W.W.n.n.Q.H.<.t.H.H.s.n.<.t.H.t.w.w.w.w.w.m.m.m.p.m.m.m.q.m.m.f.f.m.w.f.m.q.f.i.f.h.f.f.m.f.h.f.f.f.e.e.i.-.e.e.e.e.^.0.^.^.h.^.",
-"S.S.E.E.S.E.j.E.E.V.E.k.j.j.E.E.E.E.E.E.l.j.k.j.E.4.4.4.4.k.4._._.4.k.4._.` j._._.` F ` _.8.S.y+F+G+G+G+G+G+G+G+z+F+G+E+D+C+B+k+B+t+C+B+u+++-+[+0+f+m+t+o+o+i+o+p+i+f+b+8+0+4+6+8+|+|+}+_+(+_+^+^+)+^+)+{+$+{+{+$+$+$+M.P.P.P.P.5.~.~.~.P A c ] ] % ] [ 0 0 0 0 0 u u N #.o.M.M.Q.H.n.2.n.t.}.H.Q.n.s.2.t.t.t.t.t.w.w.w.w.m.s.m.s.m.m.m.q.q.m.m.f.f.m.f.m.f.f.h.f.f.f.i.f.f.i.i.e.e.e.-.e.0.>.0.^.6.0.^.^.6.^.^.",
-"E.F.F.E.j.E.j.S.E.E.E.j.j.8.E.j.S.V.E.F.4.4.4.k.k.|.4.4.k.4.4._.4._._._.` _.4._.` F H ` H _.j.8+E+G+G+G+G+G+G+G+F+F+E+C+u+r+e+4+e+e+t+B+v+n.S.5+f+f+q+m+m+m+i+f+k+k+8+8+8+6+|+4+4+|+|+[+_+_+(+'+^+)+{+++$+++++++P.P.P.r.r.5.5.P P c c c ] ] % % % % % [ 0 [ 0 j 0 u u P #.o.M.M.Q.W.t.n.t.<.n.H.t.s.t.m.w.w.s.s.w.w.w.m.m.t.m.m.m.q.q.q.f.f.f.f.f.q.f.f.f.h.h.f.i.i.i.f.e.e.i.e.e.>.e.6.6.^.9.6.6.-.6.6.6.6.6.6.",
-"E.E.j.j.S.8.;+S.l.l.j.j.j.j.S.E.E.l.k.l._.8.4.k.k.k._.4.k.|.4._.4.4._._.|._.4._.` I F ` F _.j.!+B+E+G+G+G+G+F+G+F+F+E+r+e+3+^+6+|+|+c+s+r+n.=+f+y+h+i+q+q+c+c+f+h+4+8+8+6+7+(+|+4+^+^+[+^+)+^+)+{+++{+++#+#+P.r.r.d.d.~.P P c c % ) % % % % + & ) ) ) c 5 0 5 j u u N P r.M.Q.H.K.w.n.t.t.t.t.H.m.w.w.w.w.w.m.m.m.m.m.q.m.m.f.f.f.q.q.f.f.f.h.f.f.h.q.f.f.h.f.f.i.e.e.f.>.h.-.6.6.6.^.h.0.^.e.6.h.-.6.6.^.^.6.",
-"l.E.p.j.S.j.k.F.k.8.l.j.j.E.p.l.k.k.|._._._._.n.|._.4.k.k._.4._.k.` |._._._.|.` ` ` H ` F H _.E.m+E+F+G+G+F+G+F+F+E+D+d+ +=+0+m+0+^+'+c+h+-+-+6+m+i+k+f+f+c+0+c+h+c+8+c+7+|+|+|+^+^+^+3+^+{+{+++++#+#+r.r.d.5.~.P A c c ] ] ] ] ] ~ [ [ [ % % [ % ) 5 0 j j 0 j u N #.5.P.M.H.s.K.s.t.t.t.s.s.s.w.m.s.m.m.m.m.f.m.q.f.q.f.m.m.q.f.f.q.h.m.h.i.q.f.i.i.f.f.i.e.>.e.6.6.0.0.6.h.^.0.6.^.6.1.^.6.6.6.^.6.6.^.6.",
-"k.j.l.j.l.j.E.l.4.j.j.j.E.E.4.|.l.|._.8.4.4.k.k._._.j.k.k._.4._._.` _.|._._.|.` F I F _.` F H 4.[+x+E+z+G+F+F+F+E+E+C+v+-+!+o+x+i+4+>+^+0+|+W.^+i+h+c+c+0+8+0+8+c+8+6+b+7+7+^+|+^+{+{+++#+#+#+P.r.d.d.~.P A c c c ] ] % ] ] ] h h h c c 0 [ % % ) ) [ 0 0 u p j t u u N 5.M.M.H.s.H.s.w.w.s.w.T.w.w.m.q.f.q.q.f.q.f.q.f.q.f.h.h.h.f.f.q.f.f.q.i.i.i.e.0.e.6.e.e.0.>.6.^.6.-.0.^.0.^.0.6.6.0.0.^.-.h.6.-.6.6.^.",
-"E.k.j.k.j.k.l.k.k.j.l.j.E.l.|.4.4._.8.4.4.k._._._.k.k.4._._._._.` _._.|.|.|.` F ` H ` _.F H F 8.E.m+D+F+F+F+E+E+F+C+E+r+)+=+o+y+s+e+>+-+6+0+`.-+^+3+3+^+4+6+8+c+8+6+8+0+6+4+4+{+{+++#+#+r.r.d.~.P P c c ] ] > > ] ] l l d w w l l h ] c C g % % ) ) [ 0 j j j j u u N P 3.o.M.s.w.s.m.m.Q.m.m.m.m.m.q.q.q.q.q.q.h.q.f.q.m.f.m.m.q.q.i.i.i.h.f.e.e.e.5.e.e.^.6.6.^.i.>.e.e.6.e.0.>.6.h.-.h.^.6.6.6.6.6.6.-.6.6.",
-"k.E.l.l.j.S.k.4.l.4.4.k.l.4.4.j.4.|.4.j.4.4._._.4.E.n.|.F _._.` H _._.` |.` ` I F F ` ` I F F H j.5+x+E+F+F+E+C+C+C+B+r+^+=+6+q+p+k+$+F.^+6+^+-+-+>+>+!+|+|+8+4+c+6+|+6+|+3+#+#+#+P.5.d.~.P c c ] ] % % % ] ] d w w w w w w A c ] ^ [ [ A y ) @ & ) ) [ 5 j j j j u u K N 3.P.o.Q.m.s.Q.q.m.m.m.m.q.m.m.m.f.f.h.q.m.f.h.q.q.h.f.f.f.i.i.e.i.6.e.e.6.^.e.^.e.^.0.e.6.e.>.e.^.0.^.0.e.6.6.6.-.6.^.6.6.V h.6.6.-.6.",
-"E.l.l.j.j.F.l.j.k.4.k.F.|.8.j.k.k.k.|.4._.4.4.4.4.k.` ` ` ` _.F _.` I ` ` ` ` ` F F F F F F ` H _.S.m+D+E+E+E+B+A+B+B+o+c+^+-+c+p+h+Q.n.[+0+^+-+-+V.Z.'+|+6+|+|+4+4+6+^+4+:+#+r.d.P P c c ] ] ] % % > ] h P R Z Y R w C l ] _ ] ] ; % ] W j $ % % ) ) 0 0 j u t p u u N N 3.o.Q.M.m.m.m.w.q.q.m.m.m.m.m.f.f.q.f.f.h.f.o.i.f.i.i.i.h.i.e.e.6.e.6.0.0.6.6.6.0.e.0.:.0.^.e.0.0.0.e.^.^.6.-.6.9.^.6.-.6.^.:.^.6.6.6.",
-"k.k.l.|.j.k._.8.|._.k.E.|.4.k.k.|._._._._.4.4._.|.|.` ` ` _._.H ` ` F F ` ` ` F ` F F q F F H F _.j.[+x+D+C+u+r+y+y+s+p+h+4+`.^+3+{+n.k.(+f+4+^+!+=+!+(+|+|+|+|+^+|+|+|+4+#+r.P A ] % % ] + > ] h l n C C R R w d c ] ] > % % % ] % % c T g $ % ) ) 0 0 t 0 u j u u N N 3.o.s.Q.s.m.m.m.m.f.f.m.h.h.m.f.h.f.q.q.q.f.i.i.i.e.i.e.-.e.^.e.-.6.e.0.e.e.e.6.6.e.0.0.6.6.^.0.0.0.h.6.^.9.6.>.:.0.:.6.6.6.:.0.^.:.:.",
-"k.l.|.4.j.4.8.|._._.4.k.|.k.k.|.` _.` ` _.k._._.|.` ` ` H _.` ` ` F F ` _.` ` F ` F F H q q F F F _.S.f+v+r+g+y+y+x+s+s+p+e+`.-+>+`.E.Z.0+0+0+6+5+(+[+|+^+}+(+[+|+^+[+^+3+#+~.c ] % % $ ] h l w w w R h R C c ] ] > % > % ; % ] ] ) % c P c & % ) ) 0 0 0 j u p t u N K }.s.M.o.q.f.m.f.f.h.m.m.m.f.h.m.f.q.q.f.f.i.i.5.0.e.^.0.0.e.e.6.6.e.^.0.0.6.6.6.^.6.^.6.6.-.6.^.0.6.^.6.6.0.6.:.6.:.0.6.^.6.^.6.:.1.1.",
-"k.k.4.4.j.4.4._._.4.k.|._.|.|._._.` ` _.4.|._._._.` ` F _._._.` F F F ` |.I F ` F F I q q H q ` F ` |.)+e+4+m+x+t+t+t+s+m+e+-+=+Z.=+=+(+0+e+4+4+6+|+)+,+^+}+_+!+[+^+}+4+{+#+P ] ] ^ l n l T R R C l c ] c ] ) % % % & % % ; % % ] ~ ] A T c $ % ) ) 0 u p t j p t u N N 3.}.Q.s.s.h.f.h.m.h.f.q.f.q.q.q.i.i.i.i.i.e.e.e.0.e.^.e.6.0.0.0.0.0.0.0.0.0.e.e.0.0.0.e.6.e.6.6.^.6.6.^.6.6.6.:.6.:.^.1.1.:.1.:.^.^.:.",
-"4.j.4.j.8.k.|._.` 4.|.4._.` _.` _.+.` _._._.` |.` ` F H _._.` ` ` F F _.` F F F I F q q H q H F F ` |.n.n.!+o+o+s+y+m+p+i+0+|+!+[+[+[+8+c+{+{+)+^+3+>+V.!+^+_+^+~+^+^+^+)+++o.h n C w R w C l c c ] ] ] % ; % ] % % % % > % % ] % % ) A P C $ % % % ) 0 j j u t u u u N #.3.q.o.M.m.f.m.h.f.q.q.f.q.f.i.e.e.5.5.0.6.e.0.0.^.6.h.6.^.e.0.0.0.0.^.e.^.0.6.e.^.1.^.1.0.^.6.^.6.6.6.6.6.6.^.0.6.6.1.:.1.0.:.0.:.:.^.",
-"_.4.4.k.4.k.|.|.` 4.4._.` _._.` _.` ` _._._._._.` ` F _._._.` F F F ` ` I F F F F F q q q q H F q F ` +.2.=+f+o+m+q+o+k+c+c+0+6+6+4+)+4+4+$+Q.-+-+)+Q.H.-+!+_+'+~+^+)+)+)+++N.T w w C l ] h ] ] ] > % % % ) ) % ] % ) % > % % ] ] ) ] A T g % ) ) 0 u u j t u N N N #.3.}.s.o.m.f.q.q.q.q.i.e.e.e.e.5.1.1.d.1.6.6.e.0.0.6.e.0.6.e.6.6.e.e.6.0.e.0.0.0.e.0.0.1.0.^.e.^.6.^.:.^.6.:.^.6.^.^.6.^.:.^.^.:.^.:.^.",
-"|.|.|.|.|._._._.` _.j._.` _._.` _._.` _._.` ` ` F ` H _.` ` F F F F F ` I ` F F q q q H q q F q F F O O B |.^+f+h+i+k+h+c+0+0+6+c+3+>+)+6+-+<.n. +$+>+n.`.)+~+)+'+'+)+)+{+:+#+T n h ^ ) ; > ] > % % % % ; % % & ) ) % % % % % ] [ c P >.g & % % [ ) 0 u u t u u N N N #.3.o.M.Q.q.q.f.f.i.e.e.e.e.e.e.0.0.0.0.0.6.h.0.0.0.6.6.e.6.6.6.h.6.6.e.^.6.0.0.>.6.^.0.>.1.0.6.6.^.:.0.9.:.e.^.^.:.6.:.:.^.^.6.:.:.:.:.",
-"` |.k.|.|.` ` ` ` _.j._.` ` ` ` _.` ` ` ` ` |.` F ` _._.` ` F F F F F F ` ` q F q q q q F q q q q q s I 6 G V.6+0+f+c+c+4+6+5+|+4+$+n.>+)+>+n.<.W.W.$+n.H.>+>+>+>+ +{+>+>+++#+A ^ & $ ; & % % % % ~ & $ ) ) % @ = ) ; % % + % ] [ c A >.u % % % ) [ j u j t u N N N N K 3.s.T.M.T.f.i.i.i.e.e.^.6.9.e.0.0.e.e.e.6.h.6.6.6.h.6.h.-.0.1.e.6.6.e.e.6.0.^.e.e.6.6.6.0.1.^.6.6.^.6.^.:.6.6.^.(.^.^.9.^.:.^.6.^.1.:.",
-"_._.` |.|.` _.F ` _.k.|.` |.F H _._.` F ` ` I F F ` ` I I F F q F F F F _.F q q q q q q q q 7 e e e e v : { 2.-+c+8+6+6+6+|+4+6+4+)+n.W.)+>+t.2.n.H.Q.t.n. +,+ +W.$+>+ +>+#+#+A ) ) % % % ] % @ % ) = & & % ) & & ) ) % + % % % ] ] ] P P A c % % ) [ 0 t u u u u u N N #.3.q.M.T.o.e.e.>.0.0.0.0.1.0.0.e.e.6.6.6.h.6.6.h.e.6.6.6.6.0.1.0.0.e.0.6.-.6.6.6.6.^.^.^.0.>.0.^.6.6.^.:.:.:.:.:.6.:.6.!.6.^.:.^.:.:.^.",
-"_._.` |.` ` _.` ` 4.|.|._.` ` _.` F F H F I ` F ` I F F F F F F F F F F ` F q q F q b b s e e e i : e | : = v F.(+}+4+|+_+|+^+)+^+{+n.n.-+W.n.2.H.H.t.}.n.Q. +>+W.V.`.Q. +$+#+P ^ ) % & ) ) $ $ % ~ ) ) ) g { ) [ ) $ + + % % ] ] c P N c % % ) 0 u u u u u N N u N N 3.s.M.N.q.0.0.1.0.1.0.^.0.1.0.e.e.e.6.0.6.6.6.6.6.h.6.e.0.0.6.6.0.e.6.6.6.0.6.^.0.0.0.6.:.:.0.^.^.1.0.^.:.:.1.:.^.:.^.:.V 6.!.^.!.:.!.",
-"_.+.` |.` _.|._._.|.` ` ` ` ` ` ` F F I F I F ` I I F F F F q F q H F ` F F q q F s b b 4 i | : : - | 4 - @ 6 |.=+[+|+|+^+^+4+)+)+>+Q.n.Q.>+Q.n.H.H.Q.<.}.H.`.W.`.Q.W.W.W.++#+>.[ ~ ~ & & ) ) ; ) = } [ ) ) } g [ ] ) % % % c P P c + % ) c 0 u u u u u K K N #.3.M.P.P.0.e.0.0.e.0.0.0.e.0.h.6.0.6.1.0.e.e.0.e.e.6.e.6.0.0.0.^.6.6.e.-.e.^.1.1.:.^.6.^.6.0.^.6.6.^.:.[.1.^.6.:.[.:.:.:.^.6.:.^.!.^.:.",
-"_.` _.` ` _.|.` ` ` ` ` ` ` ` F ` H F F F F q F F F ` F q q q q F F F F q q 9 q s e | i : { : - ( | | e ( @ { v F.^+^+^+!+^+)+)+)+)+Q.<.H.W.H.<.H.H.n.<.2.n. +Q.W.W.W.H.H.M.#+5.] { ) ) $ ~ ] h ; ~ } 0 [ [ } 0 [ ) ; % + + & @ % % u N [ & ) [ p u u u u u K N N N 5.M.N.u.0.6.6.0.6.6.0.6.6.0.h.6.0.6.0.0.0.0.1.1.0.6.0.6.e.0.0.^.6.6.0.0.0.0.1.1.1.0.:.:.:.:.^.^.:.:.:.:.:.:.:.:.:.(.^.!.!.V :.(.:.:.:.",
-"` ` |.` ` |.|.F ` +.` ` F F ` F F F I F F F F ` F ` ` I q q q q q F q q b 9 b e i : : { { - - : ( | | e ( @ - 6 2.`.)+^+)+^+)+>+)+$+W.}.n.W.W.<.n.H.H.n.n.H.W.W.W.K.W.H.K.$+#+r.% { { g & } [ [ ~ [ [ [ ] [ [ ) ; ; + + + % % % % % % c N c % % ) 0 0 0 t K u u K N N #.3.P.u.5.0.e.6.6.0.e.0.1.6.6.0.e.e.e.x.6.6.0.1.d.0.0.6.>.0.0.0.6.6.0.1.^.6.^.6.1.^.^.0.:.1.^.9.(.:.:.:.:.:.(.^.:.^.!.:.^.^.!.:.(.R :.(.",
-"_.` _.` ` ` I I F ` ` ` ` F ` H F F F F F F F ` ` ` I F q 9 H q ` F b b 7 7 | : : { { - ) : , | | 4 4 7 | & @ { G n.,+)+>+>+-+>+>+$+H.n.n.n.W.o.n.W.H.n.n.t.Q.H.W.K.H.Q.K.*+*+P.) { } } = ) [ { { ~ ] [ % ] ; % ; + % % > ] % % c N c % ) 0 u u t t u K u K #.#.o.P.q.0.1.0.6.0.0.e.0.0.0.1.1.0.0.0.0.6.i.0.0.0.0.6.6.9.:.0.1.1.1.0.1.0.1.^.6.1.:.:.^.:.1.^.6.:.^.:.:.:.:.(.^.:.^.^.!.(.:.V ^.(.:.:.R ",
-"|.` +.I ` ` ` F ` I O ` ` F F q q F F F F F ` F ` I F q q q H _.` b 7 4 | ( : : ) ~ = = - - ( | 4 4 b e | = % = 6 2.W.-+>+>+Q.>+Q.W.W.n.<.F.V.n.t.H.H.w.H.H.H.Q.w.Q.T.K.T.$+P.u.g { a ~ ~ [ ~ ) & & % > + ; + % % % % % % % ] ] ] u P [ % % % 0 u u t K u N N K N #.o.o.i.e.0.1.1.6.0.0.6.0.1.1.0.0.0.0.6.6.6.1.1.6.6.6.6.0.0.~.[.~.1.:.0.^.6.6.:.9.^.6.:.1.(.:.:.0.:.6.^.9.(.:.:.(.(.:.:.:.:.:.R (.R :.:.",
-"|.` ` F I F I ` F F F I ` I q q F F F F F ` F F F F b q 9 F ` |.O e 7 | ( - = { { { - ( ( | | | 4 4 1 b | = & : O n.`.`.W. +W.W.W.W.H.n.Q.H.H.H.K.K.w.H.m.w.H.K.w.s.T.H.Q.M.P.y g ~ ) % ; $ $ ; + % & ; % + % % % % % ) ] % % [ N P ) ; % ) u u t K u K K K N #.3.P.o.5.6.0.d.1.6.6.0.6.6.0.0.0.0.6.6.6.6.6.6.1.0.0.9.6.1.0.1.[.~.1.6.6.6.:.^.:.g.:.6.^.^.1.^.^.:.(.(.:.!.6.!.^.:.!.:.:.T (.:.:.R (.:.:.",
-"` +.` ` ` ` I F F F F I F I F F F F F q F F F F F q q q q q ` I b | ( - - { = - = ( ( < | | | | | b b 8 7 { % & - e |.F.$+W.W.W. +H.K.H.t.Q.w.K.w.K.Q.w.T.t.w.q.T.t.T.s.s.M.o.N.A % ) $ ; ; % + + + @ % [ % > % % % % ) ) 0 0 [ [ [ 0 N u % % % ) t K B K K u K N K N 5.o.o.e.e.0.0.1.6.x.6.u.1.6.0.0.0.h.6.6.6.x.1.9.9.1.0.1.1.1.d.1.1.0.:.:.6.^.:.:.:.:.:.:.:.[.:.[.^.:.:.(.^.!.V !.6.T :.(.(.(.R :.(.R R !.",
-"F ` F ` ` ` I ` I I q F I F F ` F F q q F q q s F q q q q F s i | ( , { = { ~ ( : ( ( | | 8 7 7 e 4 b b 4 ( $ = 6 +.F.W.Q.W.Q.W.Q.H.H.H.Q.s.K.Q.w.w.K.m.s.w.s.q.m.m.s.T.s.o.N.u % + + + + + % [ 0 [ % % % % % [ 0 c c [ c c u W c + % % [ B K K K K K K N N #.5.o.5.6.0.0.6.6.0.0.9.0.0.6.1.u.0.6.6.6.1.9.0.1.[.1.:.1.1.1.1.1.1.1.^.:.0.^.0.^.:.6.:.:.:.:.^.(.^.:.:.R :.!.9.!.(.(.:.R (.(.R :.(.!.(.(.",
-"` ` ` I ` I F I F F F I F q F ` I F q q F q F s F q q F s e e | - - = ~ = { = ( ( : : | ! | 7 | | 7 7 4 b | = & & : S t.H.Q.W.Q.Q.H.K.m.s.s.m.T.m.T.w.q.T.q.q.T.m.q.q.q.Q.T.q.M.P + + $ % 0 c [ % % $ ) ) ) c c 0 c u N #.P % % % % 5 . .K K K K K N N #.o.N.e.0.6.e.0.0.6.0.e.6.6.6.6.6.6.6.6.6.6.6.9.[.1.[.1.1.1.1.0.~.1.:.1.0.:.0.:.(.:.:.^.^.:.^.(.:.:.!.:.^.!.:.(.(.:.:.(.:.R (.:.!.!.R (.!.",
-"` ` I I I I F F F q F I F F ` +.I I q F q q q s q q q I s e ( : = = = { = { = - ( ( ( | | | 4 7 | 7 7 7 7 e { & & : p <.K.H.W.Q.Q.s.H.w.w.s.m.w.m.T.m.m.w.m.m.q.q.m.m.q.m.H.s.++#.+ + % + ; % [ 0 c % ) ) [ { 0 [ [ 0 u N P P c % % @ } B }. .K .K #.#.5.P #.3.i.e.6.6.6.0.6.6.9.6.6.6.1.1.1.e.6.0.0.0.6.1.[.1.[.[.[.[.0.0.1.1.:.^.:.:.:.:.:.:.:.:.^.:.:.:.:.:.^.!.^.:.!.:.R :.R :.:.:.R :.V !.!.!.R ",
-"I ` F I I I F s F I I ` I F I I q F q q q b q q b q q I v | - { = { ~ ) $ $ & { - : ( ( | 7 | 7 1 7 b 1 9 | ( @ & = 6 O n.s.w.T.m.Q.q.q.T.q.Q.q.s.m.m.m.q.q.T.q.m.m.t.H. +Q.Q.$+5.% % % % ) [ % % [ [ [ ) ) [ } [ 0 u u u u N N N ) = : p ..}.o.}.#...#.K #.3.#.5.N.3.e.6.6.0.u.1.1.0.6.0.1.1.[.9.9.1.1.9.9.9.9.[.[.1.1.1.1.^.>.:.1.1.:.^.:.:.6.:.:.(.(.:.(.:.:.^.!.:.:.(.V !.(.:.R (.R !.(.R (.!.!.Y ,.!.",
-"I F F F I I F q F F I F F s F s q q q q 9 9 b b b q q I 6 : { ~ & ) ~ % ; + . % = - - ( < | 8 | 7 4 b 7 b 7 : = & = ( r <.w.w.w.m.T.w.m.m.q.q.T.m.m.m.q.m.m.m.w.K.K.%+>+{+&+$+#+r.; % % % % ] ] [ c [ [ [ [ c ) ) c 0 u u u P c u u 0 0 5 B G ..n.t.o.}.}.}.}. .#.#.#.5.i.e.6.6.0.1.1.5.1.1.1.1.1.0.1.9.9.:.1.:.1.0.6.(.[.1.:.1.1.:.:.1.:.(.[.[.(.:.:.:.:.[.(.:.!.^.(.:.:.:.:.(.(.!.!.(.(.(.R (.(.R ).).).R ,.,.",
-"I F F I I I F q F s F q q F q b q b q 9 9 q q b q q F e : } ) & % % ; . $ . & = - - < | 8 1 8 8 1 4 b | - @ & - r S t.w.m.w.m.m.m.q.q.q.m.h.T.m.w.m.K.@+@+ +]+ +$+++$+++#+u.% ] [ [ [ [ 0 c c [ u c [ [ c u u u u c N u u 0 t t M .}.}.<.o.M.t.3.}.}.}.}. .}.3.3.i.5.0.1.0.1.1.1.0.u.1.1.1.1.6.6.9.9.1.1.:.6.:.1.:.[.:.:.^.1.^.(.:.:.:.(.:.9.V ^.(.(.(.!.^.!.:.(.R :.(.R :.(.R (.!.!.(.R (.!.R (.Y ).Y Y ",
-"I F F I I F s q s F F q q q q q q e q 9 9 q q 9 q q s i : - ~ . + + ; + + @ @ @ = - ( < 4 4 4 1 1 4 b | - $ $ = ( M f.w.m.m.T.q.m.q.m.m.w.p.w.K.@+]+$+>+$+$+$+++{+++++++#+~.] [ c u c c c j 0 c t u 0 u u u u 0 0 u u u M .. .#.}.}.}.}.<.}.3.o.n.}.n.}.}.o.}.o.o.5.0.1.[.d.0.u.0.0.1.1.1.1.1.:.6.(.1.0.^.1.6.(.:.:.[.:.:.6.(.:.[.:.:.:.(.(.(.(.:.:.:.(.!.:.:.(.(.:.:.(.(.R (.!.R !.(.!.Y ).).Y ).).Y Z Y ",
-"I F F I s F F q q F F q q q e q q q q q 9 q q q b s i 6 } $ ; + + + . + + . + . . @ = - , | | ! 2 1 b 4 e : & @ @ : r +.m.m.m.m.K.m.m.w.w.@+@+<+&+&+$+>+++M.$+++M.P.++$+#+#+P [ 0 c [ u 0 0 c u u N u c 0 0 u 0 p B M }.}.}.<.}.}.}.}.}.3.}.}.}.3.o.t.M.M.++++M.M.o.e.e.1.1.1.0.1.0.0.1.[.1.[.6.6.:.0.1.[.1.(.(.9.[.[.(.(.:.:.:.[.:.:.:.^.^.(.(.(.R (.(.(.:.:.(.R (.(.R (.(.(.,.).).).R (.R ).Y R Y Z @.Y Z ",
-"I F F F F F e F q F q q q q s s q e 9 9 q 9 b 9 b e 5 } ~ + + + + + + @ @ - ! 4 4 7 4 7 | 7 | & & - 6 O h.m.q.q.T.K.@+@+@+<+&+$+ +&+++T.M.M.o.N.N.N.N.N.*+P.c ] 0 c 0 u u N u u u N 0 u 0 0 p G ....}.}.n.}.n.}.n.}.}.}.M.}.M.o.M.M.M.++++#+#+#+P.r.5.0.1.1.9.1.6.:.0.0.[.:.1.^.9.:.9.:.[.1.1.[.[.[.[.1.:.:.:.(.[.:.:.:.(.(.!.(.(.(.[.(.(.R (.(.(.R (.(.).!.R !.R ).).).).Y Y Y Z Y Y Z U Y ",
-"F I F s F q F q q q q q q q q q e q q b q b q b e 6 = ) + ; + + ; $ + + + + @ - , | 4 4 4 4 7 8 4 - @ @ & a r <.f.m.m.K.w.H.T. +&+&+T.N.o.q.o.N.o.u.o.u.u.u.P.P.r.c 0 c u K u N N u 0 0 c 0 j B S <.<.n.n.M.n.t.n.M.n.}.M.}.M.n.M.M.M.++$+++++#+#+#+#+u.0.[.1.6.0.[.9.:.1.1.:.1.1.:.1.:.6.0.1.:.(.(.(.[.[.:.(.:.:.:.(.(.(.:.:.(.!.:.(.[.(.(.(.(.).!.(.(.!.(.R (.(.(.).).Y ).Z Z ).Y ).Y Y U U Y U ",
-"I F q F q e q q s q 9 q q b e q b b b 9 9 9 b 7 | { % % + + + + + + + . + + . @ - , | | 4 8 4 8 | - @ = & - r ..q.q.q.T.T.Q.T.N.M.q.q.i.i.u.e.e.i.h.i.u.u.u.N.N.3.c N N u u P c c 0 [ j B .}.<.<.t.}.n.n.t.}.M.}.M.H.t.M.M.M.++++++++#+++#+#+#+#+#+r.r.0.1.0.6.6.:.9.9.[.1.0.:.1.:.1.(.:.^.1.:.(.(.:.:.(.1.(.:.(.:.(.(.(.(.!.:.(.:.(.(.(.(.(.(.!.(.!.(.!.).).).Y !.Y ).Y ).Z X Z X Y U Y U U U Y ",
-"I I q q q q s q s s b b q b q b b q 9 q 9 9 b e { % + + + + + . + + + @ @ - - < 4 | 4 1 2 8 | = @ @ ( r +.w.m.s.s.s.q.o.q.i.i.i.i.x.h.e.x.h.x.h.e.0.0.o.u.5.P P u N c c c 0 j B +.<.<.t.t.n.M.n.}.t.}.n.n.n.n.M.M.++++++++#+#+#+#+#+#+#+P.r.r.u.1.1.0.6.:.6.9.[.:.0.:.^.0.:.9.(.1.:.[.:.[.).[.(.:.:.[.:.(.:.(.(.(.:.:.:.!.!.!.(.R (.!.R (.!.R ).).).(.R ).).).Y Z Z X Y z Y Y U Z Q w '.U Z ",
-"I q s q q q q F q q b 4 b b q b b q b b b 9 4 | ) + + + + + . @ + + + . + + + . @ - , ! | 7 8 1 8 | - @ @ - i +.m.q.f.q.q.h.q.e.h.h.i.i.0.u.e.u.i.6.h.u.x.6.i.P.5.A A c c [ 6 B G ..<.n.n.t.t.o.}.}.n.t.n.n.H.H.M.W.++++++#+#+#+#+P.r.r.u.u.u.u.u.1.1.1.1.1.6.6.^.:.[.[.:.:.:.1.1.1.(.9.:.[.[.[.[.(.(.(.~.).[.(.(.(.!.(.(.!.R (.:.!.(.!.(.(.).).).(.R ).Y ).Z Z Z Z Z Z Z X Z U U Y Y Z X U Y U Z ",
-"q q q q q q q s e q b 9 q b b q b 9 q 9 1 1 | : & + + + + + + + + . % % . . + + @ @ - , | 4 4 8 4 4 | - @ $ - a +.m.q.h.h.q.h.x.h.i.i.x.h.h.i.5.0.e.u.e.e.e.u.i.r.d.c [ 0 p K ..<.<.<.M.s.t.H.Q.n.n.n.o.M.M.++M.M.++++#+#+#+P.P.r..+u.u.[.d.u.d.[.1.0.6.1.:.[.:.:.6.6.^.:.1.1.1.1.[.[.[.(.(.:.[.(.(.(.(.(.(.[.(.(.(.(.(.).!.(.(.(.!.(.!.R (.).!.(.).).).Y ).Z ).Z X Z Z z Y Z Z X U X U Z U '.U Y U ",
-"q q q b q q q q q b 9 q q q b q b b b 9 1 1 | ) @ + + . . @ & + + + . @ . , , | 4 4 4 1 e ( - - ( v 2.m.q.x.q.i.e.u.h.i.e.e.h.h.i.e.e.e.u.e.6.h.i.P.5.0 u M .}.}.t.n.t.t.t.n.H.M.M.H.++W.++++$+++++P.P.P.r.u.r.u.e.1.1.1.0.[.[.[.d.9.6.6.0.0.^.1.:.1.6.9.:.[.[.[.^.(.(.(.:.(.:.(.[.(.(.(.(.(.(.).~.(.(.(.!.(.!.!.!.(.(.(.!.(.).).Y Y Z Z Z Y U Z Z E Z z Z Y Z z Z U Z U Z U Y U Y Y ",
-"q 9 b q q q q q 9 q 9 b s q b q b q b b 1 | : @ + . . . + + . . $ + . + + . @ @ - , | | 7 4 | 8 | = @ & < r +.q.q.q.u.i.u.i.u.e.x.e.e.h.x.u.i.i.h.u.e.u.u.N.3.#.}.}.}.}.t.t.}.t.M.H.M.H.W.M.++++++++#+#+P.P.r.r.u.u.1.6.0.0.0.1.[.[.1.1.1.[.6.^.9.(.[.[.[.[.:.:.:.9.(.[.:.1.1.1.[.(.:.:.(.(.(.(.(.:.(.(.(.(.R (.!.(.,.R (.).).R (.!.Y ).Y ).).Z Z Z z Z Y Y Y Y Z z Z Z @.Z Z Y Z Z Y Z Z Z Z ",
-"q q 9 q b b q b b b b q q b 9 b b 9 9 1 7 | ) @ + @ + + . . . + . @ , | 4 4 1 | 4 4 ( @ @ ( a ..N.e.h.h.i.u.i.h.i.e.u.e.i.h.h.h.x.e.i.6.e.5.N.f.}.n.}.t.M.o.M.M.t.M.++$+>+++++++#+#+P.M.u.u.u.0.1.[.1.1.9.1.1.9.1.1.[.1.1.1.:.1.0.:.:.9.:.1.1.1.^.(.:.:.:.(.:.(.:.(.:.:.:.(.(.:.(.(.(.(.(.(.(.(.(.,.(.,.!.!.,.'.,.).Y Y Z Y Y Y Y Z Z Y Z z Z z Y Y Y U Y Z U X U U U Y Y Y Y Y ",
-"q b q b q b b b q b b b q b q 9 9 1 1 b | : @ + . + + + . . % + + . + . @ @ - | | 8 | 8 8 | ( = = = ( ..o.q.q.h.i.i.x.i.e.u.e.e.6.h.i.h.i.6.x.6.e.i.N.s.t.n.M.M.M.++M.$+++++{+#+++++#+#+P.o.P.d.u.0.0.1.[.[.1.9.1.9.6.9.9.1.1.[.[.1.1.1.(.9.g.:.:.[.(.(.[.:.9.:.:.9.9.(.(.:.:.!.(.(.(.!.!.).!.(.(.(.(.!.!.(.).(.).!.!.,.,.Y Y Z Z X Z U Y Y z Z Z Z Y Z Z U U U X Z U Z Z '.Y Y Y Z U Z ",
-"q q q b b 9 b 1 1 1 1 b b b 1 1 1 1 1 b | ) @ + ; + + . . . . + + + + . . - , 4 1 | | 8 4 < = @ = ( S q.h.i.h.h.i.0.x.h.x.e.i.e.x.e.6.x.i.h.x.6.u.N.o.M.M.$+{+++++++++++:+#+++#+#+r.r.u.0.0.1.u.1.d.1.1.[.[.1.1.9.6.6.6.9.1.1.:.1.:.1.[.:.:.(.:.:.:.:.[.(.(.!.(.:.!.(.(.:.:.:.(.[.[.(.(.(.(.!.(.!.(.(.!.,.).).Y Y Y Y ).Z Y Y Y Z Y Z z Y Y z Y z Y Y Y Z U Z X Z Y Y Y Y Y Z Z Y Y Y ",
-"b q e q b b b b 1 1 1 1 9 9 b b b 1 b 4 | - - } % @ + . . . ; + + + @ @ - ( | | 7 4 8 | | = % = ( O s.q.h.i.f.u.i.e.e.h.i.h.i.e.u.e.e.6.6.h.e.e.o.++++{+d+:+d+:+:+:+#+#+#+P.P.d.u.u.1.0.0.1.1.0.[.d.[.1.1.9.:.:.1.:.9.6.1.:.1.:.1.:.:.:.(.1.:.:.9.[.(.[.(.(.9.!.!.(.9.!.:.(.(.(.(.(.(.).!.!.(.!.!.,.,.,.Y ).Y Y Y Y Z Y Y Y Z z Y Y Y Y Y Y Z Y Z Z Z Z X Z Y Y Y '.Y Y U Y Y Z U '.",
-"9 q b b b b b 1 1 b 1 b b 1 9 1 1 1 1 7 | b _.s.>.) % ; + + . + . . + . % + + + . . - , 4 4 | 4 8 4 | - % & ( i m.q.h.h.q.h.i.e.u.h.e.x.i.6.u.6.x.e.6.h.h.e.o.++:+d+++{+++++#+#+P.r.u.u.0.1.[.1.0.9.0.1.1.1.1.0.1.1.1.1.9.9.0.:.:.:.9.[.[.(.1.[.1.:.(.[.:.:.:.[.[.(.(.(.(.9.!.!.9.!.:.(.(.(.(.!.(.).).).).).Y ,.Y Y '.Z Y Y Z Z X Y Y Z Z Z Z X Z X Z Y U Z Z Z U Y Z Z Y Y Y U U '.Y Y Y ).Y Y ",
-"9 9 9 q b q b b b b b 1 b 9 1 9 9 1 1 7 7 H j+z+d.h % % . . . + . . + . + + + + . @ @ - | | 4 | 4 4 | - @ & ( i <.q.h.h.x.i.h.e.h.u.h.i.h.i.e.e.e.i.u.6.6.u.o.#+#+d+#+:+#+P.P.r.u.1.0.0.u.0.0.1.9.9.6.0.9.6.9.^.0.1.[.[.:.9.(.6.1.1.:.:.(.1.:.:.(.9.9.:.9.(.(.:.:.9.9.(.:.(.(.:.:.!.(.(.(.(.!.!.(.R (.Y ).Y Y Y Y X U U U z Z Z z Z Z Z X X z Y Z Y Y Y Y Z Y Y Y Z Y Z Z Z Z Z Y Y Y '.'.Y Z Y ",
-"b b b 7 1 1 9 b 1 e b 4 1 1 9 9 1 1 b 4 b E.A+:+).c ^ ; + + . + + + + . @ @ + . . . @ - 4 4 1 | 8 8 i { @ & - k f.q.q.f.e.u.x.u.i.e.6.u.h.h.x.6.6.h.0.u.e.e.i.P.#+#+++#+P.u.0.1.u.e.6.6.0.[.[.1.0.1.6.^.6.6.1.:.0.0.6.1.[.9.[.(.:.:.[.9.:.[.[.9.(.(.(.(.:.(.(.g.:.(.9.(.(.(.!.!.!.(.(.!.).!.).,.).).Y Z X Z Z Z Y Z U Y Z Z Z Z Z Z w Z Z X Z Y Z Z Z Z Y Z Y Y Y Y Y Y Z Z X Y '.Y Y Y Y Y ).Z ",
-"b b b b 1 9 9 b b b b 1 1 2 2 9 2 2 b 8 s ]+z+d.c h h + # + + . @ + + . @ . @ @ , | b 7 | 8 8 8 ( @ = ( a .q.e.h.h.e.i.h.e.x.h.i.u.e.i.i.e.u.0.0.e.u.i.N.P.#+P.5.u.1.u.0.0.1.e.0.0.0.1.0.0.1.[.1.:.^.6.1.:.0.1.[.[.[.(.g.:.g.(.(.(.[.(.(.(.[.~.).[.(.(.(.(.9.!.!.(.(.:.(.(.!.).).).).Y Z Z Z Z Z Z X X U X Z Z X X Z Y Z Z Z Z Z Y Z Z z Y Y Y Y Z R Y Y Y Y Y Z ).Z Z Z U Y '.Y '.,.X '.",
-"b b b b b b 1 1 b 9 9 2 1 9 2 2 9 2 7 | i t.P.~.T C ] ] + + + + + + + + + @ . + @ @ @ - | e s | < | | : @ @ - a .q.u.e.h.e.e.i.i.i.h.h.e.e.x.e.1.e.e.u.e.e.e.i.o.i.u.e.e.5.1.0.0.1.6.9.1.1.1.1.0.0.[.~.[.:.:.1.:.9.1.:.:.(.9.(.6.:.:.[.[.[.[.[.:.(.[.(.).[.(.(.(.(.(.).).).(.).).Y ).Y Z Z Z Z Z Z Z X Z Z X Z Z Z Y Z X Z Y Z Y Y Z Z Y Z X Z Y Y Y Y Z Y Y Y Y Y Y Z Z X Z Z '.Y '.Y U '.X Z ",
-"b b b 1 b q 9 b 1 1 9 2 1 9 2 2 1 4 4 6 : M o.r.1.T ] ; + + . + . + + . @ - | e e | | 8 | 6 & & - i S q.i.h.i.h.h.e.6.x.6.i.i.i.e.u.u.e.e.0.0.0.e.u.u.i.u.6.u.[.1.6.0.1.1.1.1.1.1.0.1.1.1.[.1.1.0.6.(.6.:.1.:.g.(.9.(.:.[.:.[.(.[.(.:.(.[.).[.).g.).).g.(.(.).).$.).Y ,.U Z @.@.Z U Z Z X Z Z X Z U Y Y Z Z Y Y D R Y Z Z Y Z Z Z Z Z Y Z Z Z Z Y Y Y Z Y Z Z Z X Z Y '.Z U '.=.Z =.",
-"b b 1 b b 1 1 b b b 2 2 9 2 9 2 1 4 4 : : +.X.r.d.T ] + + + + . + . + + + + + + + + @ @ @ , | i | | | | | : & ; = 6 S f.i.h.i.u.h.u.e.e.6.h.6.e.e.0.6.e.e.u.e.0.0.0.0.0.0.9.0.1.1.1.1.1.1.1.1.1.6.9.1.[.1.:.[.(.(.6.[.(.(.9.:.[.[.:.(.[.(.(.(.(.(.(.:.!.[.[.(.).).).).)./.).).Z @.@.Z Y ,.Z Z Z Y Z X Z X Z Z X Z Z Z Z Z Z Y Y Y U Y Y Z Y Y Z X Z Y Y Z Z Z Z ).Y Y X Y Y ,.Y =.U Z '.=.Q U =.'.'.",
-"b b 1 1 9 1 9 1 b 1 1 1 9 2 1 1 4 1 | ( ( <.N.r.[.c ] + . . + % % @ @ @ @ - , | | a < | | 6 & ) k ..m.h.u.h.i.u.e.e.x.e.e.6.6.0.h.h.h.e.0.0.0.6.0.0.6.6.0.1.1.1.1.1.[.[.g.6.9.:.^.9.1.(.1.:.:.1.(.(.[.9.:.[.[.[.(.[.(.(.(.(.(.[.(.[.(.(.).).).).).$.@.Z X @.Z Z Z Y Z U Z X Z X U Z Z Z Z Z Z Z Z Z Z Y Y Z Y Z Y Y Y Z Y Y ).Z Y Y Z Z ).Y Z Z Z Z Y Y $.Z =.'.=.@.*.=.*.*.U &.=.",
-"7 1 1 1 9 9 1 b 1 7 1 1 1 1 1 1 4 1 | - = M 3.>.A ] + + + + + + . @ & % + + . . @ @ = - , | | | 6 | | 8 | - @ = 6 .f.f.u.u.e.u.e.e.e.0.e.x.e.0.6.h.6.e.0.e.e.6.6.e.0.6.0.0.0.1.1.0.1.1.[.0.1.:.:.:.9.(.0.:.(.1.:.(.[.[.(.(.[.(.(.(.[.(.(.).!.).,.).).).).Y ).Z @.$.@.@.@.Z Z Y Z Y Z Z X X X Z Z Z Z Z Z Y Y Z Z Z Z Y Y Z Y Z Z Z Y Z Y Y Y Z Z Y Y Z Y Y ).Z Y ,.Y Y Z Z X Z =.Z *.Z &.&.=.&.*.",
-"4 1 2 1 2 1 1 4 1 1 4 1 1 1 4 4 b b a & @ [ c c ] > + + + + + + . + + . @ ~ @ % + @ @ & $ @ = - , | | | | < < | ( - @ = 6 ..f.i.i.i.u.e.i.x.x.6.0.e.h.h.h.x.0.0.e.0.6.6.6.6.1.0.0.6.6.1.1.1.1.1.:.1.:.g.:.[.1.9.:.9.9.(.[.(.(.(.(.(.[.).(.).(.).).).).).Y ).Z Z Y Y Z Z Z X @.@.Z Z Z Z Z Z X X X Z Z @.X X Z Z Y Y Y Z Z Y Y Z Z Y Y Z Z Z X Y Y Y Y ,.Y ).Y ).Z Y X Z Z Y Z Y '.=.Z X =.=.=.=.*.=.&.*.*.",
-"1 4 1 1 1 1 b 1 1 1 1 1 7 1 b 1 1 4 | & @ ; ; + + + @ { ~ $ + . = = = @ @ - , 4 | 8 | < | | 7 a - @ @ a S f.i.x.i.0.0.e.e.e.h.e.0.0.6.6.h.e.0.6.0.6.0.1.1.1.1.1.1.1.1.1.:.1.1.:.1.:.:.:.(.[.(.(.:.!.:.1.(.).(.).).).).).$.).).Y Y Y Y Z X X X w Z X Z Z X Z X Z Z Z Z Z Z X X X X @.X Z X Z Y Z ).Y Z Z Z Z Z Z Z Y Z Z Z Z Y ).Y Y ).Y ).Y Y Y ).Z ).=.Y $.Z Z $.=.X *.Q *.@.=.=.&.Q &.",
-"1 1 7 1 b 4 4 1 4 1 4 1 4 1 1 1 1 b 6 ) + + + . + $ ) % @ . = - - & = = , | 4 < ! | < | < | ( @ $ ( O 3.q.i.e.e.e.e.0.6.0.x.0.e.0.e.0.6.6.h.6.e.0.1.1.1.1.1.1.1.9.^.1.:.:.9.[.[.[.[.g.!.9.!.!.(.(.).).).$.).).).).$.Z @.X Z Z X Z Z Z Z Z X w Z X @.Z X Z Z X @.$.X @.Z X X @.X Z @.Z Z Z Y Z Z Z Z ).Y Z Z Y ,.Y @.Z ,.Z X $.Y Y Y Y Y R ).Z Z Z Y $.Y Y Z *.=.$.$.*.*.&.=.Q *.&.*.",
-"4 | 7 e 4 e 1 4 4 4 4 1 2 2 1 1 1 1 i % . + + + % ) ; + + @ @ - - - - - - , | | i < ! a | < | ( @ % { r f.f.h.h.e.0.u.0.6.e.e.0.0.0.0.e.e.6.h.6.6.0.1.1.[.1.1.^.:.1.1.9.9.(.[.[.[.(.(.(.!.(.(.,.).).).).).Z Z @.X Y @.X @.X Z Z X Z Z @.Z Z Z X Z @.X X X Z Z Z X X @.X Z @.U Y Z Y Z Y Y Y Z Z Z @.Z Z Z ).@.Y =.Z Z Z ,.Y Z $.Z Z Y ).Z Z Y ).Z $.Z @.$.=.Z *.*.*.*.*.*.&.=.=.%.Q &.",
-"1 4 4 | e | 1 1 1 4 1 2 2 1 1 8 4 4 i = + . + @ & % @ @ - - - - @ - , 8 4 | | | < | ( | | ( @ @ ( t .i.e.e.h.e.1.u.e.6.6.6.0.0.0.6.6.0.6.6.:.6.6.1.1.[.(.1.1.[.(.(.[.).[.).).(.).,./.$./.).$.Z X X @.X X @.X X @.@.X @.@.Z Z @.X Z X Z Z Z X X X Z Z X X Z Z Z Z =.Z Z Y '.'.Z Z $.Z Z Z @.Z Z Z Z Z X Z @.X '.'.U '.'.$.Z Y ).Z Y ).Y Z Z Z Z Z $.Z $.Z ,.*.*.*.%.*.=.*.Q X X z ",
-"4 1 7 4 e ! 1 1 1 4 ! 1 1 ! 4 4 1 b | { & . + @ = & - , , - , - - ( | 4 8 < ( | | ( a < a ( = j -.f.e.0.e.e.0.0.e.6.6.0.0.0.0.6.0.1.0.0.9.0.6.:.(.1.g.(.:.(.).).).).).)./.).).$.$.@.*.@.@.Z @.X @.@.X @.%.%.X @.X X @.@.Z Z X Z X @.X Z @.@.X Z Z Z X Z Z Z Y Z Z '.Y U '.Y Z Z Z $.Z Z ).Z Z Z ).,.Z =.@.Z ).Y Y Y ).Y Y ).).Y $.).Y Y Z =.Z @.$.$.*.=.*.*.&.*.&.Q *.Q z m f ",
-"1 1 1 4 4 1 1 4 1 4 1 1 2 1 4 4 7 1 e : ) + + . = & @ @ . . - ( < | , , , , | 4 | 4 | | ( < | < a | ( = & 6 M h.e.0.0.e.e.6.6.1.e.6.0.0.6.0.1.1.9.:.1.:.[.[.g.).(.(.).).).).@.%.].=.$.@.X @.X X @.@.*.@.@.X Z Z Z X X Z %.@.X @.%.X %.@.Z Z @.X @.X Z X Z *.=.Z Z Z Y Y Z Z '.Z Z Z Y Y Z Z Z Z ).Z Z $./.Z Z Y '.'.Z @.X Z U '.Z ).).Y '.=.$.U Z =.=.=.@.%.%.=.=.=.*.*.*.*.*.U z w f / * ",
-"1 1 1 1 b 1 1 1 4 4 1 2 2 8 1 1 8 1 b e : @ + + @ $ $ % = $ @ @ @ - , | | | | , , ! 7 4 | | ( ( a ( | ( < a ( & $ $ [ B h.e.6.6.0.0.0.0.1.0.0.0.1.1.[.[.[.[.(.[.(.(.(.)./.$.).).].@.@.@.%.*.&.=.X X @.*.X *.X X X %.X @.X $.@.%.@.X @.@.X %.@.X %.@.@.X @.@.Z Z Z Z X Z X @.Z '.'.Z Z Y Z $.X $.@.Z ,.Y @.Z /.Z Z $.$.$.'.U '.Y ,.$.$.Z =.Z Y ,.Z ,.Y @.@.Z =.*.=.@.@.*.*.*.].%.*.=.U z w d _ / * # ",
-"4 1 1 7 1 1 1 4 7 4 1 1 4 1 9 2 9 9 7 e k { . @ @ & @ $ & ) & - | e v e | | : | 4 e e 7 | ( < 6 ( ( } a < | ( ) % % : y e.0.0.0.6.e.6.9.9.9.[.[.1.[.[.(.[.).(.).,.$.@.$.$.$.%.%.%.@.%.%.%.@.=.=.=.*.Q Z @.X @.@.@.X %.%.%.&.*.@.X @.X X @.%.%.@.@.X @.@.X Z X Z $.U *.*.@.Z Z Z Z Z Z Z Z Z ,.Z Z Y R Y Y Z ).,.$.Y Z '.X =.*.=.Z Z '.=.Z $.$.=.$.=.=.=.X *.=.@.&.&.&.*.=.=.U *.Z z w f _ ' # # # * ",
-"4 4 4 4 1 4 4 4 1 7 4 1 4 7 1 9 8 7 e e e | | 6 { % % % % $ @ & = : 5 = - , O O O i | i : 4 b 7 e 4 | | | : 6 a : : < a < ~ ) ] } y -.0.0.0.1.[.1.1.1.[.[.(.(.(.).).).Z @.@.@.@.%.X @.=.%.*.*.*.].%.;.%.*.*.$.$.@.U $.*.X X @.@.X X %.X U *.*.$.@.X @.X X X X @.X %.@.@.@.=.X $.X X X $.Z Z Z X @.X Z Z Y Y $.$.Y ,.Y Z Z '.@.$.X =.*.X *.=.=.X '.=.Z Z $.X $.U ,.=.*.&.&.@.=.*.*.=.U '.U w w f _ ' * * * + # * ",
-"4 7 b | 1 7 4 1 4 4 1 7 4 4 1 b b b 7 e i i i p } { { ) = = - ( : 6 6 i e v S G G v i | 7 e s 7 7 | | ( ( ( ( < < < | < } [ l h g W >.1.9.[.[.[.[.(.).).).)./.$./.@.$.$.].%.*.Q *.;.*.*.%.%.*.*.&.*.%.%.$.=.=.$.U $.U Z @.@.@.X $.@.@.$.=.=.=.X X %.X %.%.%.@.@.X @.X @.@.X $.Z U =.=.'.Y $.=.$.Z $.$.Y ,.Z Y Y ,.Y Z '.'.Z Z @.$.@.$.*.$.@.X $.Z =.=.$.@.@.%.@.X *.=.=.&.*.*.Z Q U '.x f f _ ' * * * . # * ' ' ",
-"4 7 4 7 7 4 e 4 7 7 b 8 4 7 8 b 8 8 b 7 e e v v 6 5 i 6 : - : 6 6 i e v e v O v v v e | 7 e s | | < ( ( 6 : : a ( a | | } h C w R R !.!.!.)././.).).,.$.@.Z Z @.@.%.%.X @.@.@.;.%.;.X *.*.X X @.*.*.*.@.*.*.*.X *.*.Z *.X @.$.X $.@.*.*.*.*.*.@.@.%.%.X X X @.@.@.@.X =.Y Z @.@.X X Z Z Z X *.X $.Z $.Y ).Z $.Z $.).Y Y $.=.Z @.*.@.*.*.@.$.Z =.$.*.=.=.*.*.%.@.@.@.&.*.*.*.@.Z U z w f / * * * * * * * * ' _ 3 ",
-"1 7 1 7 1 4 4 7 4 7 7 4 4 8 4 7 b b e 7 e e e e i v G 6 i i i k v s v s s v v v e e e e 7 s e i < ( ( ( ( ( : ( | < ( a g h R '.Y !.Y ,.,.).@.@.%.].%.@.@.@.%.@.$.X X *.%.;.%.X *.X *.X Z *.@.@.%.X %.@.X X @.*.*.X *.X *.@.@.=.Z Z @.@.*.@.$.=.Z @.%.%.@.%.@.@.Z Z @.Z $.$.Z @.Z $.Y '.Z X =.Z Z Z Z Z =.,.Z @.Z @.$.Y Z Z @.@.@.*.*.@.$.@.$.*.=.=.*.*.*.%.;.*.*.@.X $.X U Y w w f / * * * + + * * ' _ _ _ f f ",
-"7 4 4 7 4 1 4 4 7 b b 7 7 7 4 7 7 b b e b 7 e s e s O v e v v s i s e s I s e q s I s e e e | | < | : ( a ( : ( < | < ( 6 C R =.Z Y =.=.@.@.%.@.%.].@.$.X Z $.X =.].%.X @.*.;.X *.X X X X U *.Z %.%.;.%.*.*.*.X =.X *.*.*.@.@.*.$.Z X %.X @.@.$.@.@.$.Z @.%.X @.@.U =.Z Z X @.%.@.X U =.Z @.@.$.$.$.$.Y '.=.Z ).Z @.).Z $.Z *.X @.@.=.*.X *.$.=.*.$.@.@.*.%.;.%.*.@.X X Z z w l ' _ * * # * * * * _ _ f f f o x ",
-"7 4 4 7 4 4 1 4 4 7 | 4 e | e 7 9 b 4 b 4 7 q b q s s s s F s v v e v I I v I s v v s e | | : : | : ( | ( { ( ( ( < | | a g R Y Y $.$.@.%.%.%.%.@.%.X X @.@.@.=.*.*.*.*.&.X @.*.Q *.E X $.@.@.@.@.X %.%.@.@.@.*.*.$.=.=.@.*.=.$.*.=.$.@.@.@.=.*.@.*.@.].Z *.*.@.Z $.*.$.$.Z X Z Z '.,.U '.Z Z $.Y Y Z '.=.Z Z Z Z X @.).,.=.Z @.%.%.Q =.*.=.&.*.*.*.=.*.%.;.%.*.Z Z X z d d _ ' > # * + * * * * _ _ 3 f o x D D ",
-"4 4 4 7 4 7 7 7 b b 7 4 e 7 7 7 b b e 7 4 b 7 1 b b e s v s q I s s v I v I e s s s v i ( | ( ( | ( ( ( < ( a ( < ( ( ( a 5 V $.$.Z ,.$.@.@.%.%.*.$.%.X @.=.*.@.*.X ;.X *.*.%.X X U D X X %.@.@.@.@.X %.*.*.*.@.*.=.=.=.$.@.=.Z ].@.*.].*.=.*.=.@.*.@.*.$.X =.=.=.Y '.,.,.Z $.Z X Z ,.Z '.Z $.Y '.Y $.'.U ,.@./.).Z @.X Z $.$.$.Q *.*.*.@.=.*.@.*.*.@.@.@.X X Q Y w w d _ ' * # * * * * * / _ 3 f o o o E x &.Q ",
-"4 4 4 b 4 4 7 7 7 7 4 7 b 7 4 b b 7 7 7 7 7 7 7 b b b e e s e q F s s s e v s e e e 6 | : ( ( ( ( ( : ( ( ( < < ( < | a a g T Y Z $.X $.$.%.%.@.$.Q X %.X *.X *.*.;.%.%.*.%.X @.@.z Z X @.X X =.@.@.@.@.@.].@.@.$.@.@.@.@.*.*.*.@.].@.$.'.=.=.=.=.%.*.'.$.$.X =.'.=.Z Z Z ,.Y ,.Y =.X Z Z @.Z $.Z $.Z Y Y @.Z Z Z Y ,.$.$.=.*.=.=.@.*.%.*.*.*.;.%.;.;.%.X X Q z f d 3 ' > * . * # # * / _ _ f f o o E E E ;.Q {.",
-"7 4 4 4 b 4 7 7 4 b b 4 7 7 4 7 7 b e 7 7 4 4 b 4 b 4 b b q 7 q s s s e e e e | | | ( | : ( ( < ( ( : : ( { : : : ( ( < | a C ).$.$.%.X @.%.%.X =.@.*.*.@.@.@.*.%.X *.Z %.%.X Q X X X X *.$.@.X @.%.@.].@.*.=.*.@.].@.@.@.=.$.%.%.@.@.%.=.=.=.=.=.$.@.=.$.$.$.Z $.=.@.@.X $.Z $.U =.$.@.Z ,.Z $.Z Y =.$.Y $.$.$./.Z $.$.X $.*.X *.@.*.*.*.*.&.*.*.=.Q X X z w d _ > > + > * * * * / _ f f f o x D E E Q {.{.;.;.",
-"7 7 4 b 4 7 7 7 7 7 7 7 4 7 7 7 7 7 7 | 4 4 4 4 | 4 4 4 7 b b e e q e e 7 | | | | ( : : ( : : a ( ( : ( ( ( : ( : ( < | a a C Y Z @.*.;.*.=.X =.X *.@.*.%.*.*.X %.%.X *.X Q &.X D Z X X $.$.@.%.%.@.*.@.=.$.].$.*.@.@.@.$.@.].*.@.@.].*.*.*.*.*.*.@.$./.$.$.$.@.=.$.Z $.$.X $.U $.Z X Z '.Z '.Z $.@.$.Y $.Y Z ).Y ,.Z @.=.*.@.*.@.*.%.;.;.;.%.*.X U U z w d _ ' > + * * * * * _ _ _ f f o x E D Q E {.{.E ;.{.{.",
-"4 4 7 b 4 7 7 4 7 7 7 e 7 7 7 7 7 b 7 | 4 4 4 4 4 7 | 7 4 7 7 4 | e | | | | : : | , ( ( ( ( } : } ( ( ( : ( ( < ( ( < < < a C R $.Z *.*.%.*.$.$.X =.=.*.;.%.*.*.%.%.@.*.%.X X $.X X X X Q /.$.%.%.@.*.=.$.'.=.$.$.$.$.@.=.@.@.].].].].%././.].].]./.=.=.%.@.$.$.*.$.@.Z $.X @.=.=.$.Z @.Z X =.Z =.$.@.$.$.$.Z ,.Y $.=.@.*.&.*.].%.*.%.%.%.;.*.Q Q z m 3 ' > * * * + ' ' ' _ _ 3 f o o o D E Q ;.Q {.;.;.{.{.{.{.",
-"b b 4 b b 4 7 7 7 4 b | 7 | 7 7 7 7 e e , | | , | | 7 | | | | 7 | | | | | : : : : ( a : < < < { : : } ( ( ( ( ( ( | < | a k y Y Y Z @.%./.].@.X *.*.*.%.X *.*.X %.X %.X X %.X *.X X X @.$.=.@.@.@.@.$.].$.@.=.$.'.$.=.$.@.*.@.@.$.*.].*.*./.].].].*.=.].@.%.$.,.).Y Z @.=.$.X @.Q *.@.@.*.@.Z $.@.Z Z $.Z Y ,.Y $.$.*.*.=.=.].*.].c.*.;.%.*.U z w f ' ' ' + * + * * * _ _ 3 o o x x D Q Q Q Q ;.{.&.{.{.{.{.{.{.",
-"1 1 7 7 1 7 4 7 e 7 7 | e 7 e 7 7 7 i | | | | | | | ( | ( | ( | ( | : | ( : { ( ( ( a : ( ( ( } { ( : ( ( : : : ( ( ( ( < a j Y Z Z '.*.%.c.@.$.@.%.%.%.*.*.Q @.@.X %.%.X X %.X X X Z Z @.=./.$.].$.$.@.@.Z =.$.'.$.@.=.@.@.@.@.$.*.%.].=.*.*.*.=.=.=.$.$.$.$.'.$.,.,.$.Z $.@.@.X *.X X @.*.U $.).).Y /.Z Y $.=.@.@.%.*.*.=.=.%.@.%.%.X X z w d ' ' > + + ' * * ' ' _ _ f m o E E Q ;.;.;.;.&.{.;.{.{.{.{.{.{.{.",
-"b 4 7 e 7 4 7 4 1 7 7 b 1 7 4 7 e e e | | | | | | : 6 : : : | , | ( < | , ( ( : : 6 } ( ( ( ( ( ( { ( = { - ( < ( ( ( < | a y R @.$.$./.].*.@./.*.*.%.%.%.@.@.Z /.@.%.X X *.X %.X X $.$.=.$.@.%.$.$.$.$.$.$.Z '.'.*.@.@.,.=.'.=.$.@.].'.=.=./.=.*.*.$.'.$./.).$.,.$.@.X @.X Z @.=.Z @.@.X @.@.Y Z Z /.Y $.@.=.=.@.;.*.c.*.&.*.*.*.U X E w d _ ' > + + * * * * * _ _ f f o x E Q E ;.E {.{.{.;.{.{.{.{.{.b.{.7.{.",
-"7 4 7 7 7 b 4 7 7 7 7 7 4 b 7 7 8 7 e | | < | | i | | ( : : : | ( ( ( : : : { ( { : ~ { = { < ( ( = { ( ( { - { { ( | ( < a 0 R Z @.$.].].=.*.*.*.*.X %.@.@.@.@.$.@.%.X Q *.Q X X @.@././.$.@.].@.]./.,.@.$.$.Z Z =.=.@.=.&.=.*.$.$.*.'.'.=.]././.].@.$.$.@.$.$.$.=.$.@.$.X $.X $.$.@.@.Z Z @.=.,.,.$.Z $.=.*.&.].;.*.*.*.*.*.Z X z w d ' > > * * * # * * * _ _ f o o o x E Q ;.;.;.{.{.{.{.;.{.{.{.7.{.7.7.y.{.",
-"e 7 4 b 7 7 4 7 7 7 7 7 7 7 7 7 b 7 7 | ( | ( ( i , | | ( : : : ( : : : ( { ( { ( { { { { { = = = ~ ( = { = ( < - : ( ( | | 6 R Z =.=.*.@.*.$.@.$./.*.$.*.Z @.@.@.].$.@.@.X X @.$.$.$.$.@.@./.$.).$.$.$./.@.@.=.'.].Z '.$./.*.].].]./.=.a.*.*.].].].].%.@.].].$.$.'.@.=.'.=.X $.Z X Z '.'.*.=.*.X Z $.$.$.@.*.].;.c.*.*.;.X Z z f 3 ' ' > * + + * * * _ _ _ f f o x x Q Q E ;.E {.E {.{.{.{.{.{.{.{.7.b.b.7.7.b.",
-"4 7 7 e b e 7 7 8 b 8 b 7 7 7 4 7 8 7 | | ( | | | : : , | ( : ( : : ( { : { { = - ( @ & @ ~ = = = & = ~ - ~ - ( ( { ( ( ( | 6 C $.@.@.@.X $.=.*.*./.*.].@.@.Z ).$.].$.$.$.@.X @.@././.=.,.$.$.$./.$.$.).$.$.].].,.$.$.$.@.].%.%.%.*.c.*.=.a.*.%.*.%.].].@.].].$.$.'.@.*.=.'.=.@.@.@.@.X Y *.Z *.*.@.@.]././.*.].%.%.@.X Z z m d ' * * + + * * * * / _ _ f f o o E E E Q ;.&.{.;.{.{.;.{.{.{.{.{.{.y.{.7.7.7.7.b.",
-"7 7 7 e e 7 | e 7 7 7 | 4 b 7 7 7 7 e | : , | < ( , < : : ( ( - : - : : } ~ ~ = = . @ = @ @ @ = @ & & = & - ( - { { ( ( | | a C Y %.@.@.$.$.,.,.].*.].$.*.$.).Z /./.@.$.@.%.$./.,.$.$.,.$.).@.@.)./.).Z ).$.@.$.Z /.$.@.].%.%.%.c.%.*.=.&.*.*.*.].].].*.].@.].$.$.$.$.$.U =.=.@.Q *.@.@.@.$.*.*.%.%.;.%.@.].].*.%.%.Z z d d ' > + * + * * * * * / _ f f o x E D Q Q {.E ;.;.{.{.&.{.;.;.{.{.{.{.{.b.b.b.b.7.y.b.",
-"7 7 7 | 7 e 4 7 7 7 7 e 7 7 7 7 b 8 7 | a | < | | < ( : : | : ( : ( { ~ & $ @ . . . . . . @ . & @ = = - - - - ( ( < < a a V Y @.X @.@.$.$.,.].].]./.@.@./.Z @././././.@./.$.$.,.$.,.$././.@.).*.).$.).$.$./.Y ,.$.@.%.%.%.].].].].].c.%.c.%.]./.$.].].@.@.$.$.@.%.@.=.=.=.$.$.=.@.%.*.*.*.*.%.].%.*.*.*.].=.U z w d ^ > + * + * * * ' ' _ f 3 o o E E E E Q Q {.;.;.;.;.{.{.{.{.{.{.{.{.{.{.b.b.b.b.b.7.7.7.",
-"7 | e 7 4 1 b 1 8 7 7 4 | 7 e 4 7 7 7 7 ( ( ( ( < ( | < ( { ( ( ( = & @ & . . @ . @ @ # @ @ @ = - - - - , ( | | | y !.Z ,.)./.).)././.$.'.=.$.@./.@.@./.@./.$.].$.'.'.]./.].].$./.Z @.$.@.$.$./.@././.$.$.%.*.].@.].].].]./.*.*.].].$.@./.].*././.].@.$.@.@.%.X %.*.@.%.%.%.%.%.%.%.%.%.].].].@.X z w d / * * * # + * * * ' 3 3 3 f o m E D E E {.Q {.Q {.{.;.{.{.{.{.{.{.{.{.b.b.{.b.b.b.7.7.7.7.7.",
-"7 | 7 7 e 7 7 b 1 7 | 7 | | 7 e 7 8 7 | | | | , ( : : , ( : { = = @ @ . @ @ @ @ + . + $ . . @ = - - { < < < a a y !.Y ,.).).).).)./.$.$.$./.@.,.)././.@.@./.$.$.$.,./.=.=.$.$././.@.$.$.@.@.@.Z )././.].%.].].].].].*.*./.].%.].@.].*.].].$././././.@.$.$.%.@.@.*.*.%.;.;.;.;.%.c.%.].@.Z U z w 3 * > + + + * . * * ' _ 3 3 m o D D E E ;.;.;.{.;.;.{.{.E {.{.{.{.{.{.b.{.{.b.b.{.7.b.b.7.7.A.7.y.",
-"4 7 b 7 4 | 4 7 7 8 e e e 7 7 4 7 7 e e i ( | | | | ( : : { = $ $ @ @ @ @ - - - , , , - - @ @ + @ . @ = = - - , ( | | y !.).,.a.).).).,.,.'.,.].$.$.@.$./.*./.).$.].*.$.$.,.=./.'.'.'.,./.$.$.$.$.)./.).).a.].=.$.$.$.=.=.*./.].;.%.*.@.*.].*.$.*.$././.$.$.*.@.$.@.@.@.@.;.%.%.%.%.*.%.@.*.U w d l ' # * # + + * > * * _ 3 3 m o D D D Q X {.;.;.;.%.{.{.{.{.{.{.{.b.{.y.{.{.{.y.{.b.b.7.7.b.b.7.y.v.b.",
-"4 7 4 7 b 7 4 1 b b 4 7 7 7 e 7 7 7 v i , ( | , < ( ( : { ) @ @ @ . - , , ! ! ! , ! ! ! , , - @ @ @ @ = = < , ( | a t !.(.).(.).a.a.,.,.,.).]./.$.].$.@.].=.).$./.].].$.)././.,.).=.,.)./.Z @.@./.@.,.,./.%.%.$.=.=.*.].*.*./.*.%.*.*.&.].].=.=././.@./.'.*.%.@.=.*.%.%.*.c.*.*.;.*.%.U z z l ' ' * + * + # * * * _ _ 3 f m m E E Q Q ;.;.;.;.%.{.{.{.{.{.{.{.{.{.{.b.{.b.y.{.b.{.7.b.b.b.b.b.b.b.y.b.",
-"7 | b b 7 7 e 7 4 7 7 7 7 e 4 7 b e e 6 | | ( ( < , { & @ - , ! ! 4 e e b 2 2 2 2 2 ! ! , - @ . . . @ @ = - < | a | y :.'.!.a.).).).,.!.,.*.$.].].$.].].].,.$./.].*.$././.$.$./.].,.'.,.)././.$.$././.].@.@.].*./.].].*.%.].=./.*.*.]./.&.*.].@.].].].@.@.=.].*.*.*.*.c.*.&.].%.%.X z w _ ' ' ' + + * * * ' * _ _ _ f o o x D E E ;.Q ;.;.;.;.{.{.{.{.b.{.b.;.7.b.{.{.b.{.b.b.b.v.b.v.b.A.7.b.y.b.b.y.",
-"b 7 4 1 b 4 | 7 1 8 7 7 7 e e e 7 s e | : | ( : ( < { & @ @ - , ! 2 2 q 4.k.` s 9 1 9 9 9 b b ! ! - @ @ . . @ . @ = - , , | | k ^.!.!.).).,.,.,.,.,./.$.]./.$.].@./.'.$.$.$.$.$.$.=./././.]././.$.Z $.$.).$.$.$.$.].$././.$.*.*.*.].%.*././.*.&./.*.].%.@.]./.%.].*.%.].*.c.;.*.].=.=.&.$.Y w d _ > > + * + # + * / / 3 3 f o o E E E Q ;.;.{.E {.{.{.;.;.{.{.{.{.b.b.7.7.b.b.b.b.y.b.y.b.y.b.b.v.7.A.b.y.y.v.v.",
-"| 7 4 7 7 e b | 4 7 7 b 7 7 | 4 4 e e i | : : ( ( = @ @ @ - , ! 2 q H S.V.|.I q 9 9 9 9 b b b q 7 ! , @ @ . @ @ - - - < < | r V '.).).).).g.(.,.,./.]./.@./.$./.*./.,.=./.]././.,./.$./.$.,.'.).).,.'.$.$.$.$.$.X ].].@.].*.].].].].].=.*.*.].&.].%.].].a.].].].c.].].].].].].=.*.=.Y f f _ ' + * # * * * * ' _ _ 3 3 m D D D E ;.E {.E {.{.{.{.{.;.;.;.{.{.{.{.b.7.7.y.b.v.b.b.b.7.7.7.v.7.A.7.v.b.y.v.y.v.v.",
-"4 | e 7 4 e 7 e 7 7 7 b 4 7 e e | 7 7 | < < ( ~ = = @ - , ! ! 2 9 j.S.=+n.I s 1 9 2 2 9 9 b b b 7 7 , - @ . @ @ . - - , ! < 8 y :.'.,./.a.!.,.(.'.'./.].].$./.$./.].].=.=./.@./.$.,.,.,./.$./.$.$.).$./.,./.$.=.$.].@.=.].].].].@.*.&.*.*.*.*.].*.].].%.%./.].c.].c.c.].c.].].=.,.U w 3 / ' + > + * # * * / _ 3 f f m z z E Q *.;.{.{.{.{.{.{.{.;.{.%.;.;.7.{.b.{.{.b.7.7.b.b.v.b.y.y.7.b.v.A.v.7.A.v.y.b.y.y.v.",
-"4 e | 7 b 4 e i | 8 8 | | 4 4 | 7 7 | ( | ( ( = = - - , ! 2 1 H j.S.-+|.I q 1 2 2 9 2 2 1 4 b 7 b 4 4 , @ @ . @ - @ - - < 8 | r !.)././.).!.a.'.,.,.=.$.$././.@.].].].].*.]./.,.,.,.,.$.$./.Z /.)./.).,.Y ).,.=./.@.$.$.$.].%.*.*.].].&.*.].]./.=.=.=.*.].c.].].&.].=.*.@.@.'.w w d 3 > * * + + ' * * / _ 3 f f o z z U X Q ;.Q ;.;.{.{.{.{.{.{.{.;.7.c.{.{.b.{.{.b.7.{.7.7.b.7.7.b.v.v.I.7.v.A.v.y.y.v.y.y.C.G.",
-"4 7 | | 7 e e | 7 7 1 e 7 7 b 7 7 b e a ( < - @ - , , , ! b H S.S.V.+.v 4 4 1 1 2 1 2 2 9 1 7 b b b b | - @ @ @ @ - - - , < 8 y ^.)./.,.a.,.(.,.,.,.'./.=./././././././.=././.,.,.!.,.).$./.$.@.$.@.).).$.,.,.=.=.=././.$.=.].].].].].].%.].].*.*.&.=.c././.].c.'.a.=.'.Z z w l / * * > # * ' * * ' _ _ f o m z Q Q X ;.;.*.;.*.;.{.{.{.{.{.{.7.7.7.b.c.c.7.7.7.c.7.b.7.b.7.7.7.v.b.b.7.I.A.v.A.v.v.v.v.I.A.y.A.",
-"7 4 4 b 4 | e e 4 8 8 8 7 7 4 7 | 7 7 i ( - = @ - , ! 4 q _.S.-+n.F e 1 ! 1 2 2 1 1 2 2 1 4 4 4 7 7 7 | - @ - @ @ @ < < | | r R )././.!.a.'.(.,.,./.'././././.).].,.'.=.=.'.a.'.'.!./.).Z /./.Z /.$.$.,.$.].=.*.*.].*.=.=.%.%.].*.*.&.*.*.].=.a.*.*.=././.].].*.=.U Y w d / ' * * # # # * * ' _ _ 3 f f o E E Q Q ;.{.%.;.&.;.;.{.{.{.7.{.c.{.c.{.7.7.7.7.b.7.7.7.7.7.7.v.7.v.b.b.v.v.b.v.y.y.C.y.v.v.A.v.v.A.",
-"7 b 7 4 7 e e e 4 8 4 | 7 e 7 7 | e 7 i { = @ , , ! ! q H S.`.|.s 4 1 b b 1 ! ! 1 1 2 1 1 1 1 1 8 8 7 e ( - @ @ @ , - , , ! a y !.(.).a.,.!.,.).,.,./.=.].$.$././././.'.=./.,.,.'.'.,.)./.@.@./.,.$./.$.$.$.].].].%.].*.].c./.*.].=.a.*.].*.c.&.*.c.*.=././.]./.Y Y m l / / # # # * # * * ' / 3 f f o o x x Q ;.;.;.;.{.%.{.c.;.{.7.7.{.c.7.7.b.7.7.7.7.7.{.7.b.7.7.v.A.c.A.y.7.v.v.b.I.7.A.A.7.y.A.v.v.v.v.A.A.",
-"4 4 4 4 b e e | 7 | 4 7 7 4 7 e e 7 7 a { - , , 2 2 b q E.S.` e 1 b 1 q b q 1 1 2 2 2 4 1 1 b b 7 7 7 e i ( @ @ . - - - , | | r :.!.,.).).).,.).,.$.'./.$.]./.,.,.,.=./.,.'.'.,.,.'.,././././.$.$.,.$.,.,.$.].@.].%.c.%.*.].].].a.=.&.].c.;.].]./.=./.=./.@.Z Y w d / ' * * * * * * ' / / _ 3 f m m x x U Q Q E {.X {.{.{.7.b.7.7.{.{.{.b.7.c.7.b.c.7.b.b.7.y.b.v.b.b.A.A.7.A.v.A.v.A.A.I.A.y.y.7.v.v.b.A.A.v.y.",
-"4 4 b 4 7 4 7 7 7 7 1 4 7 4 4 4 7 7 7 a - , , ! 2 2 q F k.I e q e q q q e b b b 1 4 1 1 4 1 7 7 7 7 | i | ( = @ @ @ - , , ! a t (.,.!.!.).).,.$.=./.=././.$.,.,.$.,././.a.,.'././.,.,.)./.@.].=././.$.$././.].%.%.%.]./.=.].].%.%.].].*.%.c.].].c././.$.Z Y w d ' _ > * # # # # * / / _ f m m z D E Q Q *.;.;.{.;.;.{.{.{.;.{.{.7.7.b.b.b.b.b.7.b.7.c.b.b.b.7.7.7.A.b.I.I.7.A.v.b.I.y.y.A.A.C.y.y.v.v.v.v.b.v.y.",
-"4 4 4 7 7 8 1 4 b 4 7 7 4 4 | 7 | | e | - , ! ! 2 b b F s e 7 q s s e q e q e 4 e | 4 7 7 4 | 7 i 8 i 7 i | - @ @ @ - - , | | y (.g.'.!.!.,.,.'.,.,.,.=.,.,.'.=.,.$./.].$.a.,.,././.,./././.]./.=.,././.$.$./.=.*.].].].].].].].c.;.c.].].]./.].].$.Y Y z d _ > > > * # * * / / _ _ f m m z D E X X %.;.;.;.;.*.;.;.{.{.{.{.{.7.{.{.b.{.7.b.b.7.7.c.7.v.b.v.b.v.v.b.A.b.I.v.v.v.y.C.C.A.v.y.y.A.A.v.v.v.v.v.b.v.",
-"b b 4 4 7 7 4 4 7 8 7 e 7 4 4 8 7 7 4 | , ! ! 2 1 b 7 b 1 1 q v s q e q e b e e | | e s O 7 | 8 8 8 i | i | - @ - @ - - , < | y !.).,.,.).,.,.=.=.,.,./.=.,.,./.=.'./.=./.,.,.,.'./.).Z /./.].].=.,.@./.).$.=.=.c.].%.].].].c.*.].*.].]././.$.Z X Y w _ ' ] > + # # * # / / _ 3 f f m z D X X %.%.{.{.%.;.{.{.&.;.;.{.{.b.{.b.b.{.7.b.{.7.7.b.7.A.c.c.v.b.v.b.b.A.A.A.A.b.v.A.v.v.A.A.A.A.y.A.v.A.v.y.y.A.v.y.y.",
-"| 7 b e | 8 b 7 4 4 4 4 7 7 7 7 4 8 | | , ! ! ! 4 1 4 1 1 q e F e q e q e b e e i i 6 M G a 7 i 8 i 8 i | a ( @ @ - - , < | a N ).).,.!.,.)./.=.,././././.=.,././.,.'.,.'.,.a.,.$.)./.)./././././.=.,.,.=.=.a.*.*.%.%.c./.*./.].a./.c./.$.,.Y Y w d / ' > * # ; * ' / / / / _ f f z z X X X %.{.%.{.%.{.{.{.{.{.;.&.7.b.b.b.b.7.b.b.b.b.7.7.b.7.7.7.A.7.y.v.y.y.7.A.A.v.I.v.v.A.A.v.A.A.y.A.A.A.y.y.A.A.y.y.C.C.",
-"| | 4 7 4 4 b 7 4 7 4 4 1 4 7 4 | b 7 | , ! , ! 1 ! 1 1 e q e e e e b 4 e e B B 6 : k t B B r r | i i | 7 i a @ = @ - , , 8 | C (.).).,.,.=././.'.'.'.'././.,./.]././.,.'.!.g.).$.)./.,.,././.]./.=./.,.].%.].].].c.%.c.].].a.].=.'./.,.Y Y w d _ ' > * > + * > > ' _ _ f f w z z X X X ;.;.*.%.7.{.7.%.7.b.b.7.b.7.7.7.7.7.7.7.b.b.b.7.7.C.7.L.c.7.A.b.b.b.v.y.A.y.A.A.I.v.v.A.J.J.A.A.A.A.A.A.C.A.A.C.C.c.B.c.",
-"7 e 7 4 | 4 4 4 7 7 4 b b 7 8 7 1 b 8 ! ! ! , ! ! 1 4 q e q e q e e e e s G K K [ { } 6 y B M B p a 8 a 7 a } @ - - - , ! 8 a T ).).).).,.,.'.'./.=.=.]././.$.$.)./.,./.).a.).).,.).,.,.$.$.].a././.=.a.].c.%.c.]./.].].a.=.]./.,.,.Y Y w 3 _ / * ; # + # / * / _ 3 l m m z z Z X X X %.*.*.{.%.%.c.%.c.{.b.7.b.b.b.7.7.7.7.7.7.7.b.7.7.7.7.A.7.A.7.7.v.v.v.y.7.y.y.A.v.A.v.I.v.J.A.I.G.y.A.C.C.A.A.A.y.B.B.z.z.",
-"1 4 4 4 | | 4 4 4 7 | 4 4 4 7 7 8 b 7 4 , ! 1 ! ! 1 b e b b b e b 7 4 e G .N u ) ) % - a y y p B a 7 7 7 a : @ @ - , , | 8 a V !.,.,./.$././.'./.*.'.'.,.).).=.,.,.a./.)./.).).)./././.'.'./.,./.,.=.a.%.c.].a.a.a.].c.).a./.,.).R w l / ] ; # # # / * > / ' _ 3 d m z z X X X Q %.*.%.%.*.;.c.%.c.c.c.7.b.7.b.7.7.b.b.b.7.7.7.C.7.A.7.I.7.A.c.A.A.A.v.v.v.y.v.v.v.A.v.A.y.I.v.v.G.v.G.C.A.J.C.A.C.C.A.B.B.c.z.",
-"4 4 4 7 | e 7 1 | 7 4 | 7 7 4 4 1 8 4 ! ! ! 1 ! 1 4 e b 4 e 4 7 4 e 4 v ..u u 0 [ & @ @ & { 5 j p r a 7 a r { = - - - | ! ! a V ).,.$.,././.=.]././././.=.$././.'.).).)./.)./.)./.).'.a./././.a.=.a.'.*.].%.c.&.a.=./.)./.,.Y Y R l _ ' > * * # / * > ^ / _ l l w m z Y D X X *.%.%.;.*.{.c.;.7.;.;.{.{.7.7.7.7.b.7.b.b.7.I.7.A.7.A.7.A.c.A.A.v.7.A.7.A.v.v.v.y.y.y.v.A.y.v.y.v.G.v.D.v.A.C.C.A.A.A.A.C.C.B.B.B.",
-"4 4 4 7 7 e 4 4 4 7 4 7 | 4 | 7 1 8 7 7 ! ! ! ! 1 1 1 7 4 4 7 4 e | e u K j j 0 [ & @ @ @ & } r r | i a a ( = - , - , 8 8 5 R '.'.$.,.$././.$./.,.,.,.$.$././.,.).).).).).).a./.).,.,./.=./.a.=.].a.].a.].a.c.a.=.a.$.Y R w d ] ^ ; > # # / > ' / 3 l l d d w z Y D Z X *.;.*.c.%.c.c.7.7.c.7.7.;.7.{.%.7.7.c.7.7.7.I.c.7.I.7.7.I.7.I.7.A.A.A.A.y.A.C.y.A.y.y.v.v.v.v.y.A.y.I.v.y.D.y.C.A.A.A.A.v.v.A.y.C.B.D.",
-"4 b b 7 | 4 7 b 7 4 4 | b 4 7 | 7 4 4 | , ! ! 1 b 4 1 4 1 4 4 ! e 6 k 5 j K K t ) @ @ @ = = - : K G a i a a = - , - , ! ! 4 y !.Y ,.,.].=.=././././.$./.,./././.,.'.).)././.).)./.].].a./.a.].a.=.a.].c.].a.]./.].$.Z Y w d ^ > * # * ; * # ^ / ] d l l d Y z Y Z X @.@.@.%.;.c.*.c.%.%.7.%.{.7.7.b.7.c.b.%.c.c.7.c.c.c.7.7.L.I.c.c.A.A.A.A.v.v.v.A.A.A.A.G.G.v.y.y.v.I.v.v.A.y.A.y.y.C.A.y.A.A.v.A.A.A.y.C.y.A.",
-"4 4 4 b e 7 | 7 | b 1 4 7 4 | 4 | 4 1 4 | ! ! b 7 4 4 4 4 4 1 4 v 6 6 : 5 W u K & @ = @ : : k 6 K M a a a a < , , ! , ! 8 | j !.).$.,.,.,.,.$.$.$.'.'./.,.$.,./.).$.).).)./.).).)././.].].a./.a.].c.a./.a.].a./.).Y w d ] ' # # # # * ^ / / / l l c C R R R (.).).).,.].c.].%.c.].c.c.c.%.7.%.7.c.7.7.c.7.I.7.c.7.7.C.c.I.7.7.I.7.L.c.C.C.A.A.A.v.A.v.v.I.G.y.v.I.y.G.J.I.I.A.A.y.y.y.c.A.A.A.A.A.y.A.y.y.y.7.v.",
-"4 4 1 4 7 7 7 7 4 1 4 4 4 | 7 | 1 1 4 e i ! , 4 4 4 | ! ! 4 1 e .5 } - p B K [ & = = : 6 k p j S W 7 a a < - , , ! ! ! | | V Y *./.'.'.'.=././.=././.$.].=.$.).$.Y ).).,.)./.)./.,.,.,.]./.a.a.a.].].c./.).$.R w l ' ^ * / # ~ / / ^ ^ c C T #.i.q.N.P.++#+*+*+P.N.u.u.U.[.a.a.c.c.%.c.c.c.7.7.7.c.7.7.c.c.c.c.I.7.c.I.c.7.I.7.A.A.A.C.7.A.A.y.A.A.J.I.I.v.G.G.A.A.I.v.y.A.A.y.y.y.y.v.A.I.v.A.A.A.y.y.y.y.A.v.",
-"4 1 1 4 4 4 4 b b 1 4 4 1 4 7 7 7 7 b e | 4 1 4 ! | ! ! | ! 1 s G ) : : t t t u & = = } 6 k p p S a i a a a < , , ! < 1 ! < V !.$./././.,.'.'./.=.=./.$.].*.@.,./.).).).$.)./.).).).'.a.=.a.].a.).].a.).).Y w d ] > > ; ; # / ^ ^ g y W 3.M.N.$+{+{+3+3+3+3+3+3+3+3+/+{+:+*+P.U.a.c.7.c.c.%.7.7.7.c.7.I.7.7.I.%.7.b.L.7.I.c.I.c.A.7.A.C.L.A.A.A.v.J.A.v.I.v.y.y.v.A.A.J.G.A.G.C.C.C.C.A.J.A.A.v.A.A.y.y.A.v.G.v.",
-"4 4 4 4 1 7 4 4 4 4 4 4 4 b 8 8 | 4 7 7 , ! | ! 4 ! 4 ! 4 ! 4 s v - | p M K N u [ & : ( 5 t k B W a | g a - < , ! ! ! 8 | a V ,.,./.a.)./././.'.a.,.,.'.,./.=.).).Z ).).).,.).a.)./.a.,.a./.a./././.Y Y w l ] ^ * # $ # / ^ [ y -.q.T.$+{+{+e+e+e+e+e+k+r+k+r+r+l+k+k+l+e+3+{+:+#+.+d.c.c.c.L.c.c.7.7.7.c.7.%.I.7.7.c.I.7.I.7.I.C.L.A.A.A.A.C.C.A.I.J.A.I.J.G.G.G.G.G.I.v.A.y.y.y.y.A.A.I.v.v.A.A.A.y.A.C.G.A.J.",
-"4 4 1 4 4 1 7 7 | | 4 4 8 1 8 1 7 7 7 e , ! ! ! , 4 ! ! | ! 1 e 6 : B ..M K K u [ ) = ( : 6 j K B a < a a ( , < | 8 4 4 | g !.).).$./.,.,.'./.'.'././.'.'./././.).$.).,.).,.).).).).].].a././.,.Y R l l ^ ' ; # ~ ^ ~ 0 u -.s.H.&+{+3+e+k+e+k+r+p+p+q+p+r+p+r+v+r+q+r+r+r+r+l+d+:+:+*+.+a.a.L.7.L.%.I.7.I.7.c.A.7.I.c.I.c.I.c.A.A.C.C.C.C.J.A.A.C.A.A.G.G.I.I.G.A.A.A.J.G.G.A.A.A.A.A.A.A.A.A.y.y.A.A.A.C.A.A.A.",
-"4 4 4 1 7 4 | 7 4 4 4 1 1 4 1 8 1 4 4 | | ! ! ! ! ! , ! , , 4 s p v S }.}.}. .p 5 } & & = } k M p a a a < , < | < | 8 7 | y !.$./.).,./.).]./.,.,./././.,.'.'.).,.).).).,.(.,./.,./.,./.=.'.Y Y l l / * > $ ^ ~ y M f.Q.&+{+{+3+c+e+h+k+p+p+p+p+q+t+s+s+s+t+s+t+y+x+v+y+y+o+q+p+e+3+d+:+#+R.d./.L.c.L.c.L.c.I.c.C.].I.c.7.C.7.A.b.A.A.v.J.J.v.A.A.A.G.v.I.J.v.I.G.J.I.J.I.I.A.A.A.A.v.A.C.y.A.y.C.C.C.A.A.C.G.G.",
-"4 4 4 7 7 | 7 7 4 | 1 b 1 4 4 8 b 4 b | | , ! ! ! ! | , | ! e O t G S <.n.<.S p p [ = = { = p M 6 a a a a | , | ! | 7 8 i V )./././.,././.]./.,.,./././.).,.,./.,.$.).).,.,.,./.,./.,.,.Y w l l / ^ ; # ~ u .T.M.$+$+3+3+e+k+k+m+r+p+r+p+r+s+s+s+s+t+v+v+y+y+t+t+y+v+t+B+t+t+v+v+p+k+d+3+:+.+R.c.L.c.L.7.L.c.L.A.L.7.I.L.C.7.C.A.A.C.A.C.A.I.I.A.J.J.G.J.J.G.I.I.J.J.C.C.I.I.v.I.L.A.A.C.A.A.7.A.G.O.C.y.C.C.C.",
-"4 4 7 4 4 | 4 4 | 4 4 4 4 8 8 4 4 4 | e 4 , , , , ! | , , ! e ..B G +.n.|.+.G B p p : : : i B r a 5 g a < | | 4 | e v | a V ,.,.'.'./.$././.,.a./.'.).).a.).,.,.,.,./.,.'.'.,.).,.'.'.R n l / / > * ^ [ W T.&+{+3+3+e+k+k+p+p+p+r+p+v+s+s+s+s+r+t+t+v+B+v+v+y+v+B+t+y+w+w+y+y+y+s+v+r+r+e+3+:+#+R.~.L.R.c.L.I.7.R.I.I.7.J.J.C.A.A.A.y.C.C.C.A.y.C.A.G.J.G.G.I.v.J.I.J.L.J.A.J.J.J.J.L.J.y.v.A.A.G.C.G.A.A.A.A.A.",
-"4 4 4 | 4 4 4 1 4 4 8 4 ! 8 4 | 7 4 1 4 | , , , ! , , , | 4 s .K G I |.I O G G G G G p p B #.t a g 5 ( | | | 7 4 s e i y !.'.'.=.'.)./.$./.,.,.a./.$.).).(.)./././.a.,.!.'.'.'.Y w w l / / ; / ; # [ 3.$+{+c+c+k+p+p+p+r+r+r+p+p+s+p+r+s+t+y+B+v+v+x+x+y+x+y+y+x+y+B+t+y+y+y+t+y+v+v+v+r+k+e+:+:+.+c.I.L.c.L.L.L.I.I.I.L.L.C.A.A.A.I.A.A.A.C.C.G.C.A.A.J.J.J.J.J.I.J.L.L.J.J.A.J.J.J.I.A.A.G.C.J.L.C.J.A.L.C.A.",
-"4 7 7 4 4 4 4 4 4 4 4 8 4 4 4 | 7 7 b b 4 , , , , , , , , , I S ..G +.O p v S ......<. .S s.}.y g a } i | e e e e s 7 e y !.,.,.,.)./.)./././.).).a.,.!.!.,.,.,.).a.'.,.a.,.!.Y w d / # # # # # / ] W &+^+c+e+e+h+k+r+p+p+s+s+s+r+v+v+s+s+v+t+t+x+x+v+y+t+B+y+y+B+t+y+y+y+A+t+B+y+A+y+y+y+t+k+e+:+:+r.c.R.I.L.L.L.L.L.L.J.J.L.J.J.I.A.L.C.J.A.C.C.A.C.C.L.A.A.J.J.J.I.G.v.G.J.J.J.J.J.A.J.J.A.J.J.J.A.I.J.J.L.L.",
-"4 7 4 4 4 4 4 7 4 4 4 4 4 7 1 4 7 | 7 7 | , , , , , , , | ! I S ..<...p v B S ..<.n.}.<.n.s.K k a a : i e e e q 7 7 | j R a./.]./.,.@./.,./././.,.a.$.).!.!.,.a.).).!.'.R w l l ] ^ > # ~ ~ ^ ^ ^ u $+3+3+b+4+e+k+h+k+p+k+q+t+t+t+y+t+B+t+x+x+y+y+x+v+x+y+t+y+y+B+B+y+B+y+B+y+y+y+y+B+t+y+A+r+t+k+d+:+.+R.c.L.c.L.I.L.L.L.I.J.J.J.J.J.J.J.I.A.A.L.L.A.A.J.A.A.A.v.v.v.C.y.A.J.J.J.I.I.L.L.L.G.G.J.J.J.I.J.J.C.A.",
-"4 7 4 b 4 4 4 7 7 4 4 4 4 7 4 4 4 4 7 e | , , , , , , , , ! I 2.+.2.S p G S ....-+n.W.n.t. .j g a : i e s s s s q b i C ).)././.'./././.a.,.,.,./.).).).!.!.).).,.,.'.Y V n n ~ ~ ) g 0 g 0 y N W q.{+3+4+4+e+c+c+c+k+e+i+i+i+k+r+v+v+t+x+v+t+B+t+y+y+y+y+y+y+y+y+y+y+y+B+y+B+B+y+B+y+y+w+t+w+t+r+a+d+:+d.c.L.I.L.L.I.L.L.I.L.J.I.I.L.I.J.J.I.L.J.J.A.I.A.A.A.A.v.A.y.C.C.C.C.A.J.L.L.L.C.L.J.I.G.J.A.J.J.L.J.L.",
-"4 4 4 4 4 4 4 4 4 4 4 7 | 4 4 4 4 4 4 1 | , , , , , , , , ! I +.|.<...G +.+.<.}.-+n.M.n. .j 5 g ( 6 v s e s s s s 7 a V /./.)./.a.).).,.'./.a.,././.).).(.(.(.,.Y R w l g j r -...f.f.o.M.M.M.$+W.{+|+4+4+c+e+c+3+6+4+3+4+4+4+e+e+p+s+y+y+x+t+y+t+x+y+w+A+A+A+A+y+B+y+A+A+y+A+A+A+A+A+y+A+y+y+t+s+q+a+d+/+.+a.I.B.L.L.L.L.I.L.L.I.I.I.I.I.J.J.L.J.J.J.J.L.C.A.A.v.A.A.y.C.A.A.A.v.v.J.J.C.B.G.J.G.J.A.L.J.J.J.J.",
-"4 4 4 4 4 4 4 7 b 1 4 7 4 4 4 4 1 7 1 7 | - - , - , , , , , F O I 2...}.n.n.n.W.n.H.<.M k 6 } 6 | e e s v O I F s e y !.'.a.,.,.'.'./.a./././.a.a.).a.!.,.).,.R V C -.#.s.K.@+@+&+&+>+{+{+{+4+{+4+b+4+4+c+c+e+e+c+e+4+4+4+3+3+4+4+b+g+q+s+B+y+t+y+y+A+y+y+A+A+y+B+y+A+y+y+A+B+B+y+B+A+A+B+y+t+B+t+y+q+l+3+*+.+L.c.L.L.L.L.L.L.I.L.L.I.L.I.I.J.J.J.J.A.J.J.v.I.J.L.A.A.A.A.C.J.v.A.A.A.A.c.C.B.A.J.A.L.C.L.J.I.J.",
-"4 1 1 4 4 | 4 1 1 1 4 4 4 4 4 4 1 1 7 4 | , , , , , , - , , | e I O 2.<.n.n.n.M.n.<.O 6 a } ( | e s s I I O s I 7 i V ,.'.,.).).a.,././.].a./.a.a.g.,.(.(.:.V ^.f.Q.W.>+]+{+|+4+6+b+b+c+c+e+i+c+0+h+h+h+h+h+k+i+h+k+c+e+4+4+{+{+^+3+2+g+o+t+B+t+B+t+y+y+v+y+y+y+A+B+B+y+B+A+A+A+y+B+A+A+A+A+w+B+t+y+r+r+l+/+*+R.O.L.L.I.L.L.L.I.L.I.I.L.L.I.J.I.I.J.I.I.J.I.A.A.L.A.A.J.J.A.C.J.C.C.A.v.y.y.C.A.C.C.c.C.c.I.J.J.",
-"4 4 ! 4 4 7 7 4 2 2 4 1 4 | 7 4 4 b 1 4 | , - , , , , , , , , , e I +.|.n.|.n.<.G k | ( a < 4 v s s F F I I I s O y !.,.,.,./.,.,.,.'.a.a.a.a.[.g.(.6.^.i.q.Q. +$+{+3+4+c+b+e+c+h+i+i+k+k+p+k+q+k+k+i+h+p+p+m+q+k+p+k+c+e+e+3+3+]+{+3+3+b+k+q+B+y+y+B+B+B+B+B+y+B+y+A+B+A+A+B+B+B+A+A+A+y+y+y+w+B+t+t+B+r+k+:+.+R.B.L.L.L.C.L.L.I.J.L.I.J.L.L.L.I.I.I.J.J.J.A.J.A.A.A.A.J.L.A.C.C.A.J.J.A.A.A.C.J.C.J.C.A.C.C.A.",
-"4 4 1 4 4 4 4 4 1 2 1 2 2 4 4 4 b 4 1 1 | , , , , , , , , , ! , , e v I +.+.I G 6 : ( ( | , e s I G I I ` +.F s t R ).,.a.,.).).).a.a.a.a.[.[.1.u.N.T.Q.>+]+{+6+4+c+e+c+h+h+h+i+h+m+m+m+p+p+p+o+s+q+q+p+p+p+p+m+p+p+p+m+h+h+c+e+{+{+)+{+4+b+i+q+t+y+w+w+y+y+A+A+y+y+A+B+A+A+A+A+B+A+A+A+y+y+y+w+y+A+t+t+w+w+e+/+U.L.I.L.L.L.I.L.I.I.J.J.J.A.J.L.L.L.I.J.J.J.G.G.G.A.J.J.A.L.J.J.J.J.J.J.J.J.J.J.J.C.C.J.C.A.C.A.",
-"4 4 4 4 b 1 4 1 4 1 1 1 1 b 4 4 4 4 4 b 1 < - - , , , ! ! , , , , , e e e | | | , - - , | e s I I I ` F ` I s i y (.,.,.'.!.a.a.,.a.(.[.1.u.N.*+&+&+^+1+4+c+0+b+h+k+h+k+k+p+p+p+p+q+p+p+p+s+q+s+q+p+q+p+m+p+o+t+s+p+s+p+q+k+k+c+b+2+]+]+]+]+e+i+t+y+B+y+y+y+y+y+A+B+y+A+B+B+A+A+A+B+A+y+A+y+y+y+w+y+w+y+r+q+l+a+#+R.R.I.L.I.L.L.L.J.J.J.J.A.A.A.L.J.L.J.J.L.L.A.I.J.J.L.J.I.A.J.J.L.J.J.L.J.J.I.J.J.J.L.J.L.J.C.",
-"4 4 4 4 4 4 4 4 4 1 1 1 4 4 4 4 4 1 1 1 7 | - , , , , , , , , , , , , , , , , , - , - ( e e I I O ` |.` ` O e y R )./.a./.,.g.g.9.g.u.N.%+&+{+{+|+4+c+e+e+k+k+k+k+k+p+p+k+p+p+p+p+q+s+p+p+m+t+s+s+m+t+t+t+s+s+p+s+s+s+s+s+s+p+p+k+c+4+{+^+]+3+0+k+s+B+B+B+B+A+B+y+B+y+A+A+B+A+A+A+A+A+B+A+A+y+y+w+y+t+y+B+r+r+l+/+.+R.R.L.L.L.I.I.I.J.A.J.J.I.J.C.J.L.L.L.L.L.J.v.J.A.I.I.J.I.A.J.C.C.J.J.J.J.I.J.J.I.L.L.L.J.J.",
-"2 4 1 ! 1 4 4 4 7 ! 4 4 4 4 4 4 4 4 1 7 4 i - - , , , , , - - , - , , , , - , - , - | | e v I I ` +.` ` +.s a V (./.a.a.a.).[.x.i.M.*+{+^+4+4+c+c+k+e+h+h+i+p+p+m+p+p+p+m+p+o+t+q+m+p+s+s+s+m+t+o+s+s+s+s+v+s+t+t+t+t+s+s+s+v+q+p+k+e+e+3+^+^+2+i+k+s+y+y+y+y+y+B+y+B+B+A+A+B+y+B+y+x+y+y+y+y+B+y+y+A+t+t+t+t+r+d+:+.+R.L.I.L.L.I.J.C.A.A.J.A.I.J.J.C.C.G.G.L.C.L.L.C.L.J.I.J.C.J.J.J.A.J.J.I.I.I.L.L.R.L.J.I.J.",
-"4 4 4 1 1 1 1 ! | 4 2 4 1 4 4 1 1 4 1 b 7 | - - , , , , , , , - , - , - , - , - , : i v v I I ` ` ` ` ` O r y !.).a./.a.a.1.u.%+]+^+3+e+e+c+h+k+h+h+k+p+q+h+q+p+p+p+p+p+q+s+o+s+s+t+s+o+t+s+x+s+s+m+y+t+t+s+x+x+s+x+t+s+s+s+s+t+t+p+p+e+e+4+4+4+6+e+q+t+B+y+A+y+B+y+y+y+A+A+A+A+A+A+y+B+y+y+w+y+w+t+B+y+t+t+t+q+l+/+.+R.R.L.R.I.L.I.C.G.A.L.C.A.J.J.L.C.G.A.J.C.J.A.A.I.J.J.C.C.L.J.I.I.J.L.L.L.L.L.L.L.L.I.I.J.",
-"1 1 1 4 4 1 1 1 1 4 4 2 4 4 4 4 4 1 8 1 b | - @ - , , - , , , , , , , - - : - : | i B I O I +.I ` ` ` I O y V (.[.).[.[.e.X.]+{+3+e+4+h+k+h+k+p+k+p+m+o+o+q+p+q+q+s+p+s+m+v+s+t+t+s+s+t+s+v+s+s+s+t+s+y+s+x+s+s+t+t+s+t+t+t+s+v+s+v+p+p+h+e+3+4+4+0+i+q+y+A+B+A+y+y+A+A+B+A+B+y+y+B+y+y+B+v+y+w+y+B+t+t+A+t+t+r+r+d+:+.+L.L.L.L.L.L.L.G.L.L.J.J.A.J.L.L.L.G.G.J.J.A.A.A.A.J.A.L.L.L.L.J.J.L.L.I.L.I.L.L.L.L.J.J.",
-"8 1 ! 1 1 4 4 1 1 1 4 1 ! 4 4 7 8 1 b 2 b 7 < - - - , , - , , - - , - : : } 6 6 e G I G ` I ` ` ` ` ` I p V 9.g.[.a.[.e.Q.>+^+4+4+c+c+c+c+h+k+h+p+q+p+p+q+p+m+m+r+s+p+s+m+s+m+v+s+s+s+s+y+m+x+t+s+x+s+y+t+x+y+s+x+y+x+x+x+y+s+s+s+s+s+p+p+h+c+4+^+4+6+i+t+y+y+A+A+y+y+A+B+y+y+B+A+B+A+y+A+t+B+t+w+y+B+v+B+w+t+w+q+d+/+.+R.R.R.L.L.L.L.L.L.L.L.J.A.J.L.G.J.J.C.L.C.J.C.A.L.A.A.J.L.L.J.I.I.J.J.J.L.I.L.I.L.L.C.A.",
-"4 ! 1 ! 1 1 1 8 1 1 4 4 b b 4 8 1 4 8 b 4 e , - @ - - , : , , : : - - 6 B B B B I G I G ` G I F F F ` G W :.!.[.(.(.:.f.]+^+7+6+6+0+4+0+6+6+0+h+o+m+q+o+s+o+t+s+s+p+s+s+t+s+v+s+s+s+s+t+s+t+s+x+y+t+y+s+x+t+y+y+y+s+y+t+t+s+y+t+t+t+s+v+p+p+k+c+3+4+4+e+k+t+B+y+A+B+y+y+y+y+B+A+y+A+y+A+w+B+w+B+x+v+t+t+t+v+t+r+r+l+d+:+.+L.L.L.O.J.J.L.J.L.J.L.J.J.J.L.L.C.J.A.C.C.A.L.A.J.J.L.L.L.L.I.L.I.I.L.L.L.L.C.C.J.J.A.",
-"1 8 2 2 2 2 1 1 4 b 7 7 7 b 4 7 1 4 4 7 4 7 | - = - - 6 5 { : : 6 6 6 B B G O O +.` I +.G ` +.I ` F I G >.!.!.(.Y T W &+<+^+^+4+4+|+|+^+|+|+|+6+b+i+p+m+s+m+p+m+s+s+r+s+t+t+o+t+t+x+s+y+x+y+s+s+x+s+y+y+y+t+y+m+x+x+x+x+y+s+x+y+s+o+t+s+r+p+k+h+e+3+|+4+e+o+t+B+y+A+y+y+B+y+y+y+y+A+y+y+w+s+t+A+y+B+x+y+v+t+B+w+r+r+d+/+.+L.R.L.L.I.I.L.L.O.J.L.J.J.J.J.J.J.C.J.A.A.A.G.A.J.J.J.L.L.L.J.L.L.J.L.I.L.L.L.L.J.J.I.",
-"4 1 ! 4 4 1 1 4 4 e b b b 4 7 7 7 7 7 1 b b 8 | | - 6 B u K p p p p G ..S +.+.+.+.<.|.2.2.+.|.` ` |.` #.0.:.(.R C g p.'+)+)+4+^+^+^+)+)+'+'+!+[+[+8+g+q+t+s+v+s+s+s+s+s+s+x+s+x+x+v+x+s+t+s+y+x+y+y+x+m+y+x+x+y+y+y+y+x+y+y+y+x+y+x+s+v+s+s+p+p+c+c+4+^+6+e+q+q+B+B+A+t+B+B+y+A+w+y+y+y+t+B+B+t+t+t+t+v+t+v+t+t+t+r+l+d+.+.+I.L.L.I.J.J.L.L.L.J.L.L.L.L.L.L.J.J.J.G.G.A.J.C.I.J.L.C.J.L.A.C.C.A.I.A.L.C.G.A.I.J.",
-"! 4 8 4 ! 1 4 4 b | 7 4 e 7 7 7 7 1 7 4 b b b e s i v G K N M .+...2.k.n.n.n.H.F.n.-+W.-+H.W.F.F.W.n.M.o.q.f.i.e... +^+)+)+)+)+)+~+,+>+>+>+>+>+~+[+5+f+o+m+t+s+s+s+s+t+t+s+t+s+x+t+y+y+y+t+y+s+t+y+y+y+y+y+x+x+y+y+y+s+x+y+s+x+t+y+s+x+s+s+m+p+h+e+4+4+|+4+i+o+t+B+B+w+t+y+y+y+y+t+t+y+y+t+v+B+w+v+y+v+v+t+r+t+r+w+d+d+.+R.L.R.L.I.I.J.J.L.G.L.L.L.L.L.J.J.I.J.J.L.J.J.J.L.J.J.L.L.J.C.A.C.A.J.C.C.L.C.D.A.J.J.",
-"4 ! 4 4 4 4 4 7 7 7 4 e 4 4 1 4 7 e 7 e e 7 q s v G I +.}.}.n.H.n.H.-+>+-+-+-+)+-+-+-+)+)+^+)+^+'+-+)+>+>+Q.$+W.W.@+_+}+^+)+{+{+>+&+ +>+`.$+ + +>+ +~+|+b+o+s+t+t+s+t+s+s+y+s+x+o+y+y+t+y+x+s+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+y+y+y+s+y+s+s+s+s+p+q+m+e+4+^+|+b+e+t+t+y+y+y+y+y+w+w+y+y+y+t+x+y+y+v+y+v+v+B+u+t+t+t+r+q+l+:+.+R.L.R.L.L.J.J.L.L.G.J.J.L.L.L.L.I.J.J.J.I.L.I.L.L.L.L.O.O.C.L.A.A.J.A.C.G.D.A.G.L.L.",
-"1 1 4 1 4 7 4 7 ! b b 7 7 8 1 b 1 b 4 7 e s s I |.2.|.W.W.>+>+-+)+-+)+^+^+4+4+^+6+|+0+6+|+0+|+6+6+|+4+^+4+)+4+)+)+4+4+2+4+^+)+{+)+{+ + + + + +W. + +@+!+^+0+h+p+t+s+x+x+s+t+y+s+x+s+x+y+t+y+y+o+x+y+y+y+y+y+y+x+y+x+y+x+y+x+y+y+y+y+y+v+x+t+x+s+q+m+k+c+4+4+4+c+k+t+B+t+t+y+x+t+w+y+t+y+y+v+s+y+t+t+v+v+s+v+t+r+r+r+r+l+/+.+O.L.L.J.J.J.J.J.L.L.J.J.J.J.L.L.L.J.L.L.I.I.L.L.L.O.L.L.O.L.L.O.J.A.A.L.G.G.G.J.L.L.",
-"4 4 4 2 2 4 7 4 1 4 7 4 4 4 7 8 7 7 e s s +.|.n.n.W.-+-+)+-+^+|+|+|+0+|+6+6+4+0+6+^+6+6+6+6+0+0+0+6+6+c+b+6+4+c+4+4+6+6+4+4+4+4+^+)+]+$+ + +Q. +Q.Q.W.W.-+^+c+m+m+s+s+s+x+s+s+y+t+x+s+s+y+y+y+y+y+o+y+o+y+y+x+y+x+x+x+y+x+y+x+x+y+y+x+x+y+x+s+p+s+p+m+k+4+|+^+4+c+p+t+A+t+B+t+x+x+v+x+v+v+s+t+s+w+B+t+t+B+r+w+w+t+r+w+l+d+.+R.O.L.O.L.J.J.L.J.J.O.I.I.J.L.L.L.L.L.I.R.L.L.L.L.L.L.L.L.O.O.O.O.L.L.B.C.C.C.C.C.G.",
-"7 4 4 4 4 4 7 4 4 4 b 4 b 1 7 e e s F ` |.F.V.-+-+)+-+^+[+[+[+|+6+0+|+6+6+6+0+|+0+6+0+c+4+c+4+0+0+0+8+0+c+c+0+0+0+8+b+b+c+c+4+c+4+4+^+{+{+&+ +$+Q.W.W.K.@+`.)+4+h+s+s+t+y+y+s+x+y+y+x+x+s+x+y+y+y+y+y+y+x+y+x+y+y+y+y+y+y+y+y+y+y+y+y+s+t+s+s+p+t+s+p+h+c+4+}+}+4+k+v+B+t+v+B+t+y+v+x+t+t+v+t+v+t+t+t+t+t+v+r+r+t+r+r+l+a+/+R.L.L.L.L.L.L.L.O.L.O.O.L.I.O.O.L.L.L.L.L.L.R.I.I.L.L.O.L.L.L.O.L.L.J.L.L.C.L.L.L.C.",
-"| 7 4 4 7 4 | e 4 4 4 1 1 7 e s I ` n.F.`.-+'+!+^+|+[+[+[+|+6+6+|+6+6+0+4+6+6+0+6+0+4+6+0+0+c+c+c+c+0+0+c+c+c+c+c+h+h+0+c+c+k+k+c+c+e+6+3+^+{+>+$+$+T.Q.Q.W. +^+6+f+t+x+y+t+y+t+s+s+y+y+y+y+x+y+y+y+y+y+y+y+y+y+y+y+y+y+x+y+y+y+s+y+y+y+x+t+t+s+s+p+p+k+c+6+4+2+^+c+k+t+v+y+t+B+s+t+B+v+v+v+v+t+v+B+r+r+r+w+s+t+r+r+r+l+a+/+.+O.L.L.L.J.J.L.L.O.L.L.L.L.L.L.L.J.L.L.L.I.L.L.L.I.L.L.L.R.O.O.L.J.I.J.L.L.J.L.J.J.",
-"4 4 2 4 4 e e v 7 4 4 e 7 s O +.p.F.`.-+~+_+^+(+[+|+6+4+6+4+6+4+6+6+6+0+6+0+8+0+5+0+c+0+0+0+0+0+h+h+i+h+i+i+f+i+c+c+k+h+c+f+h+k+c+h+c+0+e+e+{+{+{+$+$+ +T.Q.W.W.'+5+f+s+y+t+y+y+y+y+t+y+s+y+y+x+x+x+y+A+x+y+y+y+y+B+y+B+y+x+x+y+y+s+s+y+x+x+t+s+s+o+m+p+k+c+4+2+^+4+e+t+v+v+x+t+y+t+t+v+x+y+s+s+t+t+t+y+r+r+l+t+q+r+r+l+a+/+R.O.O.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.R.I.R.L.L.L.L.L.L.R.I.R.L.J.J.L.L.L.L.O.L.L.L.I.",
-"4 1 1 1 4 7 s e b b e s O 2.l.F.`.-+'+~+}+(+|+|+|+6+|+6+4+0+4+5+5+0+0+7+0+c+0+8+c+g+f+i+c+i+h+h+h+c+h+h+h+h+h+f+h+h+f+c+h+c+f+h+h+h+i+k+h+k+h+4+4+^+{+&+ +H.Q.Q. +^+8+f+y+y+x+v+x+s+x+y+y+x+y+y+y+y+x+B+y+B+x+B+y+y+y+y+B+y+y+y+y+y+y+t+y+v+x+x+t+s+q+p+h+k+c+|+^+)+c+k+s+y+v+B+r+t+y+t+v+v+t+r+t+t+t+q+t+t+q+w+l+w+r+r+d+/+U.O.L.L.L.L.L.I.R.L.L.L.L.I.L.I.I.L.L.R.L.I.R.L.L.L.L.L.O.L.L.L.J.J.L.L.R.L.L.L.L.L.",
-"4 ! ! 4 4 e s 7 7 q ` 2.n.K.;+-+,+'+^+(+^+}+|+|+|+5+6+6+4+0+4+0+5+8+0+8+8+0+f+0+0+0+0+f+8+c+k+k+h+c+e+h+h+i+h+i+h+h+f+h+h+h+f+i+f+k+h+h+h+k+c+h+4+4+3+{+{+&+Q.Q.W.=+[+0+m+y+y+t+y+y+s+y+y+y+y+x+x+y+B+x+B+y+y+B+B+x+B+y+y+y+y+y+y+y+y+t+y+s+s+x+y+m+t+p+m+m+k+e+4+)+4+e+r+v+s+t+y+v+s+r+r+v+v+v+q+t+t+q+t+r+r+v+r+l+l+l+a+/+R.L.L.L.J.L.L.J.L.L.L.L.L.L.L.L.I.R.L.R.L.L.L.L.L.L.L.L.R.O.L.O.L.I.L.L.L.L.L.L.L.L.",
-"| 4 4 4 | e e | I 2.n.F.`.,+~+<+)+^+(+^+[+|+|+6+5+6+6+4+0+6+8+8+8+8+8+8+0+c+c+c+i+i+i+c+i+i+f+0+i+h+h+i+i+i+i+i+i+f+h+c+h+k+p+i+h+m+m+h+h+p+k+h+e+h+4+6+{+)+$+ + +>+^+7+i+p+x+v+y+x+x+x+y+y+x+y+B+x+B+y+x+B+x+y+y+y+y+y+y+y+y+y+x+y+x+x+s+x+y+s+s+t+m+q+q+q+h+h+4+4+^+3+h+r+t+x+v+q+B+t+t+t+t+q+q+w+r+r+r+t+q+r+q+w+r+l+l+:+U.L.L.O.O.O.O.L.O.L.L.L.L.I.L.L.L.I.L.L.L.R.L.L.L.L.I.R.L.L.R.L.R.L.L.L.L.L.L.O.O.L.",
-"| ! 4 ! | | 7 s 2.H. +$+'+'+^+_+_+^+^+^+|+|+|+|+[+6+6+4+b+6+8+c+8+8+8+b+8+c+h+c+c+c+f+h+h+h+k+h+i+i+i+i+f+i+h+k+k+i+h+h+f+f+p+k+h+h+p+k+h+k+p+c+h+k+h+8+e+4+{+{+{+>+'+[+0+m+y+x+y+y+y+y+y+y+x+y+y+x+y+x+B+y+y+B+y+y+y+y+y+y+y+y+s+y+y+y+t+s+t+s+s+t+s+s+p+q+k+k+c+^+)+{+c+r+u+t+t+t+s+t+t+q+t+w+q+q+t+t+r+r+q+r+r+l+l+l+a+/+U.O.L.L.L.L.O.J.L.L.L.L.L.L.L.R.L.L.L.L.I.L.L.I.L.L.L.O.R.L.R.L.R.L.L.I..+I.R.O.O.L.",
-"4 1 | 4 4 7 q ` F.`. +,+>+)+^+^+|+}+}+|+4+4+|+4+6+6+6+8+6+b+b+8+0+0+c+0+0+f+c+i+c+h+c+h+c+k+h+h+k+h+o+i+m+f+n+h+h+k+h+o+m+m+h+m+f+k+p+m+m+f+p+h+p+h+k+e+c+e+4+3+^+^+)+^+|+c+m+t+y+x+y+y+y+y+y+y+B+y+x+y+x+B+x+y+y+y+y+y+y+x+x+y+y+x+t+y+v+x+x+t+y+s+s+o+p+p+p+h+e+e+4+)+4+c+t+s+v+t+q+w+q+t+q+q+q+r+r+r+q+w+r+l+w+l+l+l+l+/+U.R.O.R.L.O.G.L.J.L.L.I.L.L.L.L.L.L.L.L.L.L.J.L.L.L.L.L.L.L.I.R.I..+I.I.I.R.L.L.L.L.",
-"1 1 4 4 ! 7 I l.W. + +`.>+'+!+^+|+|+4+|+4+4+6+4+6+6+6+c+6+8+8+8+8+c+c+c+c+i+c+i+c+k+k+k+h+h+k+h+i+h+h+i+f+f+f+h+h+k+h+p+p+p+o+o+m+m+h+f+m+p+k+p+k+h+h+h+c+c+6+4+3+4+4+4+^+5+f+m+y+y+t+x+y+y+y+x+x+y+B+y+B+y+y+y+y+y+y+y+y+y+y+x+y+x+s+x+t+y+s+s+s+o+s+t+p+p+p+h+h+e+^+)+^+e+r+t+v+r+p+q+q+r+p+q+q+q+q+r+r+l+r+r+l+r+l+l+a+/+z.O.O.D.G.L.G.G.A.J.L.J.I.L.R.L.R.I.O.L.J.L.J.I.G.G.L.L.R.L.R.L.I.L.L..+I.L.L.I.L.L.",
-"4 ! 2 1 4 e _.H.W.W.`. +`.`.-+!+'+[+[+|+6+|+4+4+|+6+6+6+c+0+8+9+b+8+0+c+f+c+h+c+h+h+h+h+h+k+h+h+h+i+i+i+m+m+i+p+i+h+p+k+p+m+p+p+o+o+o+o+o+m+m+p+m+p+p+k+k+k+c+c+c+4+4+4+^+^+5+i+s+x+x+y+x+x+x+y+y+x+y+y+y+B+y+y+y+y+y+y+y+y+s+y+t+y+y+y+s+s+y+s+t+s+t+m+q+p+p+k+e+h+e+{+{+3+b+q+t+t+q+w+r+t+r+w+l+w+r+q+q+r+l+l+r+l+r+a+a+/+z.O.O.G.B.G.A.A.A.A.L.L.L.L.L.O.L.L.J.L.O.L.J.J.J.J.L.J.J.O.L.R.L.I.I.L.L.R.R.L.O.L.",
-"4 ! 2 4 1 s |.H.H.W.W.W.W. +W.=+,+_+}+|+4+4+6+4+6+6+6+6+6+4+8+8+c+c+8+8+c+f+i+i+f+h+h+i+h+k+i+i+f+m+h+i+h+m+f+k+i+i+m+h+k+m+m+m+m+q+m+m+p+p+p+p+p+m+p+h+h+k+k+c+c+4+c+{+4+^+|+5+f+y+x+y+y+y+x+x+y+x+x+y+y+x+y+x+B+y+y+y+y+y+y+x+y+s+s+y+s+s+t+x+t+s+t+m+s+p+m+p+k+c+c+4+)+^+e+l+t+t+p+w+p+q+r+q+q+l+l+l+l+r+r+l+l+l+l+a+a+Y.z.G.G.G.D.G.G.C.A.A.C.J.A.J.L.L.L.L.L.L.L.L.L.J.L.J.L.L.J.O.O.L.L.R.L.L.L.L.L.L.R.L.",
-"! 4 ! 4 4 q |.H.H.Q.H.W.V.F.V.W.Z.=+!+}+6+6+4+c+4+c+6+0+8+0+8+8+0+8+f+c+f+c+f+h+c+h+k+k+i+h+k+m+h+i+o+i+o+k+p+f+h+m+m+p+m+k+p+p+p+m+p+p+m+m+m+p+p+p+m+p+p+p+h+c+c+h+e+c+4+4+^+6+g+o+t+y+t+y+y+x+y+y+y+x+y+y+y+y+y+y+x+y+y+y+t+y+x+v+x+x+t+y+x+m+s+s+s+t+q+q+p+p+k+c+4+4+)+{+3+k+q+r+q+p+q+q+q+n+q+q+r+l+q+l+l+l+k+k+a+a+/+U.O.O.O.G.G.C.C.y.D.C.C.C.A.L.B.O.O.O.O.O.L.L.L.L.L.O.L.O.L.L.O.O.L.R.L.R.O.O.O.L.L.O.",
-"! 4 4 4 1 F l.H.H.H.H.H.H.Q.H.H.F.V.=+!+^+4+4+c+4+c+|+6+6+0+8+8+c+8+c+c+c+h+c+k+h+f+f+h+h+h+i+i+f+h+m+h+h+h+m+m+h+p+p+p+m+m+m+o+p+q+p+q+p+p+m+m+p+p+p+h+h+k+p+k+e+0+c+4+4+|+^+[+5+f+m+x+x+y+y+x+x+y+y+y+y+x+B+s+x+y+y+t+o+y+y+t+y+y+v+x+s+s+v+s+o+t+o+o+s+q+m+m+k+h+4+4+<+)+{+e+m+t+q+q+q+q+r+l+w+k+k+l+q+q+l+l+l+k+a+a+/+z.O.G.O.L.L.A.C.A.G.C.O.B.L.A.C.B.B.O.L.L.L.O.L.L.L.O.O.O.O.O.O.L.L.L.L.R.L.O.O.L.O.O.",
-"4 ! 4 2 9 I 2.n.t.H.H.t.H.H.n.H.H.F.V.Z.!+^+4+4+c+8+c+6+8+8+0+c+0+c+c+c+g+8+h+f+c+h+h+f+f+f+h+f+h+o+i+f+m+m+k+i+q+k+m+m+m+o+k+m+p+p+p+m+q+p+p+p+p+p+k+p+k+h+h+h+h+e+h+c+4+4+4+4+|+8+o+t+y+y+y+y+y+y+y+y+y+t+y+y+y+x+x+x+x+y+t+x+s+s+s+s+s+t+y+t+t+s+s+s+o+m+p+k+p+e+c+4+{+{+{+4+l+q+r+r+q+q+l+l+l+w+l+k+l+l+k+l+l+e+g+1+Y.R.O.O.O.O.L.L.L.L.J.L.J.G.C.L.C.A.G.C.C.C.D.O.O.D.O.O.O.O.D.O.G.L.J.L.L.O.O.L.L.L.L.O.",
-"4 4 ! 2 2 F 2.n.p.n.t.t.n.Q.n.n.n.p.p.V.Z.!+^+|+4+4+c+4+c+6+8+c+0+0+g+c+i+c+c+c+h+c+i+i+h+o+h+o+f+f+o+o+i+m+m+m+m+k+o+q+m+o+p+m+p+p+p+m+o+p+p+p+m+m+h+m+p+p+p+k+k+h+e+c+4+4+4+4+^+|+f+m+s+y+y+t+y+w+y+s+y+t+y+s+y+t+y+y+s+y+o+y+t+y+s+x+s+s+s+s+y+o+o+s+t+o+m+o+m+k+e+4+]+{+$+3+e+q+q+r+q+q+n+q+k+k+n+l+l+l+k+a+l+a+a+a+U.R.L.L.O.O.L.L.L.L.J.G.L.L.C.L.L.G.G.D.y.y.y.D.B.O.O.O.D.O.D.R.D.D.G.J.L.O.O.L.O.O.O.O.",
-"! 4 ! ! 9 I 2.t.p.t.p.t.t.n.t.t.H.p.p.l.E.V.!+^+6+8+4+c+b+6+c+b+8+8+0+f+g+c+h+h+c+f+h+k+k+f+o+i+h+o+f+f+o+f+o+f+m+m+p+m+p+m+o+p+m+p+p+q+p+p+p+p+p+m+q+p+p+h+p+p+m+k+4+c+c+c+4+6+6+|+5+8+o+n+y+y+s+x+s+x+s+t+s+y+t+y+s+t+y+m+t+y+x+s+s+s+y+s+t+y+m+t+t+o+p+p+p+h+k+k+h+b+4+{+>+{+3+l+q+k+r+k+r+l+k+l+l+l+e+e+e+k+a+a+a+/+U.G.O.G.G.L.O.L.L.L.J.J.L.L.G.A.L.O.O.B.C.C.G.O.D.B.O.O.G.O.O.R.L.L.O.O.O.O.G.L.L.O.O.O.",
-"! ! 1 ! 8 q 2.2.w.t.s.t.t.n.t.n.n.p.p.p.n.n.Z.=+^+6+4+0+e+8+0+c+b+8+8+0+f+f+c+i+h+h+h+h+h+c+f+i+f+m+m+f+m+f+o+k+p+m+k+h+o+o+o+p+o+o+m+m+s+p+p+p+p+p+o+p+p+p+m+p+p+p+e+c+c+c+c+4+6+6+5+8+f+y+s+y+y+y+t+x+s+B+t+y+s+y+x+x+y+y+s+o+x+t+t+s+s+s+m+t+s+s+t+q+q+q+q+m+h+k+c+4+3+{+$+{+3+e+q+k+k+k+k+k+k+l+k+k+k+l+e+e+e+a+a+Y.R.O.O.O.D.G.L.O.L.L.L.G.G.J.G.G.L.O.L.L.A.A.G.O.D.D.G.B.O.D.R.O.D.L.O.O.O.G.O.O.R.R.O.O.",
-"! ! ! 8 8 s 2.<.n.2.t.<.<.t.<.t.<.n.w.n.n.n.l.F.=+!+6+b+c+4+b+8+8+8+8+b+c+c+g+i+c+k+i+f+i+i+h+o+m+i+i+m+o+m+o+m+o+p+m+q+p+p+m+m+p+s+s+q+m+o+p+p+s+o+s+m+p+m+q+p+h+p+h+e+c+c+b+8+b+|+|+5+0+m+s+x+s+y+B+t+v+t+x+s+x+s+y+t+m+s+t+y+o+s+s+t+t+s+t+s+s+o+o+o+o+m+m+k+p+h+i+b+4+2+&+%+{+e+r+q+k+k+r+k+k+l+e+a+e+a+a+a+a+a+/+U.O.O.O.D.O.L.G.L.G.G.G.J.L.J.J.J.L.O.O.O.O.O.O.B.O.G.O.G.O.R.O.O.O.D.O.O.O.G.L.O.L.L.R.R.",
-"! < , 8 ! s +.<.<.2.t.t.<.p.<.n.<.n.<.p.2.n.l.p.S.;+(+|+c+c+b+8+8+g+8+b+0+0+f+i+c+k+h+f+f+i+h+i+o+o+i+i+i+f+f+f+f+m+m+m+m+p+q+m+m+m+m+p+p+s+p+p+p+o+q+s+p+m+o+q+o+p+m+k+i+c+c+c+c+4+4+|+6+f+o+y+t+y+v+y+x+x+x+t+x+s+s+v+s+s+m+t+y+o+s+s+s+s+q+s+s+s+t+t+q+k+m+i+k+k+e+b+e+^+%+*+*+d+e+r+k+k+e+d+k+b+e+a+e+e+3+e+d+a+Y.R.G.G.O.D.O.L.G.G.B.L.L.G.L.L.G.L.O.O.L.L.G.O.G.O.O.G.G.G.O.O.D.D.D.O.G.O.O.G.L.O.O.L.O.R.",
-"! , | ! ! 8 ` 2.n.<.<.<.p.2.p.<.2.<.n.2.2.2.2.l.l.S.=+(+6+0+c+0+c+8+8+8+g+c+c+c+h+0+c+c+h+h+k+i+f+h+i+m+f+o+o+o+q+q+p+p+p+o+m+p+p+p+p+p+p+p+m+m+s+o+o+p+p+p+m+m+p+p+r+h+h+k+e+c+e+c+4+|+6+0+f+o+y+t+y+s+y+t+t+x+t+s+t+y+s+s+s+y+o+t+t+s+r+t+s+s+r+q+m+m+p+m+q+q+i+i+i+c+b+3+{+X.*+3+k+k+k+k+k+k+e+e+e+e+3+a+3+3+a+/+U.O.O.O.G.D.G.D.J.G.G.O.O.L.L.L.L.G.O.G.L.O.O.L.L.G.G.L.L.L.G.O.R.D.O.G.O.O.O.L.L.O.O.O.O.R.",
-", , < ! ! 8 I +.<.<.t.<.<.<.2.t.m.<.<.t.t.<.m.2.n.k.S.=+}+6+b+8+c+c+0+8+8+g+f+0+h+f+f+c+i+f+h+h+f+o+i+o+m+f+m+m+i+o+m+m+p+p+p+p+q+o+o+s+s+p+q+o+q+o+o+o+s+p+p+o+p+m+p+p+h+h+c+c+e+c+c+|+}+6+0+o+x+x+y+s+x+v+t+x+t+x+s+t+y+t+m+s+t+o+t+t+s+s+q+s+s+t+q+o+q+m+i+p+k+k+k+c+e+3+{+*+*+:+e+g+l+l+l+l+e+a+3+a+e+a+3+/+a+Y.R.L.G.C.L.D.L.O.B.O.D.D.L.L.L.L.L.G.O.O.G.O.O.L.L.O.G.G.L.L.O.O.R.D.D.O.O.O.O.L.L.O.O.O.R.R.",
-", < , ! ! 8 I +.<.<.<.<.2.2.<.2.2.<.<.}.<.2.}.}.<.p.l.S.=+[+5+b+8+0+b+c+0+0+8+i+c+c+c+i+i+h+i+i+i+f+o+h+i+h+o+o+m+m+k+q+p+p+m+o+m+s+p+p+m+p+p+s+m+s+m+p+p+p+o+p+k+p+p+k+p+k+k+h+h+4+c+4+4+|+8+f+o+s+x+t+s+x+s+t+s+t+t+s+o+s+t+t+x+o+s+s+p+q+s+s+o+q+p+p+p+k+k+k+i+i+c+l+c+3+]+X.*+%+a+l+c+e+b+e+e+3+e+3+3+3+3+]+/+U.R.L.C.L.O.O.O.C.G.D.B.C.G.G.G.G.G.O.O.G.O.L.G.O.O.L.O.O.G.O.O.L.L.O.G.O.O.O.O.L.O.O.L.L.R.R.",
-"- , - , , , s ..<.}.}.<.<.2.<.<.2.<.<.}.}.}.}.<.<.2.p.k.V.!+[+8+j+f+b+b+8+0+8+8+f+i+c+f+i+i+h+k+h+f+f+f+o+f+i+k+o+m+m+m+m+p+p+t+m+p+p+p+p+p+p+p+p+s+m+m+p+p+o+m+q+k+m+m+m+k+k+c+h+c+c+6+4+4+|+0+i+p+x+y+t+x+s+y+s+s+t+s+t+s+s+o+s+t+m+t+s+o+m+t+o+t+q+o+o+o+o+k+k+k+c+b+b+3+{+*+*+*+a+l+b+l+b+2+e+a+3+3+/+a+/+/+Y.D.O.G.G.O.O.O.O.G.C.G.D.D.G.B.D.C.C.O.O.G.G.O.G.G.O.O.O.O.O.O.L.L.L.O.O.O.O.R.R.L.L.O.O.L.R.R.",
-"- - , - - < e +...<...<.<.<.<.<.}.2.<.<.}.}.}.}.}.}.2.2.l.S.!+[+6+b+b+8+0+b+8+8+0+c+i+c+i+h+h+f+h+h+o+o+f+o+m+o+k+p+m+p+p+m+m+m+p+m+m+o+s+m+o+p+m+p+s+p+p+s+p+p+p+m+p+k+p+m+h+k+k+c+b+c+4+4+4+|+c+o+o+s+x+t+y+s+t+t+s+y+o+t+o+m+s+m+t+s+o+s+s+s+q+o+o+q+l+o+l+k+k+i+k+b+b+b+]+%+*+*+d+e+e+a+a+e+2+3+a+3+3+/+/+Y.U.z.B.O.B.L.L.G.G.L.J.L.G.B.C.D.y.L.C.G.C.B.B.y.G.O.D.D.O.G.O.R.O.L.L.O.O.O.O.L.L.L.L.L.O.R.O.O.",
-"- - - - - < | O +.+.<.....<...<...<.+.<.<.}.}. .}.}.2.2.p.l.S.!+[+0+c+b+8+0+c+b+0+f+g+c+i+c+h+h+f+i+h+m+f+o+f+m+o+k+p+p+m+m+m+o+s+p+s+o+s+p+o+o+o+p+o+m+m+m+p+m+p+p+m+m+h+p+h+h+e+h+c+c+4+4+4+|+6+h+q+v+v+s+o+x+t+t+s+o+y+o+t+p+s+p+q+p+q+q+o+m+s+q+o+o+q+o+o+i+e+c+l+b+b+4+3+*+*+*+3+d+e+e+3+3+3+3+3+/+]+/+X.z.D.D.O.G.C.L.O.L.J.J.J.C.J.G.J.G.G.O.B.L.L.G.B.G.G.O.O.D.G.G.G.R.G.O.O.O.O.L.L.R.R.L.L.L.L.L.O.O.",
-"- - - - - , < s +.+.+.+.....<.....+.}. ...<. .<.}...<.<.<.l.p.Z.!+|+b+g+c+8+8+0+g+8+g+i+f+i+i+i+h+f+i+i+m+i+h+o+h+m+m+h+p+p+q+p+p+m+o+p+m+t+o+o+q+m+p+p+p+p+o+p+p+p+p+p+m+h+k+i+h+c+e+b+c+0+4+4+4+6+f+o+t+v+s+o+s+s+s+t+o+t+s+o+s+o+o+q+s+p+s+p+o+m+q+p+o+o+k+k+k+k+c+b+2+b+]+%+*+*+:+e+3+e+a+3+3+]+a+]+/+Y.U.z.R.O.G.L.C.G.L.R.O.G.G.L.L.O.O.C.L.O.O.O.O.O.A.G.L.J.D.O.G.O.D.O.O.O.O.R.O.L.L.L.L.L.O.O.O.O.O.L.",
-"- - - - @ - < e O -.+.f.+.+.....<.+.<. ...+.....2...<...}.2._.p.;+!+|+9+j+0+g+0+f+0+8+b+g+8+g+k+k+h+i+i+i+o+h+o+i+k+p+p+o+m+p+m+p+m+o+t+m+o+o+o+t+p+q+m+o+m+q+o+o+m+m+k+o+m+p+i+i+h+c+0+4+4+4+6+^+|+0+m+t+t+s+t+o+t+s+t+o+t+p+q+v+s+o+p+s+p+q+p+p+o+q+p+p+o+o+i+b+b+c+b+2+a+3+*+*+*+{+e+d+3+3+3+3+/+]+/+Y.U.z.z.D.G.G.L.C.O.L.O.G.G.J.G.C.L.L.O.O.O.D.O.O.O.D.L.L.O.O.D.D.O.D.O.D.D.G.O.O.R.O.L.O.O.O.O.O.O.R.R.",
-"- @ - = @ - , i s +.O -.........+.+. .<......... .......<...2.4.k.Z.!+[+0+g+c+c+b+8+g+0+0+i+c+c+h+k+h+h+f+i+o+h+p+m+o+h+p+p+m+m+o+s+m+m+m+m+m+m+o+o+m+q+p+q+m+o+m+k+p+m+m+f+i+f+k+k+c+b+c+0+4+4+|+4+4+f+m+s+t+s+t+s+t+o+s+m+q+s+p+q+p+q+q+q+m+p+q+p+m+k+k+k+k+i+f+l+e+b+b+4+]+%+N.*+:+3+3+3+a+]+]+]+/+X.U.z.D.D.O.C.L.O.O.L.O.G.O.O.O.O.O.L.O.O.O.O.O.O.O.G.L.L.O.O.D.O.G.G.O.O.O.O.O.O.O.O.O.L.L.O.O.O.O.O.R.O.",
-"- @ @ @ @ @ , < v S +.S S -.........S +... . . . . ... . .}...+.8.|.S.!+[+8+c+f+8+f+8+g+0+f+f+c+h+i+f+i+f+f+o+h+h+h+p+m+o+p+p+m+o+p+p+q+m+t+t+p+p+m+m+m+m+m+p+q+m+k+h+m+o+f+m+f+h+h+c+c+c+0+4+4+|+^+|+0+o+s+t+s+q+p+s+o+t+m+p+m+p+t+m+o+o+q+p+m+k+k+o+p+o+i+k+e+c+e+b+3+b+3+3+%+X.*+3+3+3+a+]+]+/+/+X.z.D.D.z.D.C.A.C.B.B.B.O.D.D.O.D.O.O.L.O.O.O.O.O.O.O.L.C.L.O.R.O.D.G.G.O.O.O.O.R.O.O.D.O.O.O.O.R.R.R.O.R.R.",
-"@ - - @ @ - - , i O S ..S ..O S -...S +... ...........+.....S G O F 8.S.(+6+c+c+c+8+f+8+8+0+c+h+f+f+i+f+f+f+f+h+h+m+h+i+h+h+p+p+p+m+p+m+p+m+m+m+o+q+p+p+p+k+o+m+q+m+p+o+h+o+i+m+h+k+h+c+c+4+c+4+4+|+}+|+0+o+s+q+s+t+q+t+s+v+s+s+q+p+q+p+q+q+k+q+m+o+k+o+k+k+k+h+k+b+a+4+2+3+]+%+*+*+:+]+3+]+a+]+/+X.U.U.D.D.D.B.C.C.G.B.O.D.D.B.B.D.B.B.B.B.B.L.O.O.L.R.O.O.O.O.O.L.O.J.O.G.O.O.O.O.O.O.O.O.O.G.O.O.O.O.O.R.R.O.",
-"@ @ @ @ . . @ - ( r S -.S -...S S S -.S S .. ...S ..+...S r G r i e F 8.S.(+0+b+b+9+0+8+f+0+0+c+c+f+i+i+i+h+i+k+m+p+i+o+q+h+o+i+q+o+m+o+m+p+p+m+m+p+p+m+m+m+o+m+h+o+h+o+o+o+k+k+h+k+k+c+e+c+4+e+3+4+_+^+6+f+m+t+s+s+p+q+q+q+r+p+q+q+q+p+o+o+k+q+k+m+k+n+o+i+k+c+b+c+j+3+2+3+]+%+*+*+:+]+3+]+/+%+X.U.D.z.D.C.D.D.D.D.D.y.B.B.B.B.B.D.D.O.B.C.B.B.B.D.O.O.D.D.O.O.O.R.O.O.O.O.O.O.R.R.O.R.R.O.R.O.R.R.D.O.O.D.R.R.",
-"@ - @ @ @ @ @ - ( k M M S S W S S S S ..S M .S S S -.M W r k : a a s I j.Z.[+8+f+i+b+0+8+0+f+0+f+i+h+f+f+i+i+h+k+h+h+m+h+q+p+p+m+m+q+m+p+h+o+p+q+o+m+p+p+m+o+f+m+f+m+f+f+h+m+o+k+h+h+c+0+b+c+6+4+4+4+^+|+8+q+p+q+s+t+p+p+p+m+p+m+o+p+p+k+q+o+i+m+k+o+i+k+k+c+l+b+j+3+b+3+3+]+*+*+:+:+3+/+]+/+Y.U.z.z.B.R.B.B.D.C.C.C.B.G.O.O.O.G.C.B.B.G.B.C.C.L.R.O.O.O.O.O.L.R.O.R.R.O.O.R.R.R.R.R.O..+R.R.R..+R.R.R.R.R.U.R.",
-"- - @ @ @ @ @ = - a B W M M .S S M O S S W K S S G r r 6 a } } 6 6 a s ` k.=+[+8+i+g+b+c+c+h+0+8+f+h+h+f+h+h+f+i+m+i+o+h+h+o+k+p+h+p+i+p+p+p+m+h+p+p+h+p+h+o+o+m+i+m+m+i+h+h+m+i+h+k+i+0+c+c+6+c+3+4+)+^+5+f+p+p+p+t+p+p+p+p+p+p+q+k+m+i+q+q+k+o+k+k+i+k+l+i+b+b+c+2+2+3+]+]+T.%+*+*+{+/+]+X.U.D.D.D.B.O.B.B.B.D.D.D.B.B.B.O.R.B.L.L.B.C.B.G.C.G.B.D.O.R.L.R.O.R.R.R.R.R.R.R.R..+.+.+.+.+/+.+.+/+.+.+/+.+.+U..+",
-"@ @ @ @ @ . @ = < r M K K M M W S M S K S M M M y k : ( } ( : } 5 a | s _.E.!+6+8+c+0+8+8+8+c+f+0+c+c+c+f+f+i+f+i+h+i+o+q+o+m+m+p+o+m+m+h+m+h+p+i+i+p+i+o+m+k+k+p+h+i+h+p+k+i+i+k+h+b+k+c+4+c+4+|+4+|+_+^+b+o+t+s+p+t+q+q+p+p+o+o+o+n+p+h+k+i+k+i+k+k+i+i+b+c+b+b+3+3+3+]+]+*+*+%+:+]+/+X.Y.z.B.R.R.z.D.B.B.y.c.D.D.O.O.D.O.D.G.L.O.L.O.B.O.C.R.O.R.O.O.R.R.R..+R.U..+/+.+/+.+.+z+.+z+/+z+/+z+/+z+/+d+/+/+/+/+",
-"@ @ . . @ @ . @ @ - 6 B K K M M M M M M M G G j j 5 } : : } ( : : 6 ( | 8 s 4.S.(+8+f+c+c+c+8+8+g+f+g+f+c+g+f+i+i+g+o+i+f+h+p+k+m+h+o+o+p+i+o+o+m+m+o+m+m+i+m+p+h+i+h+o+i+h+h+p+h+i+i+c+k+k+c+4+c+4+3+^+'+!+|+c+k+p+p+m+s+p+q+k+k+o+k+k+q+m+h+h+k+h+k+k+e+i+b+b+2+b+4+3+]+]+%+%+*+%+/+%+/+U.D.D.B.B.O.B.z.y.B.D.B.B.D.D.B.D.R.O.O.O.B.O.L.O.O.O.R.R..+R..+.+.+:+.+/+/+/+z+/+z+/+d+/+a+/+a+d+a+a+d+d+a+r+l+r+d+d+",
-". @ @ @ @ @ @ @ - , r B K B M B B W G B t t 5 5 [ } { : : } } } : } 6 a 7 F 8.Z.(+8+c+8+8+8+b+8+8+0+0+f+f+f+f+f+h+f+f+h+o+h+m+k+o+f+m+i+p+m+h+k+h+h+h+k+p+o+h+k+h+i+f+i+i+k+h+k+k+h+h+0+0+c+c+c+4+4+3+<+~+~+6+o+q+q+p+p+q+p+o+q+q+o+o+i+i+k+k+i+k+c+c+i+e+j+b+b+3+3+3+1+]+X.*+%+*+%+Y.U.U.D.R.B.D.B.B.D.B.C.y.C.B.c.C.B.B.D.O.R.z.O.O.R.R..+.+.+.+.+:+:+:+:+:+d+d+d+d+d+a+d+a+a+z+r+r+r+r+r+w+r+w+r+r+r+r+p+p+",
-"@ @ . @ @ @ . @ - 6 p K r M W v M y y 6 } } ) } } { - : { } } ( ( : a a s 8.j.=+5+c+g+g+8+b+g+f+c+8+0+c+i+i+i+h+h+f+f+h+h+m+m+m+i+p+i+k+p+m+k+m+q+m+h+k+h+h+k+o+i+f+f+i+i+i+h+k+i+k+h+c+c+4+4+4+0+^+^+)+'+(+h+m+q+o+h+o+q+m+h+k+k+q+k+o+h+k+k+k+k+c+8+b+7+3+b+3+2+{+]+%+X.*+*+*+Y.Y.z.B.O.B.O.B.R.R.B.c.B.y.B.B.B.y.B.B.B.O.O.R.R.R..+:+.+:+d+d+d+d+z+d+u+d+d+d+d+r+l+r+r+r+r+r+r+r+r+r+r+r+r+w+l+t+s+r+r+t+",
-"@ @ @ . @ @ . . - ( y r K r B p r 6 : } : ) { ) { = { { { : { } } : : 6 | s 8.j.!+7+8+8+0+0+0+c+b+c+i+f+f+i+i+k+i+f+f+f+h+h+h+h+o+h+p+h+i+o+f+i+i+i+k+f+i+h+m+h+h+h+h+i+i+f+i+h+k+h+e+c+0+c+c+6+4+{+3+)+{+)+6+k+p+q+q+k+o+k+p+h+o+k+k+k+l+i+c+c+b+b+b+8+e+b+2+2+1+a+]+%+X.Y.Y.Y.Y.z.D.G.L.O.B.R.O.B.O.B.C.R.O.B.y.D.D.C.D.O.R.R..+.+:+z+d+d+d+d+d+d+k+r+r+r+v+r+r+r+r+t+w+w+t+t+r+r+w+w+t+t+t+v+v+v+t+v+v+t+",
-"@ @ . . . @ @ . - - k p t W k 6 : } { = - - { { { { - : = { ( : } } : : ( 7 F 8.S.(+5+g+c+c+8+0+8+0+8+0+8+f+f+k+h+i+i+i+h+o+i+h+i+h+o+o+i+o+o+f+o+f+m+o+k+h+h+i+f+i+h+h+c+h+c+h+c+i+c+c+c+4+c+4+0+|+{+)+>+>+|+c+h+q+o+k+o+k+p+k+i+i+i+i+i+g+c+i+e+8+b+7+2+b+2+3+]+]+%+X.Y.Y..+U.z.z.L.L.O.O.C.O.R.R.R.C.C.B.O.B.B.O.B.C.B.B.R..+:+z+d+d+d+u+r+u+p+r+v+r+r+p+s+q+t+t+r+r+r+q+t+t+t+v+r+t+t+v+t+t+t+v+y+x+v+v+",
-". @ . @ . @ @ . . = 6 k j j } ) = = = = = - = { ) { { { { { : { } } } } 6 a s H j.Z.[+8+b+b+c+8+0+8+0+g+f+c+h+f+k+h+i+h+k+h+f+f+h+h+f+h+h+f+f+f+f+f+f+h+f+i+i+i+i+i+i+k+h+c+i+c+i+c+g+c+0+0+4+4+4+4+4+]+{+>+'+c+q+m+k+o+h+m+k+k+k+k+k+k+l+g+g+b+0+b+7+b+4+3+3+1+1+]+/+x.u.U.U.R.z.B.O.O.O.B.O.B.B.O.B.B.O.O.D.O.G.B.B.R.z.R..+:+:+d+d+k+k+k+k+q+q+k+q+p+s+r+p+s+r+r+t+s+s+t+v+s+t+t+x+t+v+y+v+t+y+y+v+t+x+y+",
-". @ @ @ @ @ @ = 6 } ) = { = { = { = = { { ) ) = { { } : { } } } [ } 6 i s 8.E.!+5+8+8+8+b+8+b+0+0+0+0+0+0+i+h+k+f+g+h+h+f+f+h+f+f+h+f+i+f+i+g+i+h+i+i+f+i+i+k+h+c+h+f+i+i+f+c+c+c+c+c+c+6+4+|+4+)+{+$+>+^+e+o+k+k+k+h+h+i+i+k+k+c+b+b+c+b+b+b+2+3+2+2+3+1+]+%+X.U.U.z.U.B.z.D.B.C.D.B.B.O.O.C.C.C.O.R.R.z.O.O.z.O.z..+.+r+e+k+k+k+k+n+g+o+o+q+t+p+t+t+r+y+t+t+v+v+s+t+t+v+x+v+x+y+t+y+v+v+B+w+y+B+s+y+",
-"@ @ . . . . @ = = = = = & = = { = = { = = ) = { { ~ : { { } : } : 5 a r i s 8.S.(+6+b+c+8+c+0+b+b+8+g+0+f+f+c+h+h+f+f+i+h+i+i+i+i+f+h+f+f+f+f+f+i+i+h+i+f+h+h+h+h+c+i+c+c+c+f+c+c+c+8+0+3+|+4+^+^+{+ + +)+0+k+p+k+o+k+k+k+k+i+i+k+8+b+j+2+9+2+b+2+2+4+1+/+1+X.x.z.z.z.z.z.D.z.D.B.O.B.B.B.B.L.C.R.O.R.U.R.D.O.O.z.R..+d+3+e+e+e+k+i+e+i+k+k+o+k+q+t+r+t+t+x+v+v+t+B+s+B+y+t+s+v+s+y+y+y+t+w+y+y+t+B+t+",
-" @ + . @ @ = @ @ @ = = = = = = ) ) { - ) ) ) ~ { { { } } [ 6 5 6 6 a s F l.Z.[+8+c+c+c+c+8+c+0+8+8+c+f+0+f+0+i+f+i+h+f+i+h+i+f+i+h+i+f+c+f+f+i+h+k+c+k+k+e+h+k+h+k+c+8+f+c+b+c+4+0+e+4+4+3+)+$+$+ + +|+k+p+k+k+k+i+i+k+e+c+e+b+c+b+b+b+4+4+b+2+2+1+]+%+X.z.z.z.D.z.z.O.z.B.C.C.O.O.O.B.R.B.O.R.R.z.z.z.z.R.R..+:+d+3+c+b+b+l+g+l+b+b+c+i+k+i+o+q+s+q+t+v+v+t+t+t+s+v+y+y+y+v+t+A+A+t+y+t+y+y+y+y+",
-". . @ @ % . . $ @ % = = { = & = = = = = - { ) ) } } } { } } 5 } 6 5 k k i s ` j.=+7+8+b+c+b+b+8+8+8+0+8+b+b+c+i+c+c+h+f+c+f+f+h+c+f+i+f+c+f+i+i+0+h+h+k+c+0+f+c+c+e+c+c+b+c+b+0+b+c+4+6+2+4+|+3+^+&+Q. +<+c+k+p+i+i+k+k+c+h+c+0+c+4+b+3+4+2+2+2+1+3+]+1+X.x.g.z.g.a.z.z.z.z.B.R.R.R.U.R.R.R.R.R.R.R.R.R.D.O.R.R..+:+3+e+3+l+b+j+e+b+b+b+j+b+j+b+l+k+k+q+s+t+y+y+y+w+B+y+t+t+t+x+y+y+t+w+w+A+A+t+y+y+",
-"@ . . . $ @ @ @ @ & @ = = = @ & & ) = = = - { ) ) = { } { } } 5 5 6 5 6 6 a i I 8.E.(+6+b+0+0+8+8+8+8+0+f+0+g+0+f+f+0+c+i+c+i+f+f+c+c+i+f+c+f+0+i+c+0+c+h+h+c+c+f+f+h+c+c+0+0+c+0+0+0+c+4+4+4+4+{+)+{+Q.Q.{+4+k+k+k+c+e+k+e+e+e+b+b+b+4+b+3+2+4+3+<+]+]+%+Y.U.U.U.U.x.U.U..+.+.+.+.+.+.+.+.+.+.+U..+U.R.R.R.R.R.R.#+:+2+b+2+j+3+j+2+2+b+3+e+4+b+4+b+e+e+k+o+k+s+r+x+t+t+B+w+B+t+t+y+A+y+y+y+y+w+y+t+y+",
-" @ @ @ @ @ @ @ . @ @ = @ @ = = = ) = = = - { { ) ) } } ~ { } { } [ g ( 6 5 k a a i I 4.Z.(+8+2+b+c+6+8+8+8+0+c+0+0+8+c+c+c+0+g+c+c+0+f+h+h+0+f+0+i+c+f+i+f+8+c+0+f+0+0+8+8+f+c+c+8+b+c+4+6+c+4+4+^+4+{+>+&+m.@+3+b+n+i+k+i+c+e+c+c+c+e+4+3+4+b+4+3+3+3+]+a+]+/+Y.*+/+*+/+*+*+:+#+*+#+:+:+:+:+/+:+.+/+.+.+.+.+.+R..+.+:+3+3+3+b+2+7+a+b+2+2+4+2+a+2+2+2+2+3+b+b+i+k+t+t+y+B+w+t+w+t+B+t+y+y+w+w+w+y+A+A+y+",
-" . % @ @ @ = = = @ @ = = = = = = = = = { } } { { [ } } } } } } 5 6 k a a s ` j.!+5+8+b+b+6+8+8+8+0+8+8+0+0+f+0+c+0+0+0+c+0+8+0+c+c+c+0+f+c+c+c+c+f+c+0+8+c+c+0+0+8+0+c+6+0+0+8+6+4+4+4+4+^+{+$+++q.K.1+b+g+c+c+b+c+b+b+3+8+4+b+3+2+3+2+3+3+3+3+3+:+d+:+:+d+:+d+:+d+d+3+d+e+e+e+d+d+d+d+d+:+d+:+/+/+/+.+*+.+:+{+3+3+4+2+7+2+a+2+a+2+7+2+a+3+3+4+3+2+4+a+e+r+r+w+v+B+t+A+w+A+s+y+y+y+y+y+w+y+w+y+",
-"@ @ @ @ @ = @ @ @ % = = & ) = = { = { { { { { : : ) } [ { 5 } 6 5 6 j 6 k a a s |.S.!+6+8+6+c+4+6+b+4+0+0+0+0+8+0+0+g+c+0+g+8+g+8+f+0+f+g+0+0+0+8+8+0+0+c+0+0+f+b+8+c+0+8+c+4+8+4+0+c+4+3+^+3+{+{+%+q.T.]+b+e+k+b+c+c+c+b+0+3+b+4+b+b+b+e+h+e+e+e+e+e+e+e+h+d+k+k+e+e+k+k+k+d+e+k+k+e+a+d+k+d+d+d+3+d+d+3+:+:+3+3+3+4+a+3+3+4+1+3+2+2+1+2+4+2+3+3+2+3+1+4+4+b+g+o+q+t+y+t+y+t+B+t+y+w+w+w+y+A+B+A+",
-"@ @ @ @ @ % $ @ @ @ & = @ @ = % & & { { ) { ) ) { { : } } { } 0 ~ 5 5 6 5 g 6 j a r I l.Z.^+b+b+6+0+6+8+b+6+6+7+c+c+8+0+8+0+8+0+0+0+0+c+c+0+c+c+c+0+g+8+c+0+c+c+8+0+b+8+8+c+4+b+b+b+4+6+8+6+4+4+)+{+$+*+q.q.%+6+b+i+b+b+e+4+e+b+b+l+e+e+b+e+e+k+k+k+k+k+k+k+r+k+k+k+r+k+k+k+k+h+p+r+k+p+k+o+k+p+r+r+k+e+e+e+a+e+3+e+4+e+c+c+c+3+3+3+<+]+1+1+]+]+2+]+1+1+3+]+1+]+3+4+g+q+t+y+t+B+w+A+y+y+y+A+A+B+w+t+y+",
-"@ . @ @ $ @ $ @ & @ & @ = % = & ) ) { = ) { { { } } { } } { ( } } 5 5 } 5 j 5 g 5 0 a r ` F.!+[+6+c+b+6+6+6+9+9+0+6+6+0+8+8+8+0+8+5+8+8+0+8+0+8+0+0+c+0+c+0+c+c+8+0+8+0+0+8+8+8+8+8+6+8+4+4+4+4+4+4+{+{+$+N.N.@+1+c+b+b+b+b+b+b+b+e+c+k+k+k+h+k+k+h+k+k+h+h+k+h+h+k+k+h+k+k+k+m+k+k+k+r+r+m+k+k+i+h+o+k+k+k+k+k+e+e+b+e+b+e+e+e+b+3+e+3+2+]+3+]+3+]+3+]+]+1+3+]+]+1+1+3+j+l+q+B+t+y+y+A+w+w+A+A+w+y+A+A+",
-"@ @ % @ % $ = = @ = @ = & = = ) % { : { ) { { { { { } } ( } 5 [ } } 5 5 5 5 j j 5 6 i I 4.Z.(+|+6+8+6+7+5+5+6+8+5+8+6+0+8+9+8+0+8+9+9+8+b+0+8+8+0+0+0+c+0+8+0+b+8+8+8+8+6+b+8+6+0+b+8+6+6+4+^+4+^+{+{+T.N.i.N.3+b+b+e+c+e+e+i+c+k+i+k+k+e+i+h+k+h+k+k+k+h+k+k+p+k+p+k+p+m+k+q+k+h+h+h+k+o+o+p+q+k+q+o+q+k+k+p+h+o+i+k+c+k+k+i+i+e+e+e+b+3+3+]+1+]+]+1+]+]+]+1+]+]+1+]+2+j+n+o+y+t+y+y+y+y+y+A+A+B+A+y+",
-" @ % % & @ & @ = = & = % ) ) = = ) { ) } } { { { { a { g } } } { g } 5 5 6 6 6 5 0 } a s I k.Z.[+8+4+4+6+|+6+6+6+6+6+0+6+9+5+6+b+0+0+5+8+8+8+8+0+b+8+c+0+8+0+8+0+0+c+c+8+b+8+b+b+b+6+6+4+4+4+4+4+^+)+{+$+N.N.$+{+b+e+b+l+i+k+e+k+i+k+h+h+i+h+k+k+k+h+k+h+k+q+k+k+k+k+m+i+k+k+o+m+q+k+p+p+q+q+k+p+p+o+q+i+m+o+k+q+k+k+i+q+i+k+p+k+m+k+l+e+b+3+3+]+3+]+]+]+]+]+]+3+]+]+]+1+3+a+l+q+B+w+A+w+A+y+y+y+w+A+B+",
-"@ . @ @ & & @ @ & $ & & = ) = = { = ) - ) { [ { { { } } } 5 { g 5 5 [ ~ } } 6 } : 6 5 } 5 k v ` F.!+6+6+7+7+6+6+6+6+6+6+6+6+5+0+6+6+5+8+5+8+8+8+8+0+c+8+c+c+b+b+8+8+6+8+4+8+6+8+6+0+0+4+6+6+|+|+4+^+{+)+{+$+$+*+{+3+c+c+c+e+c+k+i+e+h+e+k+k+k+k+h+k+k+h+k+k+i+o+i+m+k+k+p+q+o+k+k+o+p+k+k+k+o+q+o+p+p+o+q+q+p+o+k+o+o+q+k+q+m+k+m+k+p+p+k+k+c+i+e+3+3+3+]+]+]+]+]+]+:+]+]+]+]+3+b+g+s+y+y+y+A+y+A+y+y+A+y+",
-"@ @ @ % @ @ % @ & @ @ @ = & = ) = = { = : - ~ } } { } ~ { } 6 5 5 0 5 5 0 0 5 : a { 5 } } } 5 : 6 i O 4.V.^+4+6+6+7+|+6+6+0+6+6+0+6+5+6+8+0+0+0+6+0+6+6+8+5+6+8+6+0+5+0+6+0+6+0+8+8+6+c+4+6+0+6+|+4+1+2+4+|+)+{+{+{+3+3+e+e+e+e+k+e+c+e+h+e+i+c+k+i+h+k+i+o+k+k+o+k+k+k+k+p+k+k+i+k+o+p+k+k+p+q+o+q+o+p+k+q+q+p+o+o+p+m+q+q+k+m+q+q+q+q+q+k+q+o+o+k+e+k+l+e+a+3+3+3+]+/+{+]+{+/+]+]+]+4+e+k+s+x+y+B+A+y+y+y+A+A+",
-" @ @ @ % @ & $ & = & = = = ) ~ = : { { { : { { { ( { a { } 5 5 0 5 j 5 0 0 [ 5 } 5 [ g } 0 6 6 a i F l.;+[+6+|+6+6+|+6+|+6+5+6+6+5+5+6+5+|+6+6+6+6+6+0+0+6+0+6+c+6+8+8+c+4+6+8+8+7+6+9+6+4+4+|+|+|+4+^+<+)+]+3+3+e+e+e+b+i+c+k+k+c+e+i+c+l+c+e+b+c+k+e+k+o+k+i+i+k+k+i+m+m+p+o+k+i+o+m+o+h+p+o+q+k+m+m+p+q+p+p+q+q+m+o+o+q+o+o+m+q+o+o+o+q+k+m+q+k+p+r+k+e+a+3+3+{+]+/+]+:+{+:+{+{+4+4+c+o+t+t+y+A+A+B+y+B+y+",
-"@ @ = @ @ @ & & & & $ & = = = = = } { : ) : ~ { ) { { : } } a 6 6 6 p k j 6 } 5 ~ } [ [ } } ( ~ } : | r 8.S.;+4+4+4+4+6+|+6+[+|+6+|+5+|+5+5+6+6+|+6+8+6+7+6+c+6+6+6+8+6+6+6+8+8+6+6+6+b+6+7+6+4+4+|+}+^+4+{+{+4+e+4+4+6+8+c+b+e+e+c+e+b+e+e+c+c+i+i+k+c+i+i+i+i+k+k+o+o+k+k+k+k+k+m+l+o+k+p+q+o+k+o+o+q+q+k+m+p+q+m+p+r+t+q+o+q+q+q+m+p+q+q+o+m+q+p+p+q+m+m+h+k+e+3+d+3+{+{+]+]+]+]+3+{+2+2+b+o+t+t+y+A+w+A+w+A+",
-"@ = & $ % @ = = = = & = = : { { - { { : } 6 [ : } ( } 5 6 [ 5 5 k j p k j k j 5 0 } 0 [ } } : { } } ( i s 4.Z.^+4+4+4+|+|+6+6+|+|+5+6+|+|+6+6+6+5+6+6+6+7+7+6+6+6+6+5+8+8+6+6+9+8+b+6+4+6+6+4+4+|+^+}+_+^+^+3+^+3+4+e+4+2+b+c+c+k+c+e+b+b+e+e+c+e+c+i+k+i+k+k+k+h+h+i+p+k+i+n+o+k+m+k+o+p+k+p+m+p+q+o+o+m+q+q+p+q+q+m+p+m+t+o+t+t+q+o+o+m+p+q+p+q+o+p+q+p+t+p+p+k+b+e+3+3+{+{+{+^+^+1+^+4+|+4+f+p+t+y+y+B+A+A+A+",
-"@ @ $ @ = = = & = { = { = ~ { { { { } { } [ } { 6 5 } 5 j k j j t p p k k k j 0 } } } } { { } { } } : a e ` l.=+^+4+|+4+|+^+|+6+|+|+|+6+6+|+|+6+6+6+6+6+5+5+7+6+6+6+0+6+6+0+6+6+6+6+4+6+6+|+6+|+4+4+^+^+3+{+^+3+6+4+|+b+3+4+4+e+e+k+c+c+c+g+i+e+c+e+c+h+e+i+i+h+k+k+k+i+o+q+i+i+o+k+p+p+k+h+k+q+o+o+q+q+q+p+h+o+q+m+q+m+p+q+t+q+q+t+t+p+q+q+t+q+p+q+q+t+t+q+p+r+s+q+k+d+d+e+3+4+3+]+^+^+^+4+4+b+g+q+s+y+A+A+A+A+",
-"& = & & = & = = & { { ( = { = ) : ( } } } } [ : k 6 6 k k p r r t M M p k p j 0 5 [ } ~ { { { { { [ } { 6 s 8.S.!+4+|+|+|+^+|+|+|+[+[+}+5+6+|+6+|+6+6+6+6+6+6+|+4+4+|+6+6+4+6+7+6+6+4+4+6+6+|+|+_+<+<+)+<+{+2+)+^+4+}+4+4+4+6+4+c+c+e+l+e+a+g+b+c+e+b+f+c+k+k+k+h+h+k+k+k+k+q+k+o+g+k+o+q+o+h+k+q+o+i+m+q+q+q+o+q+p+q+q+p+p+o+o+o+t+t+p+m+m+p+s+s+o+p+o+s+t+s+p+p+p+p+p+k+k+3+4+4+3+4+3+^+4+4+4+0+i+q+s+x+y+A+y+",
-"= = = @ ) = = = = ) ~ ) { ~ ) { { } : } } } } 6 r k j a r p K t G M M B t j 5 j 5 : } } ~ ~ } ~ [ { { } : a I l.`.^+4+4+4+[+(+[+[+}+}+5+|+|+6+|+5+|+6+6+7+6+7+6+|+6+6+4+4+6+6+|+|+4+6+6+4+4+|+}+|+^+3+{+{+4+^+^+{+<+<+2+2+4+3+4+2+2+b+c+c+c+b+g+g+g+c+e+k+i+i+i+k+k+k+h+k+q+i+o+k+q+l+k+n+i+k+m+m+k+p+p+m+q+o+q+q+q+p+s+o+o+t+t+q+q+p+o+q+t+o+q+q+t+t+s+q+p+p+s+o+s+p+r+r+p+i+b+3+4+^+4+4+^+4+4+4+b+h+p+t+y+y+A+",
-"@ = = - { ) { = { { : { } { { { { } : } : 5 0 6 p r p r r B K K S M K K K j j 5 5 { { } { { { { } { { { : a e ` F.=+^+^+^+}+_+}+[+|+|+|+|+|+5+|+|+|+|+6+5+6+4+|+6+6+6+6+6+4+4+4+6+4+4+4+4+4+4+_+^+)+^+{+<+]+<+^+{+3+)+^+]+^+3+3+7+6+7+j+e+l+e+l+e+l+c+c+e+k+i+k+k+h+k+h+i+k+k+o+i+o+o+i+o+i+o+o+m+o+q+q+m+p+o+o+o+s+m+q+s+m+p+o+o+w+s+s+t+t+o+o+s+q+q+m+t+t+q+s+q+t+p+p+r+q+p+i+e+e+4+4+4+4+^+4+|+4+b+h+t+y+y+A+",
-"= = = ) ) ) & { = { { = : : : ( ( } 5 5 5 5 j p B K t p B M S S S S S .K t j 6 g ( { { { ~ ) ~ { = = { { : | s 4.Z.'+4+4+}+[+(+}+(+[+|+[+[+|+[+7+[+5+[+|+4+|+4+|+6+5+7+7+6+6+7+7+|+|+^+|+}+_+|+4+)+{+_+{+^+{+{+{+^+^+3+1+^+<+_+{+1+}+2+9+b+g+c+k+c+b+c+k+c+l+i+h+e+p+k+k+o+o+k+k+p+k+p+i+o+n+i+q+q+o+o+q+q+o+q+p+o+q+o+q+t+o+t+q+m+q+o+o+p+s+s+q+o+t+t+n+t+m+q+p+q+t+t+m+p+q+q+h+e+e+4+4+|+4+|+2+6+4+b+i+o+y+y+",
-"& = = { { ) = ) ) = : ( ( 6 : : 6 6 k 6 p t u t S M K r B G S S S S S G G t p 5 } = ( ~ = ~ & ) = ) ) ~ { { < e I F.=+^+^+_+}+^+}+_+[+[+[+[+|+[+[+[+5+}+[+|+|+|+|+|+[+[+|+6+|+4+|+|+[+[+^+|+_+_+^+^+)+)+]+^+)+4+{+3+{+{+]+{+^+<+)+1+4+<+4+e+e+k+e+i+k+c+l+c+e+l+i+i+k+k+k+k+o+o+k+h+k+p+i+p+k+m+m+o+p+q+o+q+o+q+o+o+o+o+o+s+o+m+t+o+t+s+t+q+o+o+s+o+t+t+o+t+o+t+o+t+o+s+t+q+p+r+o+i+e+b+3+4+4+|+7+6+4+c+c+k+s+t+",
-"{ { - { { ) } ) [ } : ( 6 ( 6 6 a p 6 p B K K M S ..G B O ......S .G G B M t j ~ { = ~ = ) ) ) ) ) ) = % { ( 8 s _.V.~+}+<+^+(+(+(+(+(+(+_+}+^+|+}+}+|+|+[+5+7+7+|+|+7+|+4+4+|+4+}+}+}+}+_+<+_+)+<+]+_+>+]+{+{+{+{+)+]+^+)+]+{+{+{+<+{+2+4+e+e+k+l+c+e+e+k+h+c+k+k+i+i+i+i+k+k+h+k+o+k+p+k+m+o+k+q+o+m+q+q+q+o+s+s+t+t+s+p+s+t+t+s+o+q+o+o+t+s+o+s+o+o+t+t+o+y+t+o+s+t+s+o+t+m+p+p+k+e+c+4+4+4+4+4+6+4+4+h+k+t+",
-"= ) { - : : } ) [ [ 5 6 a a ( a p v k t S S K G +...O K S ........ .S G G K p 5 ~ { { ) = % ) ) ~ = ) { $ ~ { < | F l.;+(+}+}+_+(+^+(+}+[+[+[+^+|+^+|+|+}+|+[+[+[+}+[+|+|+^+4+^+|+}+_+^+^+^+_+)+)+)+]+]+>+>+{+{+)+]+)+{+{+)+{+{+$+{+{+)+<+3+6+b+b+a+h+h+e+e+k+e+c+i+i+k+k+k+i+k+q+k+o+i+m+k+p+o+o+k+k+o+o+o+p+q+q+o+q+q+v+q+q+m+q+t+m+t+t+t+t+t+o+s+s+t+t+o+o+t+o+t+s+q+s+m+t+t+q+p+p+k+e+b+4+4+4+{+6+4+4+c+c+o+",
-") { { : { { : : } : 5 6 k a 6 k p p B G .S G O ....G G +.+.+.+. . .M B B p j } } ~ ) ) ) = ~ ) & ) & = { ~ = ( < i ` E.)+_+_+^+^+(+(+[+^+^+^+}+^+|+^+_+|+}+^+|+|+[+(+[+^+[+|+4+4+^+[+_+_+^+)+<+]+>+>+>+$+$+$+)+{+<+)+{+{+{+>+{+{+$+]+]+{+)+{+4+8+b+l+e+i+i+c+i+l+b+g+h+k+i+k+h+h+h+i+k+k+p+i+h+p+o+o+q+q+p+o+o+o+p+m+p+o+s+m+t+s+s+t+o+t+m+q+s+s+t+o+s+t+y+o+t+t+o+r+s+o+t+s+o+t+t+q+p+h+c+c+e+e+4+3+|+4+4+6+b+",
-"} { } { } } } : } } 5 k k k r p B B G G S G G O <.f.O G O O +.+...G B p k k a { } { = = ) & & ) & ) % % = = = = ( | I p.Z.'+}+)+^+^+_+_+_+(+(+^+^+|+[+}+|+|+^+}+}+}+}+[+|+^+_+_+^+^+^+^+)+<+>+)+]+ +&+&+&+>+$+>+$+]+&+>+$+&+]+$+{+>+&+{+{+)+{+]+6+2+l+e+l+l+b+c+g+g+l+h+k+k+k+k+k+k+o+i+i+p+p+i+q+o+o+o+o+q+p+p+t+q+q+p+o+t+p+q+q+t+t+o+t+s+o+q+o+t+o+o+o+t+y+o+t+s+s+t+t+q+s+o+t+o+s+r+k+k+c+4+4+4+4+|+4+4+6+8+",
-"} } } } { } } [ 5 6 j p t p i B G G O O G G G +.+.+.M G S S G G G v v p j ( } { = ) { & & % % & & & % & & = = & = < 8 ` F.~+)+^+<+_+~+!+[+_+(+_+^+^+^+(+^+^+}+^+|+(+(+(+_+_+}+|+_+^+^+)+<+'+>+>+>+>+>+ +$+$+&+]+,+&+{+$+{+$+>+&+&+&+]+@+&+]+)+)+<+7+2+b+b+e+g+l+e+e+c+l+c+h+k+k+o+i+i+k+k+k+k+p+m+q+p+m+q+m+q+o+o+s+m+q+s+p+t+o+t+n+s+o+t+o+s+s+t+o+y+t+t+o+s+o+t+o+t+t+o+t+t+t+t+s+q+s+q+q+k+h+0+|+4+4+4+4+6+4+",
-": : 6 : : } 5 j 6 6 6 p p p v O G G S G v B B S +. ...S S S S G p a a k } ~ ) = { = = = & & & % % & $ $ $ & & @ & = , s p.Z.^+)+^+^+^+)+^+^+(+^+_+_+^+}+(+(+(+_+}+}+^+^+}+^+_+^+<+)+{+)+{+~+{+>+$+&+&+@+ +$+ +&+ +&+&+ +>+&+&+>+$+$+$+&+$+&+@+]+)+<+4+2+g+e+c+k+e+e+c+c+g+i+i+e+k+i+i+o+i+o+k+k+h+o+k+m+q+o+q+p+q+q+o+q+t+m+t+t+s+t+s+t+t+t+t+o+s+o+t+o+t+o+s+s+t+o+o+t+t+o+t+t+q+t+q+s+q+p+k+e+c+6+|+|+4+4+}+|+",
-"6 6 6 : } 5 5 k k r k p K B v G G S S G B B O O S ..S S K ..G B p k 6 : { { = ) = = = & $ & & % % % $ $ % $ & $ $ = { i F F.,+^+<+)+<+^+^+_+^+^+^+(+_+(+_+^+}+^+^+^+_+_+^+~+^+_+^+)+)+{+,+&+ +$+&+ +W. +Q.&+$+&+&+ +$+&+$+$+>+&+&+&+%+>+&+@+&+ +&+{+<+4+3+e+k+i+i+h+c+l+c+e+k+i+h+k+k+k+k+i+h+p+p+k+m+o+o+o+o+o+m+p+s+o+o+t+s+m+t+s+t+o+y+o+t+t+t+s+s+s+t+t+s+o+t+t+s+o+t+t+o+p+t+o+o+q+s+q+o+m+c+c+c+4+^+4+4+|+",
-": a 6 : } 0 6 k j p i v M B G S S S S M G G O S S S O S S S B r 6 : } { = [ = = @ = @ & $ $ @ $ & $ $ % & & ) $ & = ( s 4.Z.)+^+)+)+)+'+)+~+^+)+^+^+_+!+_+_+^+^+^+(+_+^+<+_+!+~+_+)+{+>+>+ + + + +Q.%+W.Q.W.&+&+&+$+&+&+&+$+&+&+$+&+&+&+&+@+&+&+>+&+<+2+2+e+e+l+e+c+e+i+c+k+e+c+g+i+i+k+k+i+k+m+k+k+h+m+o+q+q+q+q+p+t+o+o+t+t+o+s+t+o+y+t+o+x+o+s+t+s+m+t+s+o+t+t+s+t+s+t+o+t+t+o+y+r+q+t+r+r+c+b+c+4+4+4+4+^+",
-"6 : : : 6 j p t B p p B M S G S S ...... .S S +. .S v G G G r k ( : : : { { { @ @ $ $ % @ $ $ . & & @ % % ) ~ { | ` p.,+)+{+)+'+)+~+^+~+^+^+~+(+_+^+^+^+'+(+)+^+)+)+~+)+'+>+)+$+>+$+@+ +Q.%+W.Q.T.%+++Q.W.Q.Q.&+Q.Q.&+Q.Q.&+Q.$+T.@+$+Q.&+&+&+>+_+3+b+b+e+g+k+e+l+b+c+i+i+i+k+k+i+k+k+h+k+p+m+p+k+p+o+o+m+m+q+o+t+t+t+s+t+t+t+s+o+y+x+o+s+t+s+t+t+o+t+t+s+s+q+t+o+o+t+t+o+t+o+o+t+p+q+o+n+c+c+4+|+|+}+}+",
-": } : 6 6 k B K K p B G G G S ..S S ........S S G B v B B p : 6 } { { : { ) & $ @ @ $ + % + & $ % $ & $ & < s 8.`._+{+{+)+^+'+'+~+~+^+)+~+~+_+)+_+)+_+<+)+^+{+~+)+)+>+>+>+ + +@+W.W.T.Q.Q.M.Q.M.%+%+T.$+Q.&+Q.T.$+Q.%+Q.&+T.%+Q.$+Q.&+&+&+>+<+1+4+e+c+k+c+l+e+b+b+c+c+i+k+i+h+k+h+i+k+k+m+i+o+o+q+k+o+q+o+o+o+o+t+t+t+t+s+o+o+y+t+o+t+o+y+o+t+o+o+t+o+s+t+t+o+t+t+t+o+t+s+t+p+p+p+o+k+c+c+4+|+|+|+",
-"5 6 5 a i B G M M B M M B G G ..S S +.+.+.S S G G k 6 k p 6 : [ { { = { - = $ @ $ @ % $ + $ @ % % @ % $ % @ @ - | +.l.>+)+)+)+)+~+)+)+'+~+^+)+^+'+_+)+^+)+)+)+{+~+)+>+;+>+>+ +@+ +Q.@+T.Q.Q.T.T.T.Q.M.M.%+T.T.M.%+W.T.%+Q.T.&+K.%+T.T.%+&+T.@+@+>+)+2+2+e+c+l+c+b+g+c+c+h+c+i+i+k+i+k+k+i+o+i+n+o+o+o+m+p+o+t+o+s+t+m+y+o+y+t+s+x+o+t+y+t+t+t+o+y+t+t+t+t+o+o+o+t+o+o+t+t+s+p+p+s+q+q+p+i+c+b+7+2+2+_+",
-"6 k p p p v S M M G S S B G G ..S S S S S G G G p p 6 6 k } : ~ & = = = = @ $ $ @ @ & $ @ @ ; $ . - ( s p.`.{+{+~+>+~+_+]+-+~+^+)+)+'+_+)+)+)+<+~+)+)+)+>+ +&+ + +&+&+Q.W.K.T.H.T.T.T.T.Q.M.Q.Q.T.Q.T.&+K.T.M.T.T.Q.%+T.%+Q.T.Q.%+&+%+]+<+1+4+b+e+g+e+g+l+e+k+e+k+i+k+k+n+k+i+k+p+i+i+p+q+o+o+o+o+o+m+s+m+m+o+y+o+t+t+t+o+y+o+y+s+o+y+o+t+o+t+t+t+t+m+t+o+o+o+t+q+q+s+t+q+q+q+c+b+8+6+2+|+",
-"k p t t B O S S G +.S B O G +.S ..G G O G B p p p B p 5 : : = = @ @ @ & @ & $ @ % + % + ; & . - r ` F.`.~+)+>+{+>+>+_+>+)+'+'+~+>+<+~+)+>+{+>+]+>+>+ +>+$+Q.W.Q.M.Q.Q.t.m.m.q.T.T.T.T.T.T.Q.T.Q.T.T.T.%+M.T.X.M.M.T.%+T.%+Q.Q.W. +&+]+4+4+j+e+l+e+c+b+c+i+e+k+h+i+i+i+k+i+i+k+k+i+o+o+o+o+o+t+t+t+t+y+o+s+s+s+s+y+t+t+o+t+o+y+o+t+x+o+y+o+t+m+t+y+o+o+t+o+t+o+q+p+q+m+o+q+c+j+b+4+2+",
-"p B G B B O O +.S S S S O O O S +.G v p p p i p B p 6 } { { = ~ $ $ $ $ + + + + . + ; + ; + % @ $ @ a s n.V.@+~+>+>+-+>+)+>+)+)+~+'+>+{+~+~+,+>+>+&+>+ + + +W.@+@+K.%+T.w.T.q.T.q.T.X.T.Q.Q.N.T.T.T.Q.T.T.T.T.T.T.T.T.Q.T.T.X.T.%+T.Q. +@+]+^+2+6+k+e+k+l+e+h+c+c+i+l+n+h+k+i+o+m+q+i+k+o+o+q+o+q+o+p+o+t+y+t+t+y+o+y+t+t+s+s+o+t+y+o+s+m+s+t+t+o+o+t+s+o+t+o+s+s+q+m+r+q+q+k+k+b+b+4+4+",
-"B G M M G O O G +.S G S S S O S G G B p B p v p p 6 : : ~ = = = @ $ $ + + % + % + % + % & @ - i ` F.;+)+>+>+>+-+>+)+)+'+>+>+{+>+>+>+>+>+>+>+$+ + +W.W.Q.Q.Q.Q.s.T.q.q.h.f.h.N.w.N.T.T.M.N.M.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. +@+<+_+4+4+k+k+e+c+e+e+e+e+h+k+k+h+k+g+k+h+q+o+q+o+m+p+m+p+q+s+t+o+s+x+o+y+o+y+s+t+t+s+t+m+t+t+t+o+o+t+o+t+m+n+t+o+t+q+q+o+t+m+o+o+o+p+k+k+b+4+",
-"M M M B M G G O S S G G O G G S B v i p i i i 6 6 6 { = & @ & & & @ $ @ & @ + + + % % + + % + + + + $ & < O p.@+>+>+,+>+-+>+$+ +,+,+-+>+>+,+>+;+`. + + +Q. +Q.@+Q.Q.Q.T.q.q.q.i.6.h.q.q.T.q.T.q.T.q.N.s.T.q.Q.T.X.T.T.X.T.T.T.T.T.T.T.T.w.K.K.V.;+^+4+c+c+e+k+c+b+c+e+c+i+i+i+i+g+i+h+h+h+p+p+p+p+o+o+q+o+s+t+t+s+o+y+o+w+y+s+t+t+t+s+t+t+o+y+o+t+s+t+m+o+t+o+n+o+s+q+q+q+q+p+o+o+i+k+e+b+",
-"S K K B v B G S ..S O v O G G G G p i i 6 6 6 : { { { = & $ @ @ @ & . + . + + . + + + + + . & . $ = i 2.H.>+>+>+&+ +>+>+>+ +>+ +-+;+>+;+ + + + +&+Q.@+K.Q.Q.Q.q.Q.s.s.i.x.V 6.h.X.q.N.N.M.N.N.q.X.N.T.q.T.q.T.q.T.X.q.T.T.T.T.Q.w.w.m.2.p.F. +^+|+b+c+k+k+c+e+i+b+b+g+i+l+i+p+k+k+o+i+o+h+k+q+t+o+t+t+o+s+t+y+s+y+s+o+t+s+s+y+o+t+t+t+o+t+y+o+m+t+p+o+q+s+q+q+p+q+o+o+k+p+p+p+h+c+b+",
-"S S K B B G G S ..S G p v B G v i k i 6 : : } { { = = & $ $ @ $ + + + $ . & @ % ) 6 O H. +>+>+ + + + +>+ +>+ +>+ +>+ +&+ + +W.W.W.Q.K.Q.T.Q.o.w.q.q.i.9.R (.h.q.q.N.q.q.m.T.q.q.X.X.q.T.N.N.T.q.X.T.q.T.m.m.m.<.2.......2.F.`.~+4+4+e+e+i+e+c+g+i+g+i+k+e+h+m+k+k+h+p+m+m+o+p+o+q+t+o+y+o+o+s+y+s+y+t+t+o+y+y+o+y+o+t+o+t+t+p+q+q+o+q+o+m+o+o+q+p+o+q+k+q+k+k+c+b+",
-"S S G M K G G S . .B p k v B B v k k : : : { { = ) ) % $ $ . + . + + + + + + + + $ @ $ $ $ { G m.W. +$+ + + + + + + + + + + + +W.W.W.W.@+K.Q.Q.T.M.q.T.o.q.f.6.V Y ).u.u.N.q.q.q.q.q.N.o.q.T.w.N.q.X.q.T.m.X.q.m.s.m.<...S ..S ..+.2.F.`.!+4+c+e+e+e+l+c+b+i+c+h+h+k+e+h+m+k+i+k+q+p+o+o+o+o+t+o+s+t+t+t+t+s+y+x+t+t+m+x+o+t+o+t+m+o+o+o+o+q+o+p+q+q+q+m+o+p+o+o+m+m+o+i+c+",
-"S S G M M G G S +. .M p k i v k i 6 6 : - = ) ) = & & @ % @ . @ @ + + + + . + + + + + + + # . $ ^ g r <.H. +$+$+ + + + + + + + +W. + +@+W.Q.Q.W.W.T.t.s.M.s.q.q.i.e.g.Y Y ).1.u.i.q.q.q.q.q.N.q.N.q.q.N.q.q.T.q.s.w.s.f.....S S M M K S G S 2.F.`.'+6+c+c+c+g+c+l+c+e+k+h+h+k+h+h+p+m+i+o+q+q+q+s+o+t+o+s+t+s+s+t+s+t+y+o+y+o+y+o+y+o+t+t+t+t+t+o+q+q+q+m+m+q+q+o+p+q+q+k+n+n+i+c+",
-"S S S M M S G G S S B p 6 i i k | 6 : ) ) = ) ) = ) % + + . + + + + + + + + + + + + . ; ] ~ y y ..w.Q.$+ + + + +W.W. +Q. + +W.@+Q.W.K.Q.Q.K.K.H.w.m.q.q.i.i.0.R Z @./.g.u.X.h.X.q.q.N.q.N.q.N.q.T.q.T.q.q.m.m.....S S M K G K M B B O +.2.F.`.'+}+b+l+e+l+c+e+c+h+c+k+h+k+k+i+i+k+h+i+m+m+m+s+o+t+o+s+t+y+s+t+x+o+y+t+y+o+t+o+t+t+o+o+o+o+o+o+o+o+q+p+o+o+q+q+o+o+q+o+k+k+l+",
-"G O G G M G B G O v r 6 6 k i { : : - ) = & @ & = & @ + + + @ @ $ + + + + + + + + + + $ + # . # ] h g y r S m.Q.$+Q. +Q. + +W.W.W.Q.W.Q.W.Q.W.Q.Q.T.t.w.Q.m.m.s.o.3.>.9.Y X %./.[.0.i.h.h.N.h.i.q.N.q.N.i.N.q.q.m.f...+.S S M M M K B B B r B B B +.2.n.Z._+|+c+e+e+c+k+c+e+h+e+h+h+k+k+i+q+o+k+q+q+q+p+o+s+y+s+s+y+s+t+t+t+s+s+t+y+t+t+t+o+t+t+t+t+o+o+o+o+k+q+q+o+o+q+q+o+p+p+q+o+i+",
-"G G O B B v k v r k 6 6 6 : : - - = & = @ & = = = @ + @ + . . $ $ . . + + + + + + + + + + + $ ~ ^ h c y y y W ..t.W.$+W. +Q.Q.W. +W.W.W.W.K.K.Q.Q.Q.H.T.w.m.w.m.q.f.e.6.Y Z @.%.@.(.x.h.q.i.i.N.i.q.q.i.q.q.q.f.m.......S G M B B B B t t B p p t B B +.|.F.`.~+4+c+k+k+c+b+f+b+h+e+k+i+f+f+g+o+o+i+p+m+o+s+t+m+o+t+o+t+t+s+y+t+t+y+o+t+o+w+t+t+o+o+o+o+q+o+o+o+o+i+i+n+o+o+q+k+q+o+k+k+",
-"G G G B B p k i | ( 6 6 : : = & = = = = = @ @ = @ . + + . % . + + ; ; + > ^ g y 0 j y y B f.p.H.&+Q.W.W.W.Q.Q.W.Q.K.W.Q.Q.H.M.q.t.w.T.q.q.m.f.f.1.(.Z @.@.*.*.).x.x.i.q.i.q.u.q.q.q.o.f.f.+...S W M W G r B p B B B t p p p p B v G +.2.F.`.^+|+4+b+g+e+c+c+h+c+k+k+k+f+f+i+p+i+q+q+q+o+t+s+y+o+y+y+o+s+s+s+s+y+t+o+s+o+t+o+t+s+s+n+o+o+n+o+o+q+q+k+k+h+o+o+k+o+k+k+",
-"G G B p p k 6 6 6 6 6 } : = & = & = = = = @ @ % + + + + + + + + + + . + . + + . + + $ ; h c c g g y y y y M m.K.W.W.H.Q.Q.Q.W.K.K.Q.Q.H.Q.T.s.Q.w.q.s.s.q.f.h.e.:.Z X @.*.%.%.).g.i.x.h.q.i.q.h.m.f.f.f.S -.r G B B B B B B p p p p p p t t p p p t B +.2.F.-+^+4+b+e+e+l+l+e+g+h+i+h+k+i+h+i+q+o+o+o+t+m+o+m+t+y+o+y+t+o+y+t+m+y+y+o+t+t+t+o+o+o+o+o+p+o+i+k+o+i+o+o+q+o+q+o+l+o+o+",
-"v v v i k k : ( ( 6 5 { - & % $ % @ @ @ @ @ @ @ + . + + + + + + + . + + + + + + ; ; ] ^ g h g y g g g y y G ..m.Q.Q.W.Q.Q.H.H.W.H.H.s.Q.s.s.m.T.s.q.q.3.o.f.e.^.Y Z @.].=.].].a.9.e.h.x.q.i.q.f.f...S G O G M B W p r p t k p p t p k p t k k k p p p M S 2.F.-+_+7+b+c+c+c+e+c+c+k+i+k+k+o+i+h+q+q+m+p+p+y+o+t+o+y+t+t+t+t+w+o+t+m+s+o+o+s+o+o+m+q+o+m+o+m+k+q+o+k+i+l+g+o+o+k+k+k+",
-"v i i 6 i : : : : { : = & & @ @ % & @ % @ . . . + @ + + + + + + + . + + + + ; > ^ h h h 0 c g g y h y y y +.w.K.T.Q.H.H.Q.H.t.Q.s.Q.q.H.m.s.m.m.s.s.f.i.f.^.(.Y @.].%.%.*.*.,.).x.u.i.f.f.3.-.-.O W S y B B p r r r p p p k a k k k 6 k p k i k p j p O +.2.F.-+^+4+b+b+g+i+l+g+g+i+i+i+k+i+k+h+i+q+q+t+o+t+t+y+o+o+y+y+o+s+t+y+o+y+t+t+o+s+o+o+m+k+k+o+n+m+h+i+h+o+o+o+l+k+n+o+o+",
-"i : : : : : = = = = { = & $ + + . . + @ + . . + + + + + + + * # # ] ] c g g h g g g j c C y y S m.w.T.t.s.K.w.s.w.Q.o.t.s.m.m.m.q.f.m.m.f.e.6.!.,.$.@.].%.%.].]./.).6.e.i.#.-. .S W G B B W B B t p p k k j j j j j k k r 6 k k r 6 k 5 j r O +.2.W.-+^+b+b+e+c+e+c+i+i+h+h+k+m+o+m+o+m+o+o+t+o+t+t+y+s+s+y+t+s+o+t+o+t+o+t+o+o+w+o+m+o+n+i+g+o+p+i+g+g+g+o+o+p+i+g+i+",
-": } { : { { { ) & & @ @ % + + + + + + + + + . + + + + + + . . . . + + $ # ~ h g ~ g g g h g g y h u C y W ..p.H.Q.H.s.H.w.t.s.s.s.s.t.m.o.q.3.f.f.-.i.^.!.U Z @.%.%.*.%.*.a.).:.i. . .M M K M W r B p t t p k p k p p k k t k 6 6 k a j k k j j k 6 p p O +.|.V.,+^+4+c+e+i+g+i+c+l+i+k+k+o+i+h+q+p+o+y+o+s+x+o+t+t+t+t+y+y+o+y+o+y+o+o+o+o+o+o+o+i+o+o+k+i+k+k+n+n+i+i+k+q+k+l+",
-": : { { { ) ~ & & & $ @ $ + + + + + + + . @ + + + + + + + + + . . + + + + + + . + # ~ ^ g ~ g g ~ n g h g g g g g c y N f.m.s.m.H.s.t.t.t.s.s.s.s.s.m.}.f.3.i.3.e.:.R Y U @.%.%.@.*.].].).(.>.W W M M M t t t r r B p k k k j k k k k k j j j 5 j k 5 5 6 j 0 j 0 j p B S +.p.V.;+}+8+b+i+c+i+h+k+h+k+h+o+i+o+q+q+o+o+s+o+y+y+t+s+o+t+m+t+o+t+o+o+t+s+o+o+o+n+q+n+g+i+k+o+h+h+g+g+n+g+i+o+i+k+",
-": { = { ~ { ) $ @ @ & $ % % + . . + + + + + + + + + + + + . + . > # g ] g / g h g c h h g y h y y C W M m.m.s.m.m.w.m.s.s.m.m.f.f.3.f.s.f.f.e.>.R Z X *.X %.@.X /.Z ).~.T K M M K t p B B t p k k k j k j k k 6 j k k k k k 6 6 5 6 6 j 5 0 0 j j j k p O +.|.V.,+}+b+b+k+k+e+k+k+i+k+i+k+h+m+m+p+t+o+t+o+o+m+t+s+o+t+t+t+m+t+o+o+o+o+k+q+o+o+i+i+n+o+k+o+k+i+k+i+i+l+g+k+o+",
-"{ { ) : ~ = & $ . & @ @ ; . . . . . + + + + + + + + + + + # # ^ ^ ^ ^ h ^ g ^ g g g g h g g g y c y K }.m.m.s.}.m.m.3.m.}.m.}.s.3.f.3.i.-.^.:.R U X Q Z @.Z Y ).~.C A N t t t t t B p p t j k k a k k 0 5 k a j j k 6 5 j k 6 5 5 5 0 j 0 j j p p k r v G +.|.W.,+2+8+b+i+h+c+k+i+k+o+q+i+q+o+o+t+o+t+t+y+y+o+s+t+t+o+t+m+s+s+o+o+n+o+q+g+o+k+i+i+f+i+i+k+g+g+i+i+k+i+k+k+",
-"- ) { & = = & @ $ . + . + + + + + . + + + + . + . . + + + + . > + + $ # ~ ~ ^ ] n ^ g g g g g g g y g y C y M -.m.m.m.q.}.3.s.}.f.}.f.f.f.i.#.i.-.:.Y U X X Z @.Z R ).A T W K t t B t B t k p k j k j 5 k 5 5 j 6 k k k 5 6 j k 6 5 g 6 a a 5 0 k j j k k k r r B O +.p.`.'+4+e+k+k+k+h+k+m+k+i+p+i+q+t+o+p+s+o+o+m+s+o+t+s+m+s+o+q+o+o+o+o+o+h+o+q+n+n+g+n+k+k+i+i+i+k+k+i+k+i+i+",
-"- & & & @ @ . @ @ . . + + + + + + + + + . + . . + + + + + + + > > * # # ] [ g ~ h ] g ~ g g h g h c C g y y M ..f.}.f.f.s.f.f.3.i.}.f.3.f.i.-.>.>.R Z X X X Y R R A T W u t t t t t t p p k j k 6 5 j 0 k 5 6 j 5 5 j j j 6 5 5 5 5 0 0 6 6 6 0 5 j 0 j k k a r r B O 2.n.`.^+4+e+i+k+i+k+h+k+i+m+m+m+p+o+o+q+o+t+t+m+t+o+o+o+s+m+t+o+o+q+p+o+i+g+o+i+n+i+h+h+c+i+i+i+g+k+i+k+k+k+",
-"& & & @ $ $ + + + + . + + + + . + + + . . + + . + + + + . + + + + > + > + $ ; ^ ^ ^ ^ / n h ~ h h c h C h h y y y -.}.q.3.3.f.}.3.3.3.f.f.-.3.-.>.>.R Z X Z Z Z R R A u u u B r t t t p k r k 5 6 5 5 5 0 5 5 6 5 0 j j j p 0 j j g 0 5 5 5 g 6 j 5 j k 6 6 k k k a r k B O 2.H.`.^+4+e+k+k+k+o+o+k+i+o+k+o+p+t+o+t+o+s+o+s+o+s+p+o+o+o+o+o+o+i+h+o+o+i+k+k+i+g+g+g+g+g+g+i+c+k+c+i+g+",
-"& & $ . @ @ @ + + + @ + + + . + + + + . . . + + + + + # > + > > + ; # ~ n ~ h ^ n g g h h h C c C y y y -. .f.f.f.f.f.f.f.-.f.-.f.-.-.T R R Z Z ~.w ~.A u u y t t t r B t p k 6 5 6 j 6 6 6 6 j 5 5 5 5 5 j p 0 p 0 5 j 0 0 0 0 5 5 5 5 5 5 5 k j 6 j t k k y r B +.<.F.-+^+8+b+g+k+o+o+q+k+m+q+q+o+o+o+s+m+o+s+s+p+o+t+q+o+q+o+p+q+l+i+g+i+i+i+l+k+c+i+i+c+b+g+g+g+g+g+b+g+",
-" @ @ & $ + + + . + + + + . . + + . + + + + + + + # + > * + > > + > > > ; * ~ / ~ n ^ ^ g g h h C h C C C W W #.3.3.#.f. .-.f. .f.-.-.-.T R R d Z d R A A t t B B t B B B k p 6 k 5 5 5 6 5 5 j j 6 6 5 p 5 k k j p j j j 5 5 j 5 5 j 0 0 0 5 5 6 5 6 k p 6 k j p p r G +.2.V.)+^+8+k+g+k+i+i+m+k+o+o+o+o+q+o+t+s+o+p+q+q+m+o+o+m+o+o+o+f+o+i+n+i+i+f+i+i+g+b+g+f+g+b+b+b+j+g+g+",
-"$ @ ; + . . @ + + + + + . + . + + + . . . + + + + + + * + + > # > ' > > + > + * # / ~ n g n ^ g g h h h C n A T W -.f.f.#.f. .f.-. .-.#.-.V C w R R A A A A u t B t p k k r k k k 6 k 6 } } 5 5 6 j k 6 6 6 5 p j p p p p 5 0 5 5 5 5 0 5 5 0 0 5 j 6 5 5 6 j j k j j p k p G +.p.V.~+}+c+i+k+q+k+q+k+q+q+o+m+q+q+q+m+s+m+o+q+m+p+o+i+n+g+o+i+o+h+i+i+g+i+l+i+g+g+g+c+f+g+j+g+j+j+g+",
-"@ @ + + . + . + . + + + + + + + . + + + + + + . * * + + + # ; # + + + + ' + > > # # # / # ^ g n g h h g y y C A y T -.3.-.f.-.-. .f.-.-.^.n A d A A A A A u t t k k p p j k k 6 5 5 6 6 } j 0 5 5 j 6 k 5 j 5 p t B p p k j k 6 6 6 k 0 5 6 0 5 j 5 0 0 5 5 6 6 k k 5 t j j p k G +.n.V.^+4+e+k+k+q+o+o+o+o+o+q+o+o+o+t+o+n+o+q+q+o+p+o+i+f+n+n+f+i+k+i+i+g+f+g+g+b+b+b+b+c+8+9+8+8+8+",
-" . + + + . + + + + + + + + + + + * + + + + * + ' > * # * * * > > > + # # # # # ^ / ^ ^ n g g h y n y y T T N -.f.-.-.-.-.-.-.W W y n C C A A A u p t t t p k k r j j 5 k 5 5 6 6 5 : 5 5 } 5 5 k 6 6 k p t B p k j j 0 6 j 5 6 0 j j 5 5 j k j 0 j 5 6 0 0 k 6 j j j t k t M 2.n. +|+0+k+l+k+q+k+q+k+o+q+n+o+o+q+q+o+o+o+h+o+k+o+i+i+k+g+g+i+i+k+c+g+i+g+g+8+g+f+g+g+c+g+g+b+g+",
-" . + . + + . + . + + + + . + + + + + + * + + + * + > > > ; # + * > > > * * * * # . / ~ ~ ~ n g g n y y V C T T #.-.-...-...W W y y n h l h y u t p p p k k k k k 6 6 6 6 6 5 } 5 j 5 5 } 0 0 5 0 j 5 j p p p p j k k j 0 j 5 j 0 j j 5 j j k 6 6 j 0 5 j k j 5 k k j j j j j B M 2.F.>+^+8+o+l+k+o+o+o+k+o+o+n+k+o+o+n+o+i+q+i+h+i+o+i+i+i+i+i+g+g+i+c+b+f+g+8+8+b+b+8+b+c+b+b+c+",
-" @ . + + . + + + . . + + + + + + + + # + + > + + # # # # # > * + + > + + ; # > * # # # # ~ g h n n h n y y V W V -.-.-.-.W W r y n n n j 0 u j j k k k t k k a 6 6 5 } 5 6 a 6 6 6 } 5 5 5 5 0 k 6 k k j p p v 6 6 6 5 5 p j k k j j j k k k j j 5 j j 5 0 k j 0 j j j j k r k p M S 2.V.)+}+c+o+o+o+o+o+i+n+o+f+o+o+o+o+p+i+o+n+i+g+i+i+l+g+i+i+i+g+g+i+b+8+g+g+j+9+j+8+b+8+j+9+8+",
-". @ . + + + + . + + + + + + + . + + . + + . . + + + # . + + * * + + # # # # * # # ; * * * * # # # * * # . / # # # ~ g g n y y y C W W -.-.-.W W y y y g c u j j r k k k r k r k a k j 5 6 6 } 6 : a } 5 k 6 6 6 5 j j k p k p k i 6 i 6 6 j 6 j k k j k k p j j k a j j j j g j 0 5 5 j 0 j j j k k k r G +.n.`.)+4+c+k+k+o+i+q+n+o+n+g+g+n+i+i+o+g+i+k+k+g+g+i+i+i+c+b+g+i+8+g+b+8+8+8+8+e+j+9+b+8+b+j+",
-". . + + + + + . + + + + + . + + + + + # . # * + + * * + # * * ; * * / # # # * * * * # * * * # . # # # ~ n g n n n W V T W -.W W y y n ^ g 0 0 j j j 6 k k 6 a 6 k 6 6 6 a a 5 6 5 6 5 0 5 a 6 k j j 6 6 k k k k k j 6 6 6 6 5 t p j j p p k j p t t t j j j j 0 j a 5 j 0 5 j j j 5 a j k k p B +.p.,+<+8+i+k+o+i+k+g+i+k+i+i+n+g+f+i+i+i+f+i+i+i+c+c+i+f+8+j+b+8+j+j+b+8+j+8+b+8+9+8+9+b+b+",
-" + + . . . + + + + + . + * + # + * + # + * * + * * * + * * ; ; > * * # ; # + + > * * * * * * # * ~ # g h y C N P W W y a g ~ g g 0 g j j j 5 j 5 6 k k a a 6 5 5 5 } } : 6 5 5 j 5 j j j 6 j j k a k p k t j j 5 5 5 p p t p p p t t t t p t j u t t y k k 5 j 5 j 5 5 6 6 g j 5 j 6 k r O 2.F.-+^+e+o+k+l+o+k+k+i+n+g+i+i+i+f+k+i+h+i+g+c+i+g+b+b+b+8+g+j+8+5+j+b+b+9+8+9+8+9+8+9+9+",
-" . . + + + + . + + + . + . + . + + + * * * + * + + + + * + + > > ' > ' ' * * ; * * * * > > + * * * * # . # * # # ~ n g y y y y y g ~ g ) } } 5 g j j k j 5 5 5 k 5 6 6 6 6 6 6 5 5 } 6 j 0 j 6 6 k t p 5 k k k k p p p p 5 5 j t t t t B t M B B B t p p t u j t j j k j 5 g 5 5 0 5 k 5 5 5 j j j k r G 2.V.)+4+b+o+n+m+g+i+c+i+i+i+k+i+f+i+i+i+0+c+c+c+f+0+g+8+9+8+j+b+8+9+8+b+9+8+9+j+2+j+2+b+",
-" + . + + . + + . + . + + + + . * + + + + + + + + + + > > ' ' * * > > * * > > ' > * > > * > > > * * # * * # # * # # / ~ g g y a ~ ~ ^ ~ { ~ } 5 6 5 6 k 6 5 j 6 5 6 a 5 } 5 } 5 5 6 6 6 0 p j j k 6 k j j k k p p p t t t j 5 p p t M B B M B B B K B t t t p t t u j j j 0 5 5 5 5 5 [ [ j 5 5 j j j p r ..p.V._+8+b+k+k+k+g+g+g+g+i+i+c+i+8+g+0+i+g+8+g+8+b+0+8+j+9+8+9+8+b+j+9+b+j+b+b+9+8+8+b+",
-"+ + + + . + + . + . + + + + + * + + > + > * * > * > > * * * * * ' / ' / / * * > * * ' * * * + * * * # * # # # # # / * ~ ~ ~ ~ ^ % ] ~ [ { } [ 5 6 5 5 : 6 5 6 5 0 } 6 6 5 [ 5 0 j 6 j j p p j p k k p 6 k k p p p B K t t t t B B M K B M t K M K t K B t t K t j u 5 k j } 5 } [ 0 j 5 5 6 : 6 j y p r M ..H.`.}+4+b+i+k+i+c+c+b+g+g+c+i+8+g+c+0+b+g+b+c+e+e+0+9+9+8+b+8+b+6+7+b+4+8+b+b+2+9+b+",
-" . . + + + + + + . + + + . + + + + # + + + + * > * ' + * > * * ' * ' ' ' ' > / ' > / > * * > + * * # > > * * * + * * * # * # # # ~ . & & % ) ) } { [ } 5 } 6 6 5 } 6 } } 5 5 0 } } 6 5 5 j j j p p p p 5 j k k p k p p p M K K K K B B M B t M K M M M K K K K K K K t t t k k j 5 0 [ 0 5 [ [ [ [ } 6 j k k j 6 p O 2.W.'+7+j+i+i+b+8+j+8+8+9+8+b+8+c+c+b+8+5+8+b+8+f+8+8+8+9+8+b+8+b+8+6+9+b+9+9+b+2+4+",
-" + + + + + . + . . + + . + + + > * + > * + ' > + * * ' > ' > ' ' ' ' ] _ ' ' / ' / * > ' ' ' ' ' * * * * + * * * * * # * * * # & . & # = { ~ } } [ [ 0 } } 6 6 } 6 5 } 6 6 5 6 5 6 6 j p p p p p k p p j k i k p B t B B S K M K K M M B M B K M G M K M K B M M M M t t t k j 6 0 } } } } 5 5 g [ [ j j k j 6 6 v O p.V.'+2+b+g+g+0+b+b+8+8+9+b+9+9+8+8+b+8+8+b+b+b+b+9+8+9+7+7+9+b+9+b+4+4+b+b+b+j+4+",
-". . + . + + + + + + + # + + * + + + + * + > * > ' ' ' ' ' _ _ ] _ _ _ _ ' _ ' _ ' ' ' ' ' ' ' * * * > > > + * + # # # ; $ . & & % = ) ) } ~ { 5 [ 5 5 } } } } 0 } 6 5 } 0 5 5 6 5 p u B t p p k j p p p p t B B B M M K M K M G G G M M .M M .S K S M M S M K B t t j j k 0 5 5 5 } } [ [ } [ 0 [ 5 0 5 5 5 6 v +.H. +4+4+b+b+b+8+9+8+j+8+9+8+8+8+9+j+9+c+c+6+8+7+6+b+4+c+b+7+7+b+7+b+j+3+2+4+b+b+",
-"+ + + + + . + . + + + + * * + > + ' > + * * * * ' ' _ ' ' _ _ 3 _ 3 _ ] 3 _ _ ' ' ' ' > _ ' ' ' ' ' ' ' > * + * + + + $ $ $ $ $ & ) { [ } } } : } } } 5 } 5 5 } 5 5 : 6 } 5 6 j k p t K K B p p k p p k k p K K B B G .K S .M K S S K .#. . .K . . .S S S O W G p t t t k 0 0 [ } [ [ { [ } [ } 5 } [ [ 5 [ 6 k O 2.F.~+|+b+b+j+8+9+8+9+8+9+8+9+8+6+8+8+9+8+6+9+b+7+8+6+8+b+9+7+b+2+b+6+b+2+2+2+b+",
-". . + + + + + . . + + + + # + + * * * > + > * * ' ' ' ] ' 3 3 _ d _ ] d d _ 3 _ _ _ 3 ] _ ' ' _ ' _ ' _ ' > ' ' + * + + % @ & $ % ) { [ ) [ : } } } } } } 6 } } 6 6 [ 0 0 5 j k k B p B K t t p r v p t p B t M B K K K S ...S . .S G . . .}. . . . . . .O S S G B p p t j k 6 0 0 ~ 0 } [ { } { } [ } } } [ 0 [ 5 k +.p.`.)+7+b+b+j+2+b+6+9+8+2+8+7+8+4+7+6+9+7+8+7+8+9+2+4+6+6+9+2+b+7+j+2+9+b+b+2+",
-". . + + . + + + + + . + # + + + + + # + + * > > ' ' ' ' _ _ 3 ] d _ d d 3 d 3 _ _ d ' 3 3 3 _ ] ' _ 3 ] _ ' ' > + > + # . & ; ; & = ) % ) { } } [ : : } [ [ 5 [ : : 6 } 6 6 } j 6 j p p t B K p K p p p p p B t K K G M K M .....+.+. .......}.}.}.}.}..... . . .+.O G B r p k p j j 6 [ 5 [ [ } } : : { { ~ } ~ } { } } } 6 r +.F. +_+6+b+8+9+j+6+7+8+7+8+7+b+4+9+6+9+7+8+4+b+8+9+9+2+b+8+2+3+b+7+2+2+4+b+4+",
-"+ . + + . + + + * + # * + * > + + * * > ' ' ' > 3 ] d d 3 d d d 3 d 3 d _ d d d 3 _ 3 3 3 3 _ _ ' _ ' _ ' > ' * + + % % $ % % & ) ) ~ ) } } } : : } } } 5 } 5 5 : g 6 6 5 j 6 p t B v B B B t p p k p p B t B K K K S M ...........+.....}.<.}.<.}.<.<.........S O G t p k k j p 6 [ 5 [ } } { } ~ { } { { ~ ) ) } [ } } ( r O 2.V.>+2+4+b+4+b+2+2+7+6+7+6+6+b+b+2+7+6+6+b+6+4+4+4+8+7+2+b+8+2+4+b+b+2+4+2+",
-"+ . . . + + + + + + + > > > + + > + ' > ' ' d _ _ d d d ] d 3 d d d d d d d d d d 3 3 d 3 3 3 3 3 _ ' ' > ; + . $ + % @ & ) = { } } } { : { { { } } } 5 6 g } 5 0 } k k k r p p B v v B B t K p B p p t B K K G M ... ...+.......<...<.<.<.n.2.<.<.+.<. .S S S O G y p k k 5 5 6 } } [ : { { } ~ { { { } } ~ ~ { { { ~ [ 5 r S p. +<+4+b+4+8+8+8+2+8+4+4+7+7+b+6+7+2+6+4+9+8+6+2+b+4+4+2+8+b+2+4+2+j+4+4+",
-" + + + + + + # * # + > > > + > > > ' ' ' 3 ' _ 3 d d d d f f f d d d d d d d f 3 d d d d d 3 3 _ ' ' ^ ; + ; $ $ @ & % & ) { = : ) { } } } { ( : : } 6 } 6 5 } 5 0 5 j k p p t p p k p p B t B B B t B p K B K K K S ........+.<.}.<.....<.<.<.2.+.2.+.....S +.S M G G r r k j 5 6 } ( ( { } ~ } ~ } { ~ ) ) ) } } ~ { } [ ~ } 5 M ..K.>+<+4+b+3+b+2+6+7+9+7+4+4+6+7+9+7+7+7+|+4+7+6+7+4+7+b+2+2+j+2+3+2+2+2+",
-"+ + + + + * + + # # # * + > * * * ' ' ' _ d d d ] d d d d f o o m f f d d d d m f m m d m d 3 _ / / * * $ ; % $ & = & ) { { : : ) [ } [ { 6 : } : } 5 5 0 j k k t t p B r r p v v p v p v B B M p B B B G S S ......}.....}.}.<.<.+.2.+.<.+.<.+.+.+.+.S G O B r r r k 6 6 } a { } { ~ { ~ { ) ~ { ~ ( = { ) ) ~ { { ~ } g : k S 2.W.>+1+b+3+4+2+4+4+b+4+4+2+4+4+7+6+4+b+7+2+7+6+7+4+7+2+6+2+2+7+b+2+e+4+",
-"+ + + + + + + + # # * * + + * > * ' > ' 3 3 ] d d d d m d m w m m m w m m m m m f m m d d m d _ / ' > ; % $ & $ % $ = & - { } ) { { } } } } } } } } 6 [ } } k 6 k j t t p B r r k k k p p k p t K M K B K G G S K ...}.+.<.....}.<.<...<.+.+.+...+.....+.O S B B M r B y j 5 } } { : { ~ ~ ~ { { = ) % ~ ) - ~ { { } ~ ) [ ~ { [ 0 t .p. +<+2+j+2+b+2+7+6+2+2+4+2+2+6+7+6+7+4+6+7+}+4+7+2+b+1+4+7+4+7+2+2+3+",
-" . + + + + # * * # + * * > ' ' ' _ _ _ d d d d d w m d m m m z z m w m m d m m m m m d 3 3 / / * # ; $ % $ & $ & & & = & = { ) : = ) : ) } } } { } } 6 5 0 0 k j p p k r r v i r v t t p B p B B K K B K B M K S ....}...<.}...}.2.2.}.+.}.....+.+.+...+.S O G M p B r B r 6 6 ( } ) { { ) [ ) ) ) = ) ) { ~ = ) = { ) ) ) [ [ ) } [ k M <.Q.-+^+3+7+4+4+1+6+4+b+6+4+4+4+7+4+7+7+2+2+2+4+2+7+4+2+3+a+2+4+2+2+4+",
-"+ + + # # > > ; + > # * + ' * * ' ' 3 _ d l d d z m m m z z z m m m z z m m o z z m w d _ _ ] ' # . $ & & & % & & = - = { - { { : } } } } } } 5 : 5 5 5 0 j j p r p k r i r v i p t p v p B B M M M M K .S S ..S ..}.}.2.<.}.}.}.2.<.2.....+.S +.2.+...S G O v v r r p k a { } { : ~ ~ ) % ] ) ) % = = & ) ) = ~ ~ ~ ) ) ) % ) ) [ } k +.n.@+]+}+4+2+3+4+2+}+}+2+4+4+2+4+7+2+2+6+4+6+a+4+4+2+7+|+4+2+3+4+2+3+",
-"+ + # . # * * # * > ' * ' _ _ 3 3 d d d m w m m d z z m z z z z z m z m o o m w d l / ] ' ; % $ @ $ % ) = ) & % $ ) = - { : { ) { ) } } } g } } : 6 k p p p p p k p k k k r p p p t t B B M S M S S M S S S .... .}.}.2.<.2.<.2.<.<.2...2.+.G S S ....+.+.B r r k p r k 6 a ( { = { = = ) & % ] ) ) ) & ~ & ~ ~ ~ ) % ) ) { ) ) ) ) } 6 B ..W.]+<+4+2+3+3+4+7+}+7+2+|+}+4+4+4+2+2+4+4+2+2+2+2+a+}+4+2+a+2+2+2+",
-"+ # * # * * > # * * * ' ' _ _ 3 d d d w m m m z z w z z z z m z D z z z z z w f l n / ^ > % % $ & ; ) % { ) ) % % ) & = = - { : { } } } } } } : 5 0 5 j t p k k k k k k k k p p B B M M B M G S S G .S ......+...}.}.<.}.2.<.<.2.<...+.....S +.G G +.S G O v r i k j a i a : { { ~ = { = & = & & & & & & & ~ & = = & ~ ) ~ ) { { ~ ~ ~ { r O p.W.{+2+4+2+4+<+2+2+}+}+4+4+2+3+2+7+7+2+|+4+2+|+4+4+3+3+2+2+2+4+3+",
-"+ + # # + # > > > ' ' _ _ 3 3 d f f f m w m z m z m z z w z z z D z z m w m l l ' ] > $ $ @ & % & % ) % [ ) [ ) % ~ & = { = { { } { : ) } 5 0 5 5 5 p p p p i k 5 j j k p k p p B B M K B .S +...S S S +...}.+.<.}.<.2.2.2.2.2.}.<.2.......S S S O +.G O v k | a a k : ( ( : { ~ = = = = ) & & & & & ) & $ % % % { & $ = { % ) ) ) ~ ~ } a B <.H.&+<+4+1+3+}+}+1+^+2+2+^+4+4+4+1+2+2+}+4+1+2+2+4+2+2+2+4+3+1+3+",
-"> > # * * * * ' ' _ _ d 3 f d o f f o w z z w z z m z z Z z z z z m w w f l ] ] ; ; $ @ $ & ) { ) } } [ } [ ) ) ) { ) } ) [ [ } : 6 5 5 6 p 5 p i p v k k 6 p 5 p p r B t t M G S G K S .S +.......+.+.}.....<.}.2.2.+.2.|.+.<...2.+.S G M G G v v i 6 6 6 a 6 } { } = ~ & ) & = & % $ $ & % % & $ @ ~ % % $ ) = ) ~ ~ % ) ) ~ ~ ~ } j S n. +{+]+3+}+1+}+^+4+2+2+2+}+1+2+|+^+2+2+2+3+2+4+2+}+4+2+1+1+2+1+",
-"* * + > ' ' ' 3 _ d d m f m f o o o x z m z m z z D z z z z z z z w l l _ ' ^ % & % @ % % @ = = = { ) [ [ } } [ ) ) = % [ } [ } j 6 6 6 5 j p k i i p k p 6 6 k p p p p B B M M S ..S S ....S +.....+.....+.....2.}.2.2...<.+.2.......+.G G B M B p i i | } } { : } } ) = { = & & & % % % & & & $ $ & ; % % ~ & & % & % ) ~ = ~ ) ) ~ ~ { g t .Q.{+{+3+^+1+2+<+^+|+2+1+|+^+2+2+}+}+1+}+2+3+1+2+1+2+1+1+1+^+3+",
-"+ + * * ' > d _ d d m z z z z z o z z z z z o z D X z z m z m w d l / ] ] ; & = @ = @ & % & = & = { = : [ } } 5 } [ { ) [ } } } } 6 j k k k p p p 6 i k k j 6 k k t p B p p M M S ..S +.+...+.+.....<.<.+...+...2...<.<.+.....+.+...2.+.O G G B B p 6 6 : } 5 } } ~ : { = { @ & & $ % @ @ % % ; $ & & ) $ $ % $ & % ; % $ & ~ & ~ ~ ) ~ ~ [ t -.w.Q.{+{+3+{+<+<+2+<+1+}+1+1+}+}+}+2+}+}+2+<+2+1+3+^+3+^+1+1+1+",
-"* * * * ' ' d d w m z E E E z z U U z U z z m z z X z w w w d l _ ] ' ] % ; @ = = @ = & ) - ~ { { { { ) 5 [ } } [ ) [ ) } [ 5 6 k p k k k k 6 i 6 i p j p p k p t t M t B G S S ......+.+.+.+.<.<...<.......+...+.<.+.+...+.+.+...+.G O B v v p p 6 6 5 0 5 }