rbutil: removed the wx version of rbutil.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14581 a1c6a512-1295-4272-9138-f99709370657
diff --git a/rbutil/Makefile b/rbutil/Makefile
deleted file mode 100644
index fe3b5b7..0000000
--- 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 6939280..0000000
--- 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 6c21713..0000000
--- a/rbutil/archos.ico
+++ /dev/null
Binary files differ
diff --git a/rbutil/autodetection.cpp b/rbutil/autodetection.cpp
deleted file mode 100644
index 85bfc21..0000000
--- 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 cfd0dba..0000000
--- 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 4ac4828..0000000
--- 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(§orbuf,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(§orbuf,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 d5bda12..0000000
--- 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 d57cce3..0000000
--- 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 b124620..0000000
--- 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 ebbdcc2..0000000
--- 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 09da891..0000000
--- 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 1c6581a..0000000
--- 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 8eb630f..0000000
--- 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 9940044..0000000
--- 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 3590c9c..0000000
--- 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 c086024..0000000
--- 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 dd47a29..0000000
--- 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 c37ebec..0000000
--- 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 8abf1da..0000000
--- 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 bd484b9..0000000
--- 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 64e2763..0000000
--- 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 264ba79..0000000
--- 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 c077e61..0000000
--- 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 331a07d..0000000
--- 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 87c557a..0000000
--- 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 7f6fa99..0000000
--- 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 cb85e08..0000000
--- 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 9b7cd5a..0000000
--- 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 d646cf1..0000000
--- 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 e1c23c9..0000000
--- 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 f7ea439..0000000
--- 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 d14f015..0000000
--- 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 3202cef..0000000
--- 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 2db68ce..0000000
--- 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 && 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 "wx_pch.h"' />
- <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 058ca10..0000000
--- 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 eb31986..0000000
--- 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 1ab45ec..0000000
--- 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 d945d85..0000000
--- 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 e7c39a8..0000000
--- 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 1901a62..0000000
--- 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 b20e39e..0000000
--- 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 fdede63..0000000
--- 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 7998dc6..0000000
--- 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 306f955..0000000
--- 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> — "
- "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 —"
- "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 7341323..0000000
--- 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 84d3d52..0000000
--- 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
similarity index 100%
rename from rbutil/mksums.pl
rename to rbutil/rbutilqt/irivertools/mksums.pl
diff --git a/rbutil/talkfile.cpp b/rbutil/talkfile.cpp
deleted file mode 100644
index 345b327..0000000
--- 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 9d6d28a..0000000
--- 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 d19402a..0000000
--- 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",